【问题标题】:Read multiple tracks with AVAssetReader使用 AVAssetReader 读取多个轨道
【发布时间】:2011-07-25 01:28:49
【问题描述】:

我需要从 AVAsset 中读取音频和视频的原始样本。做这个的最好方式是什么?我可以将多个 AVAssetReaderTrackOutput 对象附加到一个 AVAssetReader。但是 [AVAssetReaderOutput copyNextSampleBuffer] 是同步的。按时间顺序读取两个轨道的最佳方法是什么为每个 AVAssetReaderTrackOutput 分配一个线程是否安全?

【问题讨论】:

    标签: ios avfoundation


    【解决方案1】:

    好问题 - 每个 AVAssetReaderTrackOutput 一个线程似乎 在 iOS 上可以正常工作,但是否应该没有记录。根据 AVFoundation 的实现方式,您可能会导致对 AVAssetReader 和 AVAsset 的异步访问。那应该工作吗?没人知道。

    为了真正安全,您应该创建两个 AVAssetReader 甚至两个 AVAsset(它们可能只是 AVURLAssets)。

    【讨论】:

    • 我建议使用 2 个读卡器,我可能犯了一些错误,但只使用一个时我的行为很奇怪。
    • 什么样的奇怪行为? [AVAssetReader initWithAsset] 失败?
    • startReading 和 init 失败的异常,我没有写下确切的错误是什么。我这样做更多是出于好奇而不是必要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多