0

少し前に、QTKit キャプチャ API を使用して、複数のデバイスからオーディオとビデオを同時にキャプチャするアプリケーションを作成しました。

ただし、DV カムコーダーからキャプチャしたメディアにオーディオが関連付けられていないように見える場合があることを知りました。実際、オーディオ トラックはファイル内に十分に存在しますが、チャンネルは QuickTime Player Pro で「未使用」に設定されているため、無音になっています。

ユーザーをそのような悪ふざけにさらすのは気が進まないので、必要に応じて録音をポストフライトし、チャンネル レイアウトを自動的に修正したいと考えています。

残念ながら、私は方法を理解するのに苦労しています!

私の質問は 2 つあります。

  1. トラックのオーディオチャンネルが QTKit から「未使用」としてマークされているかどうかを検出することはまったく可能ですか?
  2. 上記の答えは「いいえ」だと思うので、「Atom Inspector」で正しく動作しているいくつかのムービー ファイルの構造を掘り下げてきましたが、これまでのところ成功していません
    。この情報は保存されますか?(Atom に含まれている) Atom
    内の正しい数のチャネルを確認できますが、マッピングが発生する場所がわかりません。stsdstbl
4

1 に答える 1

1

最初の質問:そのようには見えません。

チャネルレイアウトを取得するには、でQTGetTrackPropertyInfoAPIを使用する必要があります。kQTPropertyClass_Audio, kQTAudioPropertyID_ChannelLayout返された構造にタグ!= 0が含まれている場合は、 ;を使用しAudioChannelLayoutてそれを解決できます。それ以外の場合、フィールドは有効になり、(0)に設定されます。もちろん、これはすべて32ビットでのみ機能します。することを忘れないでくださいAudioFormatGetPropertyInfokAudioFormatProperty_ChannelLayoutForTagAudioChannelDescriptionmChannelLabelkAudioChannelLabel_Unused#include <AudioToolbox/AudioToolbox.h>

2番目の質問:
オーディオトラックのstsdアトムには、「chan」拡張子が含まれている必要があります。この拡張機能は、UInt32がゼロに設定され、その後にAudioChannelLayout構造体が続くように見えます。QTファイル仕様にもMP4仕様にも文書化されていないようです。

幸運を!

于 2011-03-22T17:53:30.637 に答える