Ffmpeg Mpegts与ts文件之和的大小差异

Ffmpeg Mpegts与ts文件之和的大小差异,ffmpeg,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 703

我试图找到转码资产的大小,但我发现.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
测试的大小.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
./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
./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
测试的大小.mpegts->19Mb, ts文件大小之和->17Mb

源代码为63Mb时,我得到以下输出

./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
./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
./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
测试的大小.mpegts->62.21Mb ts文件大小之和->26Mb

对于397Mb的源,我得到以下输出

./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
./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
./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
测试的大小.mpegts->62Mb ts文件大小之和->142Mb

文件的源位置->

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


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

有人能告诉我一些文档,解释为什么.mpegts文件和.ts文件的总和之间的大小差异如此巨大。

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


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

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


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

你的意思是说/ffmpeg-y-i big_buck_bunny_720; p_5mb.mp4-s 854x480-ss 0-vcodec libx264-level:v3.0-profile:v baseline-f mpegts-async 2-acodec libmp3lame-ar 44100-r 24.00-b:v703k-maxrate 703k-bufsize 703k-r 24.00-b:a 96.0k test.mpegts-vcodec libx264-level:v3.0-profile:v3.0-async-gpet2-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_段_文件名测试-%03d.ts-hls_播放列表_类型vod测试.m3u8,这应该为mpegts和ts文件的总和生成相同的大小?您还必须添加
-s
-ss
。但除此之外,有条件的回答是肯定的。关键帧选择可能仍然存在差异。默认的关键点为30,因此应该保持不变。您的意思是说,对于单个ts,如果我运行mediainfo,我将获得vcodec mpeg2video和acodec mp2?您应该获得HLS的默认编解码器,无论它们是什么。因为TS的默认值是mpeg2video/mp2,所以我假设是这样的,你是说/ffmpeg-y-i big_buck_bunny_720; p_5mb.mp4-s 854x480-ss 0-vcodec libx264-level:v3.0-profile:v基线-f mpegts-async 2-acodec libmp3lame-ar 44100-r 24.00-b:v703k-maxrate 703k-bufsize 703k-r 24.00-b:a 96.0k测试-r 24.00-b:v 703k-maxrate 703k-bufsize 703k-r 24.00-b:a 96.0k-hls_时间10-hls_段文件名测试-%03d.ts-hls_播放列表_类型vod测试.m3u8,这应该会生成相同大小的mpegts和ts文件的总和?您还必须添加
-s
-ss
。但除此之外,有条件的回答是肯定的。关键帧选择可能仍然存在差异。默认的关键点为30,因此应该保持不变。您的意思是说,对于单个ts,如果我运行mediainfo,我将获得vcodec mpeg2video和acodec mp2?您应该获得HLS的默认编解码器,无论它们是什么。因为TS的默认值是mpeg2video/mp2,所以我假设是这样的,