2017-06-12 50 views
0

創建幻燈片結果我有一系列名爲0000.jpg 0001.JPG 0002.jpg JPEG圖像...的ffmpeg在非常大的文件

我用下面的命令將這些成幻燈視頻每幀播放1秒鐘。

ffmpeg -framerate 1 -i %04d.jpg -c:v libx264 -vf fps=1 -pix_fmt yuv420p out.mp4 

這工作只是將得到的視頻比我所得到的,如果我編碼我正在尋找一種方式完全相同的幀在正常幀率(例如,25 FPS)

大6倍罰款有效獲得與編碼25fps時相同的高效編碼,但每幀顯示1秒。

+0

另請參閱:https://video.stackexchange.com/questions/8740/minimal-working-frame-rate-for-h264-codec – Brad

回答

2

H.264是幀間編碼的視頻編解碼器,即幀依賴於其他幀以便被解碼。 H.264編碼器在基本層面上所做的是觀察幀間圖片內容的變化,然後僅保存該差異。

在CRF碼率控制模式,該模式是什麼默認使用時明確指定任何速率控制模式(-b:v-crf-x264opts qp),X264是幀率敏感。當以25fps的速度輸入時,每幀都會顯示40毫秒,因此觀看者對每個幀的圖像質量都不太敏感,所以x264對它進行了相當程度的壓縮。但是,當輸入以1 fps編碼時,每個輸出幀將顯示一整秒,所以x264在壓縮方面的攻擊性要小得多。

解決方法是編碼爲25 fps,然後以較低的fps進行重新編碼。

#1

ffmpeg -framerate 25 -i %04d.jpg -c:v libx264 -pix_fmt yuv420p out.264 

#2使用mp4box *,的GPAC部分,REMUX與下率:

mp4box -add out.264:fps=1 -new out.mp4 

*通常,這將使用的ffmpeg是可能的,但是它不能正確地將H.264原始流與亂序幀存儲(即具有B幀的幀)存儲在一起。

+0

非常有幫助。我寧願避免MP4Box,所以我可以將FFMPEG或X264質量選項設置爲較低質量以獲得類似的最終結果?在我的低幀速率下,X264是否將所有內容編碼爲幀內幀? – GroovyDotCom

+1

不是內部幀,而是使用更低的量化器。如果在步驟1中添加了「-x264opts bframes = 0」,則步驟2可以是'ffmpeg -r 1 -i out.264 -c copy out.mp4'。 ffmpeg會抱怨時間戳(由於H264解析器的缺陷),但輸出很好。請注意,許多玩家窒息1 fps。 – Mulvya

+0

另外好點重新:球員,但我唯一的用途是從Youtube上傳和播放,並且工作。 – GroovyDotCom