【问题标题】:Decode .mov video file with PNG codec type使用 PNG 编解码器类型解码 .mov 视频文件
【发布时间】:2015-11-08 06:14:18
【问题描述】:

我正在尝试使用带有 AVFoundation 的“PNG,Timecode”编解码器解码视频并出现错误

Error Domain=AVFoundationErrorDomain Code=-11833 "Cannot Decode" UserInfo={NSLocalizedFailureReason=The decoder required for this media cannot be found.,NSUnderlyingError=0x610000044050 {Error Domain=NSOSStatusErrorDomain Code=-12906 "(null)"}, AVErrorMediaTypeKey=vide, NSLocalizedDescription=Cannot Decode}

来自 AVAssetReader。可能需要为 AVAssetReaderTrackOutput 使用特定的像素格式类型?

来自 videoTrack.formatDescriptions 的信息:

<CMVideoFormatDescription 0x618000042ac0 [0x7fff7b281390]> {
    mediaType:'vide' 
    mediaSubType:'png ' 
    mediaSpecific: {
        codecType: 'png '       dimensions: 2852 x 1871 
    } 
    extensions: {<CFBasicHash 0x61800006c180 [0x7fff7b281390]>{type = immutable dict, count = 9,
entries =>
    0 : <CFString 0x7fff7eee0750 [0x7fff7b281390]>{contents = "TemporalQuality"} = <CFNumber 0x27 [0x7fff7b281390]>{value = +0, type = kCFNumberSInt32Type}
    1 : <CFString 0x7fff7eee0790 [0x7fff7b281390]>{contents = "Version"} = <CFNumber 0x117 [0x7fff7b281390]>{value = +1, type = kCFNumberSInt16Type}
    2 : <CFString 0x7fff7eee0590 [0x7fff7b281390]>{contents = "FormatName"} = PNG
    3 : <CFString 0x7fff7ad964d8 [0x7fff7b281390]>{contents = "CVPixelAspectRatio"} = <CFBasicHash 0x61800006c140 [0x7fff7b281390]>{type = immutable dict, count = 2,
entries =>
    1 : <CFString 0x7fff7ad964f8 [0x7fff7b281390]>{contents = "HorizontalSpacing"} = <CFNumber 0xb2427 [0x7fff7b281390]>{value = +2852, type = kCFNumberSInt32Type}
    2 : <CFString 0x7fff7ad96518 [0x7fff7b281390]>{contents = "VerticalSpacing"} = <CFNumber 0xb2427 [0x7fff7b281390]>{value = +2852, type = kCFNumberSInt32Type}
}

    4 : <CFString 0x7fff7eee0550 [0x7fff7b281390]>{contents = "VerbatimSampleDescription"} = <CFData 0x618000140370 [0x7fff7b281390]>{length = 106, capacity = 106, bytes = 0x0000006a706e67200000000000000001 ... 00000b2400000000}
    5 : <CFString 0x7fff7eee07b0 [0x7fff7b281390]>{contents = "RevisionLevel"} = <CFNumber 0x117 [0x7fff7b281390]>{value = +1, type = kCFNumberSInt16Type}
    6 : <CFString 0x7fff7eee0770 [0x7fff7b281390]>{contents = "SpatialQuality"} = <CFNumber 0x40027 [0x7fff7b281390]>{value = +1024, type = kCFNumberSInt32Type}
    7 : <CFString 0x7fff7eee07d0 [0x7fff7b281390]>{contents = "Vendor"} = appl
    8 : <CFString 0x7fff7eee05b0 [0x7fff7b281390]>{contents = "Depth"} = <CFNumber 0x2017 [0x7fff7b281390]>{value = +32, type = kCFNumberSInt16Type}
}
}
}

我可以用 AVFoundation 解码这个视频吗?

另外,如果使用 QuickTime Player 打开此视频并重新保存,它会使用“Apple ProRes 4444,时间码”编解码器保存视频,并且此视频可以使用 AVFoundation 解码,但文件大小从 800Kb 增加到 2Mb。

感谢您的帮助!

【问题讨论】:

    标签: ios macos avfoundation video-encoding


    【解决方案1】:

    您只能使用这些 API 打开 H264 编码的视频。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-16
      • 2017-10-11
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      相关资源
      最近更新 更多