Я работаю над анимационным приложением.Я хочу экспортировать серию NSImage
объектов, каждый из которых представляет визуализированный кадр анимации, в видеофайл.Я подтвердил, что объекты NSImage
, генерируемые рендерингом NSView
, являются несжатыми и представляют собой идеальное представление исходного содержимого NSView
.Однако, когда я записываю видеофайл с AVAssetWriter
, видео явно сжимается.
Наилучшее качество, которое я нашел, это использование AVVideoCodecTypeJPEG
и передача @{AVVideoQualityKey : @(1.0)}
как AVVideoCompressionPropertiesKey
.Однако качество по-прежнему не идеальное.
На приведенном ниже снимке экрана изображение слева - это окно приложения, в котором отображается содержимое NSView
.Изображение справа - это экспортированное видео, открытое в Quicktime.Как видите, визуализированное изображение темнее, а цветность не такая, как в оригинале.При увеличении изображения выявляются дополнительные артефакты сжатия.
Это для пиксельного графического проекта, поэтому важно, чтобы экспортируемое видео было попиксельным и идентичным тому, что отображается в программном обеспечении для анимации.Я предполагаю, что мне нужно использовать другой кодек, но перепробовав все доступные через AVVideoCodecType
, ни один не дал подходящего вывода.