Mpegts大小与ts文件总和的差异

时间:2017-06-09 13:59:24

标签: ffmpeg

我正在尝试查找转码资产的大小,但我发现.ts文件的大小总和与ffmpeg创建的mpegts输出文件的大小不匹配。

例如:

使用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.21Mb 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文件总和之间存在巨大差异的文档。

1 个答案:

答案 0 :(得分:2)

您的所有编码设置仅适用于.mpegts输出。在ffmpeg中,除全局输出之外的所有输出选项仅适用于下一个指定的输出。

HLS流由并行编码管道生成,由于您没有提供任何开关,因此使用默认值,例如: vcodec个人资料high,音频比特率128k。将所有编码参数复制到第二个输出链,或使用tee复用器。