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 パケットに適切に変換されますが、差分はオーディオ パケットと同じくらい小さい可能性があるため、同じ問題が発生します。
解決策は、.ts にパッケージ化する前に、複数の aac パケットを 1 つの大きなストリームに結合することです。これはFFMPEGを使用してすぐに使用できますか?