0
私はそれを動作させることができません。結果として私はalvaysは空の映画を持っています。 GPUImageAlphaBlendFilterをGPUImagePixellateFilterのようなものに置き換えると、ビデオはうまく描画されます。GPUImageAlphaBlendFilterオーバーレイ静止画をムービーファイルに作成できません
func convertVideo(source: URL, destination: URL, encodingPreferenses: VideoEncodingParams = .profileMedium,
overlayImage: UIImage?, completion: @escaping ExportAsyncBlock = { _, _ in }) {
let movieFile = GPUImageMovie(url: source)
movieFile?.runBenchmark = true
let alphaFilter = GPUImageAlphaBlendFilter()
alphaFilter.mix = 1.0
let markerInput = GPUImagePicture(image: ImageUtils.sharedUtils.resizeImage(overlayImage!, newSize: encodingPreferenses.videoSize, scaleFactor: 1.0))
movieFile?.addTarget(alphaFilter)
markerInput?.addTarget(alphaFilter)
let movieWriter = GPUImageMovieWriter(movieURL: destination, size: encodingPreferenses.videoSize)
alphaFilter.addTarget(movieWriter)
movieWriter?.shouldPassthroughAudio = true
movieFile?.audioEncodingTarget = movieWriter
movieFile?.enableSynchronizedEncoding(using: movieWriter)
movieWriter?.startRecording()
movieFile?.startProcessing()
movieWriter?.completionBlock = {
print("Ahoy")
movieFile?.removeAllTargets()
movieWriter?.finishRecording {
print("Ahoy")
}
}
}
ブラッド、ありがとうございます。私は私の機能を再構築したので、期待通りに機能します。 – sysx1000