我正在试图找到代码转换的资产的大小,但是我发现.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
源为30 of时,我得到以下输出
./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 -> 19 ts的大小,ts文件大小之和( -> 17 ts)
在源代码为63 of时,我得到以下输出
./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文件的大小之和-> 26 ts
源为397 of时,我得到以下输出
./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 -> 62 ts的大小与ts文件的大小之和-> 142 ts
->文件的源位置
http://www.sample-videos.com/
http://download.blender.org/peach/bigbuckbunny_movies/
有人能告诉我为什么.mpegts文件和.ts文件之间的大小差异如此之大。
发布于 2017-06-09 15:08:55
所有编码设置仅适用于.mpegts
输出。在ffmpeg中,除全局输出选项外,所有输出选项都只适用于下一个指定的输出。
HLS流是由并行编码管道生成的,并且由于您没有提供任何开关,所以使用默认值,例如vcodec配置文件high
、音频比特率128k
。要么将所有编码参数复制到第二个输出链,要么使用T形三通 muxer。
https://stackoverflow.com/questions/44459758
复制相似问题