問題タブ [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.
ios - AVSampleBufferDisplayLayer が Operation Interrupted (-11847) で失敗するのはなぜですか?
AVSampleBufferDisplayLayer
サーバーからストリーミングされた H.264 ビデオをデコードして表示するために を使用しています。アプリがバックグラウンドに入ってからフォアグラウンドに戻ると、デコード プロセスが台無しになり、AVSampleBufferDisplayLayer
失敗します。私が見ているエラーは次のとおりです。
でこのような問題に遭遇した人はいますAVSampleBufferDisplayLayer
か? これは何を意味するのでしょうか?
エラーが発生したときに を破棄しAVSampleBufferDisplayLayer
て新しいものを作成しようとしましたが、H.264 デコーダーから他のエラーを受け取り始めました。
AVSampleBufferDisplayLayer
失敗する前に、これらのエラーを受け取っていませんでした。
video - VTCompressionSession の MaxH264SliceBytes プロパティを設定する方法
iOSVTCompressionSession
にはプロパティがありkVTCompressionPropertyKey_MaxH264SliceBytes
ます。ただし、 のkVTCompressionPropertyKey_MaxH264SliceBytes
プロパティを設定できませんVTCompressionSession
。-12900 エラー コード (kVTPropertyNotSupportedErr) を返し、VTCompressionProperties.h ファイルの説明には、「H.264 エンコーダーでサポートされている場合、可能な場合、値はエンコーダーによって生成されるスライスのサイズをバイト単位で制限します」と書かれています。
したがって、このプロパティの使用が一部のエンコーダー設定でサポートされていることを理解しています。その設定が何か知っている人はいますか?
ありがとう。
objective-c - VideoToolbox を使用して H.264 ビデオ ストリームを解凍する方法
Apple のハードウェア アクセラレーション ビデオ フレームワークを使用して H.264 ビデオ ストリームを解凍する方法を理解するのに、かなり苦労しました。数週間後、私はそれを理解し、広範な例を見つけることができなかったので共有したいと思いました.
私の目標は、WWDC '14 セッション 513で紹介された Video Toolbox の完全で有益な例を提供することです。基本的な H.264 ストリーム (ファイルから読み取ったビデオやオンラインからストリーミングしたビデオなど) と統合する必要があり、特定のケースに応じて微調整する必要があるため、私のコードはコンパイルまたは実行されません。
私は、主題をグーグルで調べているときに学んだことを除いて、ビデオのエンコード/デコードの経験がほとんどないことに言及する必要があります. ビデオ形式、パラメーター構造などの詳細をすべて知っているわけではないので、知っておく必要があると思われるものだけを含めました。
XCode 6.2 を使用しており、iOS 8.1 および 8.2 を実行している iOS デバイスにデプロイしました。
ios - VideoToolbox は MFT エンコードされた H264 を正しくデコードできません
VideoToolbox が Media Foundation Transform (MFT) でエンコードされた H264 を正しくデコードできないという問題に遭遇した人はいますか? デコードされたフレームには、フレームの半分以上に緑色のブロックの歪みがあります。Windows 7 デスクトップで実行されている PC ビデオ エンドポイントからネットワーク経由で送信される MFT エンコードされた H264 をデコードするLivy Stork の例を試しました。Xcode 6.3 を使用しており、iOS 8 デバイスで実行しています。
手がかり: MFT でエンコードされた H264 が Windows 8 または 8.1 デスクトップ/タブレットで実行されている PC ビデオ エンドポイントから来る場合、同じアルゴリズムが正常に機能します。MSDNによると、ほとんどのコーデック プロパティは Windows 7 ではサポートされていませんが、どのプロパティが違いを生むのかわかりません...
ios - CVPixelBufferPoolCreatePixelBuffer でのメモリ リーク
現在、いくつかのコードをデバッグしています。ムービー ファイルをフレーム配列に読み込み、フレームにいくつかの変換を適用し、すべてをコンパイルしてビデオ ファイルに戻します。自分で呼び出したすべてのメモリ リークを修正しましたが、残りの 1 つはかなり深刻です。プロセス後、約 400 MB のメモリが残ります。これがリークのスクリーンショットです。
ご覧のとおり、より高いレベルの呼び出しは VideoToolbox ライブラリにのみあります。しかし、私はこのライブラリをプロジェクトに含めていません。このリークが Apple のライブラリに付属しているとは思えず、私にできることは何もありません。
これは、コール ツリーで言及された h264 とデコードに関連するものを使用する唯一のコードです。
ios - AVFoundation 対 VideoToolbox - ハードウェア エンコーディング
したがって、これはより理論的な質問/議論です。他のSOの投稿やWebからのソースを読んでも明確な答えにたどり着けなかったからです。多くのオプションがあるようです:
AVFoundation に関する Brad Larson のコメント
iOS で H.264 (mov) ファイルのハードウェア デコードを行いたい場合、単純に AVFoundation と AVAssets を使用できますか、または VideoToolbox (またはその他のフレームワーク) を使用する必要があります。これらを使用する場合、プロジェクトの実行時にハードウェア パフォーマンスをどのようにプロファイリング/ベンチマークできますか? - XCode の「Debug Navigator」で CPU 使用率を見るだけですか?
要するに、私は基本的に、AVFoundation と AVAssets がハードウェア エンコーディングを実行するかどうかを尋ねています。それらは十分ですか?実際のパフォーマンスをベンチマークするにはどうすればよいですか?
ありがとう!
ios - VTCompressionSession のビットレートを設定する方法
アプリケーションを独自のコーデックから iOS ネイティブ h264 エンコーダー (VideoToolbox.framework) に移行する作業を行っていますが、質問があります。
圧縮データのビットレートまたはデータレートを設定する方法はありますか?
エンコーダーセッションを作成する方法は次のとおりです。
私はさまざまな値でたくさん遊んでいますがkVTCompressionPropertyKey_AverageBitRate
、これは私には何の役にも立ち kVTCompressionPropertyKey_DataRateLimits
ません。また、さまざまな値で試してみましたが、運もありませんでした。
アイデア、提案は大歓迎です
ios - WWDC2014 のように VTCompressionSession を使用する
このライブラリに関するドキュメントは本質的に存在しないため、ここであなたの助けが本当に必要です.
目標: MPEG トランスポート ストリームに渡すことができるように、H264 エンコーディングが必要です (できればオーディオとビデオの両方を使用しますが、ビデオだけでも問題ありません。オーディオも動作させるために数日間試してみます)。
私が持っているもの:サンプルバッファを記録して出力するカメラがあります。入力はカメラバックと内蔵マイク。
いくつかの質問: A. カメラに CMSampleBuffer を H264 形式で出力させることは可能ですか?つまり、2014 では VTCompressionSessions から生成されていますが、captureOutput を書き込んでいるときに、既に CMSampleBuffer を取得していることがわかります... B. VTCompressionSession を設定するにはどうすればよいですか? セッションはどのように使用されますか?これに関する最上位レベルでの包括的な議論は、ほとんど文書化されていないこのライブラリで実際に何が起こっているのかを人々が理解するのに役立つかもしれません。
ここにコードを記述してください (必要に応じてさらに質問してください。コードの残りの部分がどの程度関連しているかがわからないため、captureOutput のみを入れています):
皆さんありがとう!
c++ - OSX、VideoToolbox、圧縮セッション
環境
- OSX ヨセミテ
- xcode 6.4
- C++
使用事例
単一のキー フレームと複数の対応するデルタ フレームで構成される h264 GOP が与えられた場合、GOP をデコードしてから、単一の4.2M ビットキー フレームをエンコードします。
問題の説明
GOP をデコードしてキー フレームをエンコードすることはできますが、結果のキー フレームは低品質 (低ビット レート) です。次のコード スナップに見られます)、Key-Frame が 1 つしか必要ないことを念頭に置いて、VideoToolBox Encoder を設定して高ビットレートの Key-frame を出力する方法はありますか?
ctx.keyFrame品質が非常に低くなります