2012-10-17 150 views
5

我想從.flv轉換爲.h264格式。如何使用FFmpeg將.flv視頻轉換爲.h264格式?

問題:我做了從FLV到H264格式的轉換,但我轉換的視頻(.h264)運行速度如此之快(就像我們點擊快進按鈕一樣)。

我用下面的命令:

ffmpeg -i example.flv -sameq -vcodec libx264 -vpre default -ar 22050 output.h264 
+1

請更新您的問題以包含完整的控制檯輸出。不要使用'-sameq':[sameq並不意味着「相同的質量」](http://superuser.com/a/478550/110524)。 FFmpeg使用問題更適合superuser.com。 – LordNeckbeard

回答

13

的解決方案是,你需要一種容器格式。 Raw h.264沒有任何視頻的時間信息,這就是爲什麼你的播放器播放速度非常快。

另外你的命令都搞砸了。你想在你的輸出中使用音頻嗎?如果是,那麼你需要指定一個包含音頻和視頻的容器格式。

無論你的輸出更改爲MP4

ffmpeg -i input_file -c:a copy -c:v libx264 -profile:v baseline out.mp4 

或一些其它容器。如果您只想要一個視頻流,請刪除音頻選項並添加。

如果你想使用的AAC音頻,而不是任何的FLV文件有:

ffmpeg -i input_file -c:a aac -strict -2 -b:a 128k -c:v libx264 -profile:v baseline out.mp4 

如果您的ffmpeg沒有-c-profile選項,更新到較新版本。

+0

'-vpre'在任何最新的FFmpeg版本中都不存在,應該避免。使用'-profile:v'指定配置文件,'-preset slow'等編碼預設。 – slhck

+0

@slhck,謝謝你的指針。 – av501

+0

@ av501下面的命令工作正常,生產H.264格式的MP4視頻,但音頻不工作在IPhone(它在Android手機上工作)ffmpeg -i example.flv -r 25 -sameq -ab 128kb -vcodec libx264 - vpre default -s 320x240 -b 768kb -ar 44100 -acodec copy output.mp4當我使用acodec = aac時,ffmpeg顯示以下消息「encoder'aac'是實驗性的,可能會產生不好的結果 添加'-strict experimental'如果你想使用它。「 –

-2

你正在尋找神奇的關鍵詞是「幀每秒」。

例如,在輸出視頻中爲30 fps添加「-r 30」。

塞巴斯蒂安

+0

濾波器後出現錯誤點MISSING 沒有來自分路器的pts值用於幀!,?%0 0 pts濾波器後MISSING 沒有來自分路器的pts值用於幀!,?%0 0 pts after filters MISSING 沒有從分路器得到的pts值用於frame!,?%0 0 –

+0

我在我的命令中使用了-r 30 :: ffmpeg -i example.flv -r 30 -sameq -vcodec libx264 -vpre default -ar 22050輸出。 h264但結果不會改變,視頻仍在快速運行 –

+0

你試過用-r 10嗎? –

相關問題