2012-04-04 3 views
0

ストリームから取り込んだビデオフレームを既存のmp4ファイルに追加する必要があります。 チャンクテーブルを更新するのにmdatstcoアトムを使用する必要があることがわかりました。 新しいフレーム/チャンクを追加することは可能ですか?私はアプリでこれを行う必要があります。再生中にビデオフレームをmp4に追加する

答えて

1

このような追加が可能ですが、特に一度に1つのフレームを追加したい場合は、実際的ではない場合があります。

MP4は、作成後に変更するのが非常に難しい "ベークド"形式です。これは、「moov」ボックス内の構造データには、「mdat」ボックス内の重要なメディアデータへのファイルオフセットが含まれているためです。 moovボックスがmdatボックスの前に配置されている場合(プログレッシブダウンロードを可能にするのに共通)、moovボックスに追加されたデータ(追加されたビデオの新しいキーフレームへの参照)は、mdatボックスをさらに遠ざけます。ファイルを書き直すだけでなく、それに応じてすべてのファイルオフセットを更新する必要があります。 (おそらく、moovボックスのサイズを一定に保つためのいくつかの巧妙なトリックがあります...)mdatボックスが最初に配置されていれば、moovボックスをメモリにコピーして新しいビデオをmdatの終わりに応じてmoovフィールドを更新し、新しいmoovボックスを追加します。

新しいビデオフレームをすべて集めることができ、録画の最後に書き換え操作中に追加すると、これが実行可能になる場合があります。断片化されたMP4(「moof」ボックスを使用して)を見ることもできますが、そのようなファイルの読み込みがどれほど普及しているか分かりません。

関連する問題