我希望在使用FFMPEG创建.ts文件时减少复用开销。
我正在使用FFMPEG创建一系列用于传输流的文件,用于HTTP直播流。
./ffmpeg -i myInputFile.ismv \
-vcodec copy \
-acodec copy \
-bsf h264_mp4toannexb \
-map 0 \
-f segment \
-segment_time 10\
-segment_list_size 999999 \
-segment_list output/myVarientPlaylist.m3u8 \
-segment_format mpegts \
output/myAudioVideoFile-%04d.ts
我的输入是ismv格式,包含一个视频和音频流:
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240, 348 kb/s, 29.97 tbr, 10000k tbn, 59.94 tbc
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 63 kb/s
涉及复用的问题导致大量的开销添加到流中。 对于音频,如下图所示:
对于给定的AAC流,开销将为88%(因为200字节将映射到2个188字节数据包)。
对于视频,I帧包相当大,因此它们可以很好地转换为.ts数据包,但是差异可能与音频包一样小,因此它们会遇到同样的问题。
解决方案是在将其打包成.ts之前将几个aac包组合成一个较大的流。使用FFMPEG是否可以直接实现?