ffmpegでファイルからムービーアトムを取得するには? たとえば、avcC
atom バイトが必要です。解決策があれば、自分でパーサーをコーディングしたくありません。
http://www.ffmpeg.org/doxygen/0.6/mov_8c-source.htmlはいくつかの API を提供しているようですが、私は ffmpeg に詳しくありません。
または、SPS および PPS NAL を取得するための直接 API はありますか?
ffmpegでファイルからムービーアトムを取得するには? たとえば、avcC
atom バイトが必要です。解決策があれば、自分でパーサーをコーディングしたくありません。
http://www.ffmpeg.org/doxygen/0.6/mov_8c-source.htmlはいくつかの API を提供しているようですが、私は ffmpeg に詳しくありません。
または、SPS および PPS NAL を取得するための直接 API はありますか?
FFmpeg がこれらの詳細を取得するための直接 API を提供しているかどうかはわかりません。avcC
ただし、 QuickTime/MP4 ファイルからアトムを取得できるようにする、信じられないほど怠惰なソリューションを次に示します。
moov
トップレベルのアトム構造でアトムを見つけます ( mdat
、ftyp
、およびおそらく他のいくつかのアトムの間をトラバースします)。moov
をメモリにロードします (簡単に収まります)。これは最もクリーンなアプローチではありませんが、おそらくうまくいくでしょう。さらに正気を保つために (文字列 'avcC' がメタデータ アトムのようにアトム内の別の場所にある場合に備えて)、'avcC' 文字列の前の 4 バイトをチェックし、それらをビッグ エンディアンの 32 ビット数として扱います。avcC
アトムの長さを確認し、それらが意味をなすことを確認してください。いくつかの H.264 .MP4 ファイルを確認したところ、経験的に、長さは約 43 ~ 45 バイトです。少なくとも、原子の長さが 8 (最小原子サイズ) よりも大きく、原子の端にぶつからないようにしてmoov
ください。