Android:MPEG4/H.264パケット化の例
質問
MPEG4ビデオストリーム(実際にはAndroidビデオカメラから)を分割して、RTPを介して送信する必要があります。迅速な参照のために、仕様は少し大きくなっています。
MPEG4パケット化のための例/オープンソースコードがあるのだろうか?
助けてくれてありがとう!
解決
MPEG4ファイル形式は、ISO/IEC 14496-14とも呼ばれます。あなたが仕様を見つけるものは何でもグーグルです。ただし、あなたがやろうとしていること(RTPパブリッシャー)は、次の理由で難しいでしょう。
MPEG4には、ファイルの最後にヘッダーがあります。つまり、ヘッダーはビデオストリームが終了したときにのみ書き出されます。リアルタイムのビデオストリーミングを行いたいので、オーディオとビデオパケットが始まる/終了場所を推測する必要があります。これは、さまざまなビデオサイズとコーデックパラメーターを使用する可能性があるため、すべてのAndroidデバイスで同じではありません。そのため、コードはデバイスに依存し、多くの異なるデバイスをサポートおよびテストする必要があります。
一部のデバイスでは、通常の間隔でファイルするビデオデータをフラッシュしません。 1分ほど平らにしか洗いません。これにより、リアルタイムのストリームが壊れます。
コードの例はありません。私が見たので私は知っています。似たようなことをする会社はいくつかありますが、主にRTPをスキップしています。代わりに、ファイルを独自のサーバーに徐々にアップロードし、ビデオ/オーディオストリーム「チョッピング」を実装し、ビデオ/トランスコダーバックエンドに挿入します。私はそれらの企業の1つで働いていましたが、それが私たちのやり方です。 AFAIK競争は同様のアプローチを取りました。利点は、すべての複雑さがサーバー上にあり、何かが壊れたり、新しいデバイスが市場に到着したときにクライアントを更新する必要はないということです。