我尝试使用AVAssetWriter裁剪视频。我需要比AVAssetExportSession提供的预设更深入地控制输出。我试图使用输出模式AVVideoScalingModeFit与我的AVAssetWriterInput,但这会导致崩溃说明:
AVAssetWriterInput目前不支持AVVideoScalingModeFit
以下是我使用的视频设置:
let videoSettings: [String : Any] = [
AVVideoCodecKey: AVVideoCodecH264,
AVVideoWidthKey: 450,
AVVideoHeightKey: 450,
AVVideoScalingModeKey: AVVideoScalingModeFit,
AVVideoCompressionPropertiesKey: [
AVVideoAverageBitRateKey: 1000000,
AVVideoProfileLevelKey: AVVideoProfileLevelH264Baseline41,
AVVideoAllowFrameReorderingKey: false,
AVVideoExpectedSourceFrameRateKey: 23
]
]
我的问题有两个:1)如果我不能使用它,为什么这种模式存在? 2)如果我可以使用它,我该怎么做?
其他人已经提出这个问题,但仍然没有答案。请参阅:here。
答案 0 :(得分:0)
1)仅仅因为AVAssetWriter
不支持AVVideoScalingModeKey
,并不意味着它在AVFoundation的其他地方不受支持。
2)使用核心图像或VTPixelTransferSession
或适合您的管道的任何内容自行缩放视频帧。