2014-06-27 100 views
0

我試圖對用戶在我的服務器上傳的視頻文件進行編碼。 我將文件解釋爲流,通過http協議在我的服務器上傳入,並使用ffmpeg進行實時文件編碼,同時執行上載過程。使用ffmpeg庫通過http協議編碼視頻流

當源文件中有.avi格式,我有成功的編碼的結果,但.mp4格式出現錯誤:

--------------------- 
[buffer @ 0000000000308380] Unable to parse option value "-1" as pixel format 
Last message repeated 1 times 
[buffer @ 0000000000308380] Error setting option pix_fmt to value -1. 
--------------------- 

我想這可能是因爲.MP4​​包含在文件末尾"moov atom"數據。 我這麼認爲是因爲當我在編碼前用"-movflags faststart"命令處理文件時,我也有成功的結果。

即命令我現在使用:

ffmpeg -i http://myhost.com/app/video/video2.mp4 -f mp4 -vcodec libx264 -b:v 800K -acodec libvo_aacenc -b:a 128K -ar 44100 -ac 2 -y c:/watch-and-get/video/video5.mp4 

我能解決這個問題,並編碼多種視頻格式如流,而不需要任何多餘的步驟?

+0

更適合超級用戶,真的。可能已經在那裏回答了:http://superuser.com/questions/546560/ffmpeg-unable-to-parse-option-value-1-as-pixel-format – nmaier

回答

0

您正在運行舊版本的ffmpeg。這個問題已修復。

-pix_fmt是像素格式,其值應爲整數。(ffmpeg的莫名其妙藉此值-1,我不知道爲什麼。因此u得到這個錯誤。但是更新將解決這個問題)

額外info:運行ffmpeg -pix_fmts查看所有可用的像素格式。

下載最新版本。 我會建議從二進制安裝最新版本,因爲它更簡單。我已經回答大約相同here

+0

非常感謝! – dihri