2010-09-19 138 views
2

命令行中的ffmpeg生成預覽文件和兩個單獨的雙向轉換,從shell腳本運行時,成功執行。ffmpeg從命令行運行,從mod_fcgi執行完成後截斷

通過php的exec(/ usr/bin/ffmpeg)或exec(name_of_shell_script)運行命令可成功生成預覽文件。奇怪的行爲是電影會產生,然後截斷。 ffmpeg日誌文件生成成功,我看到的輸出文件隨着轉換的繼續而變大,然後當完成它時出現,文件被截斷....

唯一的東西已經改變系統從mod_php,並且到mod_fcgi和php_cgi改變,但錯誤日誌顯示沒有任何異常,除了

mod_fcgid: stderr: wmv, files3/1qwj, 1qwj.wmv 

supressing外殼的輸出

scriptname.sh > /dev/null 2>&1 

不會改變結果。

應該使用shell_exec嗎?它是一個unix許可?

這是在Ubuntu 10.04.1

這種解決方案並不適用 FFMPEG running in Command Line but not PHP

編輯:

看起來它可能有一些做兩遍編碼。兩遍編碼可以在命令行中正常工作,但是從PHP env shell可以在第二遍上覆蓋某些內容。

nice -n 11 /usr/bin/ffmpeg -y -i $1 -r 30000/1001 -b 1M -bt 2M -vcodec libx264 -threads 0 -pass 1 -vpre /usr/share/ffmpeg/libx264-fastfirstpass.ffpreset -an movie.flv 
nice -n 11 /usr/bin/ffmpeg -y -i $1 -r 30000/1001 -b 1M -bt 2M -vcodec libx264 -threads 0 -pass 2 -vpre /usr/share/ffmpeg/libx264-hq.ffpreset -acodec libfaac -ac 2 -ar 48000 -ab 192k movie.flv 

$ 1是輸入文件名

發現 https://roundup.ffmpeg.org/issue1829

編輯:

在這裏所做的是日誌文件的文物

-rw-r--r--  1 www-data www-data  0 2010-09-19 19:02 ffmpeg2pass-0.log 
-rw-r--r--  1 www-data www-data  0 2010-09-19 19:02 movie.flv 
-rw-r--r--  1 www-data www-data 153466 2010-09-19 19:02 movie.jpg 
-rw-r--r--  1 www-data www-data 358803 2010-09-19 19:02 movie_preview.jpg 
-rw-r--r--  1 www-data www-data 410283 2010-09-19 19:02 x264_2pass.log 
-rw-r--r--  1 www-data www-data 5759257 2010-09-19 19:02 x264_2pass.log.mbtree 

運在維護者的要求ened新票 https://roundup.ffmpeg.org/issue2238

編輯: 貌似問題是WMV文件

http://ubuntuforums.org/showthread.php?t=1074152

回答

2

問題就走了通過更新的ffmpeg和編譯音頻。 wmv專業音頻文件現在支持ffmpeg,並且我使用的安裝不支持。