【问题标题】:Problem with Unused Audio-Channels in QuickTime CaptureQuickTime Capture 中未使用的音频通道问题
【发布时间】:2011-03-21 13:48:01
【问题描述】:

不久前,我使用 QTKit 捕获 API 编写了一个从多个设备同时捕获音频和视频的应用程序。

但是,我不时了解到,从 DV 摄像机捕获的媒体似乎没有任何关联的音频。事实上,文件中的音轨很好,但在 QuickTime Player Pro 中通道被设置为“未使用”——因此是静音。

由于我不愿意让我的用户接触到这种恶作剧,我想在飞行后录制并自动修复频道布局(如果需要)。

不幸的是,我很难弄清楚怎么做!

我的问题有两个:

  1. 是否可以从 QTKit 中检测轨道的音频通道是否被标记为“未使用”?
  2. 因为我认为上述问题的答案是“否”,所以我一直在研究一些与“Atom Inspector”正常工作的电影文件的结构——到目前为止没有任何成功:
    存储此信息的 QuickTime Atom 是什么/在哪里?
    我可以在stsd Atom(包含在stbl Atom 中)中看到正确的通道数,但我看不到任何映射发生的位置。

【问题讨论】:

    标签: audio video-capture quicktime qtkit


    【解决方案1】:

    第一个问题:看起来不像。

    您必须使用QTGetTrackPropertyInfo API 和kQTPropertyClass_Audio, kQTAudioPropertyID_ChannelLayout 来获得频道布局。如果返回的AudioChannelLayout 结构包含标签!= 0,您可以通过AudioFormatGetPropertyInfokAudioFormatProperty_ChannelLayoutForTag 解决它;否则,AudioChannelDescription 字段将有效,mChannelLabel 设置为 kAudioChannelLabel_Unused (0)。当然,这一切都只适用于 32 位。别忘了#include <AudioToolbox/AudioToolbox.h>

    第二个问题:
    音轨的 stsd 原子应该包含一个“chan”扩展名。这个扩展似乎是一个 UInt32 设置为零,后跟一个AudioChannelLayout 结构。 QT 文件规范和 MP4 规范中似乎都没有记录。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 2021-05-07
      • 2021-06-24
      • 2020-01-03
      相关资源
      最近更新 更多