問題タブ [video-toolbox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - VideoToolbox ハードウェア エンコーダーのフレーム遅延
使用事例:
ビデオ ストリーミング用の VideoToolbox ハードウェア エンコーダーを使用して、ビデオ ストリームをリアルタイムでエンコードしようとしています。
問題:
VTCompressionOutputCallback は、2 つ以上のフレームがエンコーダーに渡された後にのみ呼び出されています。最後に送信されたフレームはエンコーダー バッファーに格納され、次のフレームが入った後にのみ送信されます。この動作により、デコーダー側で 1 フレームの遅延が発生するため、リアルタイム ストリーミングはありません。kVTCompressionPropertyKey_RealTime、kVTCompressionPropertyKey_MaxFrameDelayCount、kVTCompressionPropertyKey_MoreFramesAfterEnd のさまざまなエンコーダ プロパティを確認しましたが、いずれも問題を解決していないようです。私は CompleteFrames 関数も認識していますが、各フレームの後に呼び出すと、エンコーダーにキーフレームのみを強制的に発行させます。
質問:
内部エンコーダーのフレーム バッファー サイズを 0 に減らし、エンコーダーを 1-in-1-out 方式で動作するように設定する可能性はありますか?
私のデフォルトのエンコーダ設定:
ありがとう
ios - AddressSanitizer: リリース アーカイブのみの heap-use-after-free
クラスの例を作成しました: https://github.com/ChoadPet/H.264-Decoding
構成を使用してアプリケーションをビルドすると、DEBUG
すべて正常に動作しますが、アーカイブRELEASE
すると、次の行でクラッシュします。
有効にすると、次のAddress Sanitizer
エラーが発生しました。
Thread 9: Use of deallocated memory
それなし:Thread 12: EXC_BAD_ACCESS (code=1, address=0x107dd0020)
解放されたメモリがいくつかあり、メソッドでアクセスすることは理解していますが、16 進数のアドレスを見つけることができず、これがビルドVTDecompressionSessionDecodeFrame
でどのように完全に機能しているのかわかりません。
このメソッドの前に、とが正常に作成 (初期化) されています。DEBUG
session
sampleBuffer
DEBUG configuration
クラッシュの原因となる変更可能なプロジェクト設定はありますか? または、誰かがコードの問題について私に指摘できますか?
ありがとうございました!
ios - H.264 圧縮を CMSampleBuffer に適用する方法
私は H.264 エンコーディングを Swift でのCMSampleBuffer
使用に適用しようとしていますVideoToolBox
。私は Swift に非常に慣れていないため、圧縮によって が にCMSampleBuffer
変換される場合にこれを行う方法がわかりません。終わり。すべての助けをいただければ幸いです!CVPixelBuffer
NSData