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