(私は英語があまり得意ではありませんが、最善を尽くします。)
受信した h.264 ストリーミング ビデオ/オーディオ フレームをクリップに保存する Android アプリに取り組んでいます。そして、ここで言及されている「コーデック固有のデータがありません」という問題に遭遇しました。
これを解決する方法をいくつか試しました。
- 定義済みのコーデック固有のデータを割り当てます。この投稿
から借りたものは、驚くほど完璧に機能しましたが、個人の電話(Sony Xperia Z3、Android 5.1.1)でのみ機能しました。ほとんどのテスト デバイスはクラッシュします (Android 4.3/4.4)。 - ビデオ ストリーム自体からコーデック固有のデータを解析しています。
私の電話では、それは押しつぶされました。しかし、どういうわけか、一部のデバイスでは機能します。このコードを例として使用します。 - 受信したビデオ フレームをエンコードするエンコーダを作成し、MediaMuxer に渡します。
はい、それはばかげた考えです。うまくいきません。 - 受信したビデオ フレームをデコードするデコーダを作成し、それらをエンコーダに渡し、エンコードされたフレームを MediaMuxer に渡し、保存します。
アプリがエンコーダーから空きバッファーを取得できません。デッドロック。
今、私はアイデアを使い果たしています。
私が得た最後の希望は、ffmpeg を使用することです。
しかし、私が見つけたリソースは、ストリームからではなく、ビデオ ファイルからのビデオのエンコード/デコードです。
助言がありますか?
前もって感謝します。:)