問題タブ [qtkit]
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.
cocoa - Cocoa QTKit の解決の問題
多くのオンライン参照に基づいて、解像度を変更する方法は次のコードを使用することです。
ただし、解像度を変更した後captureView
は、別のものが表示されますが、コードを使用して解像度を確認するのは正しくありません。
デバイスの解像度を変更する方法を知っている人はいますか?
皆さんありがとう!
audio - QTKitがオーディオトラックを適切にミキシングしていません
1つのムービーファイルを2回(2つの別々のQTMovieインスタンス)インポートして、2番目のインスタンスのオーディオトラックを1秒オフセットしてから、最初のインスタンスのオーディオトラックとミックスしようとしています。混ざりません。最初のトラックの再生が開始されてから停止し、2番目のトラックの再生が開始されます。これは、コンテンツが異なる2つのムービーファイルを使用した場合には発生しませんが、ファイルを別の名前にコピーした場合には発生します。問題を説明する簡単なサンプルプロジェクトを作成しました:http://cl.ly/0s2U2s3S2F0Y052D2v0O/InsertTrack.zip
この問題の解決策にも喜んでお金を払っています!
movie - QTKitは、新しい映画を再生しても死ぬことのないスレッドを作成します
私は映画を作成し、QTMovieViewを介してそれらを再生するアプリを持っています。[movieView setMovie:newMovie]を実行するたびに、QTKitは死ぬことのない新しいスレッドを作成します。また、映画の割り当てが解除されることはないようです。問題を説明する簡単な例を作成しました。
http://cl.ly/371e0p443Q2K0R3f0Q1w/MovieLeak.zip
私はこの問題を解決するために誰かに喜んで支払います!
audio - QuickTime Capture の未使用のオーディオ チャンネルに関する問題
少し前に、QTKit キャプチャ API を使用して、複数のデバイスからオーディオとビデオを同時にキャプチャするアプリケーションを作成しました。
ただし、DV カムコーダーからキャプチャしたメディアにオーディオが関連付けられていないように見える場合があることを知りました。実際、オーディオ トラックはファイル内に十分に存在しますが、チャンネルは QuickTime Player Pro で「未使用」に設定されているため、無音になっています。
ユーザーをそのような悪ふざけにさらすのは気が進まないので、必要に応じて録音をポストフライトし、チャンネル レイアウトを自動的に修正したいと考えています。
残念ながら、私は方法を理解するのに苦労しています!
私の質問は 2 つあります。
- トラックのオーディオチャンネルが QTKit から「未使用」としてマークされているかどうかを検出することはまったく可能ですか?
- 上記の答えは「いいえ」だと思うので、「Atom Inspector」で正しく動作しているいくつかのムービー ファイルの構造を掘り下げてきましたが、これまでのところ成功していません
。この情報は保存されますか?(Atom に含まれている) Atom
内の正しい数のチャネルを確認できますが、マッピングが発生する場所がわかりません。stsd
stbl
objective-c - 他のソースからサウンドを録音中にビデオを再生しようとすると、QTKit によってプログラムがフリーズする
QTKit を使用して、マシンの周囲の音に関するリアルタイム情報を取得するアプリケーションがあります。これが発生している間、一部のユーザー イベントによってビデオの再生が開始される場合があります (まだ QTKit を使用しています)。これが発生すると、ビデオの再生が表示されますが、入力サウンドの取得と処理が停止します。
ムービー ビューは avakeFromNib で初期化されます
Play がヒットすると、オーディオ入力ストリームが停止します
それを機能させる方法について何か考えはありますか?
前もって感謝します
objective-c - QTKit 奇妙なエラー
単純なコードの平和 (ファイル 1.mp3 をクリックして、iTunes でも再生):
エラーを教えてください
- エラー Domain=NSOSStatusErrorDomain Code=-2000 UserInfo=0x2004a6de0 「必要なデータ参照を解決できませんでした。」
macos - QuickTime ムービーから YV12 (YUV420) 形式のすべてのビデオ フレームをリアルタイムで抽出する方法は?
QTKit で QTMovie を開いています。
このビデオの各フレームを YV12 形式 ( kYUV420PixelFormat ) でリアルタイムで取得する必要があります (つまり、YV12 のみを受け入れ、ビデオをリアルタイムで再生する必要がある外部コードに渡します)。
それが行われるべき方法は、現在のフレームに対して[movie frameImageAtTime: [movie currentTime] withAttributes: error: ]を呼び出し、次に[movie stepForward]を呼び出して次のフレームに移動することです。すべてのフレームを取得するまで同様です。 . しかし、調べてみると、QTKit で YV12 形式やその他の YUV 形式のデータを取得する方法が見つかりません。frameImageAtTime:呼び出しで次のように変換できます:
- NSImage (ただし、NSImage は平面 YUV を格納できません)、
- CGImage(同じもの)、
- CIImage(同じもの)、
- CVPixelBuffer (これは YUV を格納できますが、そこから YUV を取得するように呼び出しを構成する方法がないようです。デフォルトでは ARGB32 データを返します)
- OpenGL テクスチャ (これもおそらく構成できますが、OpenGL ではこのデータは必要ありません。メモリに必要です)
したがって、このおそらく新しく最適化された QTKit テクノロジを使用する唯一の方法は、そこから ARGB データを取得し、カスタム コードを使用して各フレームを YV12 に変換し、それでもリアルタイムで十分に高速であることを期待することです。または、何か不足していますか?
古い QuickTime では、 kYUV420PixelFormat を使用してGWorldを設定するのは比較的簡単で、それに Movie をレンダリングするだけでうまくいきました。しかし、古い QuickTime 呼び出しはレガシーで非推奨の呼び出しであり、もはや使用されません...
不要な変換なしで YUV420 平面フレームを取得するにはどうすればよいですか?
objective-c - QTCaptureSession の addInput メソッドが返されない
次のコードがあります。
これは実行時にロードされるバンドルにあり、NSThread のセレクターであるメソッドの一部です (つまり、メイン スレッドではなくバックグラウンド スレッドで実行されます)。
私の問題は、 #addInput:error: への呼び出しが返されないことです。ここで何が欠けていますか?
c++ - Qtアプリに埋め込まれたQTCaptureViewのサイズ変更
そこで、ユーザーがスナップショットを撮ることができるようにしながら、iSightを介してライブビデオプレビューを表示するアプリをMacにインストールしたいと考えています。基本的には、Still Motion Demoに似ていますが、Qtアプリで動作させる必要がある点が異なります。つまり、ほとんどがc ++構造に準拠しているmmファイルがあり、Obj-cメッセージングがときどきあります。現在、Qtモジュールの残りの部分と一緒にQTCaptureViewを配置する際に問題が発生しています。
今のところ、QMacCocoaViewContainerを介してQt guiに配置することができ、適切なサイズにサイズ変更したいと思いました。Interface Builderはもう使用できないので、なんとかしてコーディングする必要があります。作成した直後にフレームとバウンドを設定してみましたが、何の違いもありません。
Xcodeのデバッガーからわかる限り、ourPreviewBoundsのサイズは、setFrameおよびsetBoundsを呼び出した後でも0x0です。そして、camViewが有効であることを証明するために、QTCaptureViewの塗りつぶしの色を変更することができました。
QTCaptureViewのpreviewBoundsをオーバーライドすることがオプションである可能性があることをソースから読みましたが、その実用的な例を見つけることができませんでした。
Interface Builderの外部およびコードの内部でQTCaptureViewのサイズを変更する方法について誰かが私にヒントを与えることができれば、私はそれを非常に高く評価します。
objective-c - QTKit キャプチャ: 使用するフレーム サイズは?
私は単純なビデオ メッセンジャーのようなアプリケーションを作成しているため、使用可能な帯域幅に収まり、キャプチャされた画像が歪まないようにするために、ある程度妥協したサイズのフレームを取得する必要があります。
フレームを取得するには、QTCaptureVideoPreviewOutput クラスを使用しています。didOutputVideoFrame コールバックでフレームを正常に取得しています。(生のフレームが必要です-主にカスタムエンコーダーを使用しているため、「生のビットマップ」を取得したいだけです)。
問題は、これらの新しい iSight カメラの場合、文字通り巨大なフレームが得られることです。
幸いなことに、生のフレームをキャプチャするためのこれらのクラス (QTCaptureVideoPreviewOutput) には、取得するフレームの種類を指定できるメソッド setPixelBufferAttributes が用意されています。幸運にもカメラがサポートするフレーム サイズを推測できた場合は、それを指定できます。QTKit はカメラをこの指定されたモードに切り替えます。運が悪いと、画像がぼやけてしまい (拡大/縮小されたため)、ほとんどの場合、不均等になります。
私はlists.apple.comとstackoverflow.comを検索してきましたが、答えは「Appleは現在、カメラのネイティブフレームサイズを取得する機能を提供していません」です。まあ、それについて私ができることは何もありません。
設定で最も一般的なフレーム サイズを提供する必要があるかもしれません。しかし、これらの一般的なフレームサイズは何ですか? UVC カメラが通常生成するフレーム寸法のリストはどこで入手できますか?
アプリケーションをテストするために、UVC 準拠のカメラを使用していますが、iSight は使用していません。すべてのユーザーが iSight を使用しているわけではないと思いますが、モデルが異なっていても、iSight カメラのフレーム寸法が異なることは確かです。
または、カメラをデフォルト モードに切り替えて、いくつかのフレームを生成し、生成されるサイズを確認する必要があります。これは本当のハックのように見え、自然ではないようです。そして、画像はおそらく再びぼやけます。
この問題にどのように対処しましたか?私はそれに直面した最初の人ではないと確信しています。どのようなアプローチを選択しますか? ありがとう、ジェームズ