2017-06-09 79 views
0

我正在嘗試查找代碼轉換資源的大小,但是我發現.ts文件的大小總和與所創建的mpegts輸出文件的大小之和不匹配由ffmpeg。Mpegts與ts文件之和的差異

例如:

隨着5Mb的源我得到以下輸出

/ffmpeg -y -i big_buck_bunny_720p_5mb.mp4 -s 854x480 -ss 0 -vcodec libx264 -level:v 3.0 -profile:v baseline -f mpegts -async 2 -acodec libmp3lame -ar 44100 -r 24.00 -b:v 703k -maxrate 703k -bufsize 703k -r 24.00 -b:a 96.0k test.mpegts -hls_time 10 -hls_segment_filename test-%03d.ts -hls_playlist_type vod test.m3u8 

test.mpegts的大小 - > 3.1MB, 總和的TS文件的大小 - > 5.5MB

隨着30MB的源我得到以下輸出

./ffmpeg -y -i big_buck_bunny_720p_30mb.mp4 -s 854x480 -ss 0 -vcodec libx264 -level:v 3.0 -profile:v baseline -f mpegts -async 2 -acodec libmp3lame -ar 44100 -r 24.00 -b:v 703k -maxrate 703k -bufsize 703k -r 24.00 -b:a 96.0k test1.mpegts -hls_time 10 -hls_segment_filename test-%03d.ts -hls_playlist_type vod test.m3u8 

test.mpegts的大小 - > 19MB, 總和的TS文件的大小 - > 17MB

隨着63MB的源我得到以下輸出

./ffmpeg -y -i BigBuckBunny_320x180.mp4 -s 854x480 -ss 0 -vcodec libx264 -level:v 3.0 -profile:v baseline -f mpegts -async 2 -acodec libmp3lame -ar 44100 -r 24.00 -b:v 703k -maxrate 703k -bufsize 703k -r 24.00 -b:a 96.0k test2.mpegts -hls_time 10 -hls_segment_filename test-%03d.ts -hls_playlist_type vod test.m3u8 

test.mpegts的大小 - > 62.21 MB 總和的TS文件的大小 - > 26MB

隨着397Mb的源我得到以下輸出

./ffmpeg -y -i big_buck_bunny_720p_h264.mov -s 640x360 -ss 0 -vcodec libx264 -level:v 3.0 -profile:v baseline -f mpegts -async 2 -acodec libmp3lame -ar 44100 -r 24.00 -b:v 703k -maxrate 703k -bufsize 703k -r 24.00 -b:a 96.0k test3.mpegts -hls_time 10 -hls_segment_filename test-%03d.ts -hls_playlist_type vod test.m3u8 

test.mpegts的大小 - > 62MB的TS文件的大小總和 - > 142Mb文件

源位置 - >

http://www.sample-videos.com/ 


http://download.blender.org/peach/bigbuckbunny_movies/ 

任何人都可以點我這也解釋了任何文件,爲什麼會出現在大小之間的差異如此巨大的差異.mpegts文件和.ts文件的總和。

回答

2

所有的編碼設置僅適用於.mpegts輸出。在ffmpeg中,除全局輸出選項之外的所有輸出選項僅適用於下一個指定的輸出。

HLS流由並行編碼流水線生成,由於您沒有提供任何開關,因此使用默認值(例如, vcodec簡介high,音頻比特率128k。將所有編碼參數複製到第二個輸出鏈,或使用tee複用器。

+0

你的意思是說 /的ffmpeg -y -i big_buck_bunny_720p_5mb.mp4 -s 854×480 -ss 0 -vcodec libx264 - 電平:3.0版本-profile:v基線-f MPEGTS -async 2 -acodec了libmp3lame -ar 44100 -r 24.00 -b:v 703k -maxrate 703k -bufsize 703k -r 24.00 -b:96.0k test.mpegts -vcodec libx264 -level:v 3.0 -profile:v baseline -f mpegts -async 2 -acodec libmp3lame -ar 44100 - r 24.00 -b:v 703k -maxrate 703k -bufsize 703k -r 24.00 -b:a 96.0k -hls_time 10 -hls_segment_filename test-%03d.ts -hls_playlist_type vod test.m3u8,這應該爲mpegts生成相同的大小, ts文件? –

+0

您還必須添加'-s'和'-ss'。但是,否則,一個合格的是。關鍵幀選擇可能仍然存在差異。 – Mulvya

+0

默認的keyint是30,所以應該保持不變。 –