MediaFormat.KEY_I_FRAME_INTERVALは整数値しか取らず、エンコーダがIフレームの生成頻度を制御すると仮定しています。つまり、MediaCodecを使用している場合、Iフレームをより頻繁に生成することはできません。MediaCodecを使用すると、1秒未満の間隔でキーiフレームを生成するにはどうすればよいですか?
0
A
答えて
0
この問題の回避策が見つかりました。
キーフレームが必要になる前に次のコードを挿入すると、次に利用可能なフレームにキーフレームが生成されます。
A zero value means a stream containing all key frames is requested.
はあなたが必要なものがすべてです:
MediaFormat format = MediaFormat.createVideoFormat(...);
format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 0);
それはいくつかのデバイスのために、いくつかのデバイスのために働く(
Bundle b = new Bundle();
b.putInt(MediaCodec.PARAMETER_KEY_REQUEST_SYNC_FRAME, 0);
encoder.setParameters(b);
1
これを回避するには、タイムスタンプをスケーリングすることで回避できます。例:エンコーダに入力するときにタイムスタンプに2を掛け、エンコーダからの出力バッファでタイムスタンプを2で割ると、Iフレーム間隔を0.5秒にすることができます。次に、一致させるためにビットレート(およびフレームレート)を半分にする必要があります。もちろんこれは理想的ではありませんが、適切な効果を得ることができるはずです。
0
ドキュメントはと言いますNexus 6pなど)は例外を生成します:
E/ACodec: [OMX.qcom.video.encoder.avc] configureCodec returning error -1010
E/ACodec: signalError(omxError 0x80001001, internalError -1010)
E/MediaCodec: Codec reported err 0xfffffc0e, actionCode 0, while in state 3
E/MediaCodec: configure failed with err 0xfffffc0e, resetting...
関連する問題
- 1. Linuxでアラームを1秒未満に設定するにはどうすればよいですか?
- 2. Perlで1ミリ秒間眠るにはどうすればいいですか?
- 3. SKShapeNodeのlineWidthを1未満に設定するにはどうすればよいですか?
- 4. SQLiteで時間間隔のクエリを作成するにはどうすればよいですか?
- 5. 最後のフレームで数秒間アニメーションを停止するにはどうすればいいですか?
- 6. 特定の間隔で実行されるアクションを生成するためにPHPスクリプトを使用するにはどうすればいいですか?
- 7. 23未満のNDK用のSuperpowered libでアプリを構築するにはどうすればよいですか?
- 8. javascriptを使用して現在の時間と次の10分間の間隔で配列を作成するにはどうすればよいですか?
- 9. トランザクションレプリケーションで1秒未満の遅延を得ることは可能ですか?
- 10. ポイントクラウドライブラリを使用して1つのフレームをキャプチャするにはどうすればよいですか?
- 11. 間隔を使用してオブザーバブルの配列を更新するにはどうすればよいですか?
- 12. TR1を使用してC++で乱数を生成する/ dev/random(弾力性<1秒未満)
- 13. Googleマップのapiキーはどうすればよいですか?私は、APIキーを生成するために使うのですかどのようなURL
- 14. Rで特定の間隔のベクトルを作成するにはどうすればよいですか?
- 15. 1秒間に10件のメッセージを送信するにはどうすればよいですか?
- 16. jQueryで1秒間keyup()イベントをブロックするにはどうすればよいですか?
- 17. scalacheckジェネレータを使用して時間を生成するにはどうすればよいですか?
- 18. 未使用のポストスラッグを生成するにはどうすればいいですか?
- 19. EC2での未使用時間の請求を回避するにはどうすればよいですか?
- 20. ng-repeatのサイクルでAngular/HTMLを1秒間待機させるにはどうすればよいですか?
- 21. 時間、分、秒、およびミリ秒をゼロにするにはどうすればよいですか?
- 22. フレームを使用して360ビデオエフェクトを作成するにはどうすればよいですか?
- 23. 1行の間隔で2つのテーブル間で結合を使用するにはどうすればよいですか?添付ファイルの下
- 24. datepickerの日付範囲の日間隔を作成するにはどうすればよいですか?
- 25. 特定の時間間隔でファイルのバックアップを取得するにはどうすればよいですか?
- 26. 特定の間隔(更新用)でtkinterテーブルをリフレッシュするにはどうすればよいですか?
- 27. ProgressDialogは1秒未満で表示されます。
- 28. yiiで現在の日付未満のデータを表示するにはどうすればよいですか?
- 29. 一意の時間間隔でレコード数を取得するにはどうすればよいですか?
- 30. CSSで極薄の「font-weight」(100未満)を設定するにはどうすればよいですか?
非常に興味深い解決策です! –