2015-04-05 84 views
-1

我正在構建一個允許管理員上傳視頻剪輯並將其附加到帖子的Wordpress網站。視頻上傳成功後,我使用ffmpeg從該視頻獲取屏幕截圖,該屏幕截圖將成爲張貼的精選圖片。使用ffmpeg從視頻獲取屏幕截圖

在我的情況下,屏幕截圖已成功生成。在下一步中,我使用Wordpress函數media_sideload_image()將該截圖複製到WP'uploads'文件夾,並將該圖像製作爲特色圖像。

但由於某些原因,media_sideload_image()返回了一個WP_Error:http_404。我已經檢查了臨時屏幕截圖的網址,但它是有效的,並且很好地顯示了屏幕截圖。

在這種情況下,我猜media_sideload_image()是在ffmpeg命令之後調用的,但是那時ffmpeg進程還沒有完全完成,所以media_sideload_image()遇到http_404錯誤。

所以問題是:有沒有什麼方法可以確保在運行media_sideload_image()函數之前完全保存屏幕截圖,以避免http_404錯誤?

非常感謝!

回答

0

我不確定是否有可能檢查文件是否完全保存。但是你可以檢查圖像文件是否存在。

if (file_exists($file)) { 
    media_sideload_image($file, $post_id, $desc); 
} 

應該解決的問題,但如果由於某種原因,它需要更長的時間,以充分保存文件,你可以在幾秒鐘增加一個延遲。

sleep(2); // 2 Second delay before checking and saving the file. 
if (file_exists($file)) { 
    media_sideload_image($file, $post_id, $desc); 
}