首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >确定iOS设备是否支持HEVC编码

确定iOS设备是否支持HEVC编码
EN

Stack Overflow用户
提问于 2018-06-20 19:54:58
回答 3查看 4.3K关注 0票数 7

我的问题是我想使用AVVideoCodecHEVC。我知道它只在iOS 11中可用,但是没有A10芯片的设备不支持它。

因此,如果使用没有if #available(iOS 11.0, *) { let self.codec = AVVideoCodecHEVC }芯片的iPhone 6这样的设备,使用A10将引发A10错误。有没有人能弄清楚运行iOS 11的设备是否能支持HEVC?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-20 20:16:30

您可以检查iOS设备或Mac是否具有使用VideoToolbox的硬件编码支持:

代码语言:javascript
运行
复制
/// Whether or not the current device has an HEVC hardware encoder.
public static let hasHEVCHardwareEncoder: Bool = {
    let spec: [CFString: Any]
    #if os(macOS)
        spec = [ kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder: true ]
    #else
        spec = [:]
    #endif
    var outID: CFString?
    var properties: CFDictionary?
    let result = VTCopySupportedPropertyDictionaryForEncoder(width: 1920, height: 1080, codecType: kCMVideoCodecType_HEVC, encoderSpecification: spec as CFDictionary, encoderIDOut: &outID, supportedPropertiesOut: &properties)
    if result == kVTCouldNotFindVideoEncoderErr {
        return false // no hardware HEVC encoder
    }
    return result == noErr
}()

一种更高级的检查方法是查看AVAssetExportSession是否支持HEVC预置:

代码语言:javascript
运行
复制
AVAssetExportSession.allExportPresets().contains(AVAssetExportPresetHEVCHighestQuality)

有关更多信息,请参见“与HEIF和HEVC合作”,来自WWDC 2017

票数 16
EN

Stack Overflow用户

发布于 2018-10-29 07:26:55

苹果设备上的HEVC媒体

当使用iOS 11或更高版本时,这些设备可以以HEIF或HEVC格式捕获媒体:

代码语言:javascript
运行
复制
iPhone 7 or iPhone 7 Plus or later
iPad (6th generation)
iPad Pro (10.5 inch)
iPad Pro 12.9-inch (2nd generation)
票数 3
EN

Stack Overflow用户

发布于 2019-12-25 00:04:10

使用AVFoundation:

代码语言:javascript
运行
复制
let isHEVC = AVOutputSettingsAssistant.availableOutputSettingsPresets().contains(.hevc3840x2160)

来自AVOutputSettingsPreset枚举的...or其他预置

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50956097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档