我想在使用 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 x 188 字节数据包)。
对于视频,iframe 数据包非常大,因此它们可以很好地转换为 .ts 数据包,但是,差异可以像音频数据包一样小,因此它们会遇到同样的问题。
解决方案是将多个 aac 数据包组合成一个更大的流,然后再将它们打包成 .ts。FFMPEG开箱即用吗?