7

FFmpeg を使用せずにビデオファイルからオーディオを抽出するにはどうすればよいですか?

.mov から .m4a ファイルへの変換など、それを解決するために使用AVMutableCompositionしたいと考えています。AVURLAsset

4

2 に答える 2

4

すべてのマルチメディア形式で、オーディオはビデオとは別にエンコードされ、それらのフレームはファイル内でインターリーブされます。そのため、マルチメディア ファイルから動画を削除するのに、エンコーダーやデコーダーをいじる必要はありません。電話でマルチメディア API を使用せずに、動画トラックを削除するファイル形式パーサーを作成できます。

サードパーティのライブラリを使用せずにこれを行うには、パーサーをゼロから作成する必要があります。これは、使用するファイル形式に応じて単純または困難になる可能性があります。たとえば、FLV は非常に単純なので、そこからトラックを取り除くのは非常に簡単です (ストリームを調べて、フレームの開始点を検出し、'0x09'=ビデオ フレームを削除するだけです)。MP4 はもう少し複雑で、そのヘッダー (MOOV) は、各トラック (TRAK アトム) のヘッダーを持つ階層構造を持っています。ビデオ TRAK をドロップしてから、インターリーブ ビットストリーム アトム (MDAT) をコピーする必要があります。コピーするときは、すべてのビデオ データ クラスターをスキップします。

ffmpeg 以外にも、使用できるサードパーティのライブラリがあります。頭に浮かぶのは、GPAC MP4BOX (LGPL ライセンス) です。LGPL が問題になる場合は、使用できる商用 SDK がたくさんあります。

于 2012-07-24T08:03:11.910 に答える