Тип кодека AVAssetWriter hevc - PullRequest
       106

Тип кодека AVAssetWriter hevc

0 голосов
/ 11 октября 2018

Я пытаюсь перекодировать видео H264 в HEVC с помощью AVAssetWriter, и это не удается на iPhone 6s.Предположительно, iPhone 6s поддерживает HEVC для транскодирования, а не кодирования видео в реальном времени.Тот же код работает на iPhone 7 и выше.Если iPhone 6s не поддерживает кодек HEVC, как мы можем программно определить поддерживаемые кодеки во время выполнения?

                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 

1 Ответ

0 голосов
/ 03 января 2019

Я закончил тем же путем

if #available(iOS 11.0, *),  AVCaptureVideoDataOutput().availableVideoCodecTypes.contains(.hevc) {
            //use .hevc settings here
        } else {
            //use .h264 settings here
        }

Проверка #available необходима для того, чтобы компилятор был доволен, если ваше приложение ориентировано на

...