1
在閱讀了關於與PHP相關的FFMPEG相關的gazillion問題後,我得到了一小段或不是什麼,但它似乎沒有做任何事 - 甚至沒有發生錯誤。帶有PHP的FFMPEG不執行?
我的PHP如下:
function get_video_thumbnail($file) {
define('ALL_PLACE_WIDTH', 250);
define('ALL_PLACE_HEIGHT', 200);
$ffmpeg = "ffmpeg"; // where ffmpeg is
$image_source_path = $file; // where the video is
$image_cmd = " -r 1 -ss 00:00:10 -t 00:00:01 -s ".ALL_PLACE_WIDTH."x".ALL_PLACE_HEIGHT." -f image2 "; // command
$dest_image_path = "cdn/thumbnails"; // destination of thumbnail
$str_command = $ffmpeg ." -i " . $image_source_path . $image_cmd .$dest_image_path;
shell_exec($str_command);
}
在根文件夾有什麼有 「ffmpeg.exe」, 「ffplay.exe」 和 「pthreadGC2.dll」 的文件夾 「的ffmpeg」。所以我想知道,有什麼我失蹤?我正嘗試從視頻/ mp4文件生成縮略圖。
如果從命令行運行相同的參數,是否會生成縮略圖? 如果你運行'exec(escapeshellcmd($ cmd),$ out,$ val)'你在輸出$ out和$ val中看到了什麼? 將它分解 - 首先嚐試執行簡化版本,以確定ffmpeg在通過PHP shell進行調用時是否正在運行。例如''ffmpeg -h'' –
這就是我的做法:$ exec_string =「ffmpeg -y -ss」。($ position)。「-i $ filebase.mpg -vf scale ='iw:ow/dar', setsar = 1:1 -deinterlace -t 1 $ output_base「;它很奇怪,你設置-t之前-t,它應該是-t 11 –
還有其他一些方法可以執行外部命令,以更好地控制它們的環境和輸出:['exec'](http://us.php。 net/manual/en/function.exec.php)和['proc_open'](http://us.php.net/manual/en/function.proc-open.php)。追加'2>&1'到命令,通過'exec'調用它,捕獲並打印輸出,檢查它是否有錯誤信息。 – DCoder