首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVAssetWriter编解码器类型hevc

AVAssetWriter编解码器类型hevc
EN

Stack Overflow用户
提问于 2018-10-12 03:26:11
回答 2查看 703关注 0票数 4

我正在尝试使用AVAssetWriter将H264视频转码为HEVC,但在iPhone 6s上失败。据推测,iPhone 6s支持HEVC进行转码,而不是实时视频编码。同样的代码也适用于iPhone 7及更高版本。如果iPhone 6s不支持HEVC编解码器,我们如何在运行时以编程方式确定支持的编解码器?

代码语言:javascript
复制
let bitrate = trackBitrate / 5 
let trackDimensions = trackSize
let compressionSettings: [String: Any] = [
    AVVideoAverageBitRateKey: bitrate,
    AVVideoMaxKeyFrameIntervalKey: 30,
    AVVideoProfileLevelKey: kVTProfileLevel_HEVC_Main_AutoLevel
]
var videoSettings: [String : Any] = [
    AVVideoWidthKey: trackDimensions.width,
    AVVideoHeightKey: trackDimensions.height,
    AVVideoCompressionPropertiesKey: compressionSettings
]

videoSettings[AVVideoCodecKey] =  AVVideoCodecType.hevc
EN

回答 2

Stack Overflow用户

发布于 2019-01-03 19:54:59

我最终是这样做的

代码语言:javascript
复制
if #available(iOS 11.0, *),  AVCaptureVideoDataOutput().availableVideoCodecTypes.contains(.hevc) {
    // use .hevc settings here
} else {
    // use .h264 settings here
}

如果您的应用程序以< iOS 11为目标,则需要进行#available检查以使编译器满意

票数 1
EN

Stack Overflow用户

发布于 2019-09-07 07:27:23

您可以通过以下代码获取iPhone模型:

代码语言:javascript
复制
+ (NSString *) deviceModel {
    struct utsname systemInfo;
    uname(&systemInfo);

    return [NSString stringWithCString: systemInfo.machine encoding: NSUTF8StringEncoding];
}

并确定iPhone 6S是否禁用H265编码,上面的iPhone7是否启用H265编码。

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

https://stackoverflow.com/questions/52767533

复制
相关文章

相似问题

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