gpt4 book ai didi

ios - 在 swift 中的自定义 View 上播放透明视频(H.264,AAC)

转载 作者:行者123 更新时间:2023-11-29 05:47:46 26 4
gpt4 key购买 nike

我有一个透明的视频(H.264,AAC),视频 View 下方有一个 Imageview,它正在播放图像动画。我想在 ImageView 之上播放透明视频。我尝试使用 Brad LarsonGPUImage Framework。我使用 ChromaKeyBlend 滤镜来播放透明视频,但没有取得任何成功。

搜索了SO,一无所获。

    @IBOutlet weak var done: UIButton!
@IBOutlet weak var videoPlayerView: RenderView!
let path = Bundle.main.path(forResource: "template", ofType:"mp4")
var player = AVPlayer()
var playerController = AVPlayerViewController()
@IBOutlet weak var back: UIButton!
@IBOutlet weak var imagesPlayView: UIImageView!
@IBOutlet weak var templateImageView: UIImageView!

var filter : ChromaKeyBlend!
var movie:MovieInput!
override func viewDidLoad()
{
super.viewDidLoad()
self.imagesPlayView.animationImages = imageArray123
self.imagesPlayView.animationDuration = 30.0
self.imagesPlayView.animationRepeatCount = 1
self.imagesPlayView.contentMode = .scaleAspectFit
self.imagesPlayView.startAnimating()

videoPlayerView.backgroundColor = UIColor.clear
let videoURL = NSURL.fileURL(withPath: path!)
do
{
movie = try MovieInput(url:videoURL, playAtActualSpeed:true)
filter = ChromaKeyBlend()
movie --> filter --> videoPlayerView
movie.runBenchmark = true
movie.start()
} catch
{
print("Couldn't process movie with error: \(error)")
}


}

应用程序崩溃。崩溃日志是:

链接日志:错误:片段着色器“textureCooperative2”的输入未由顶点着色器写入

着色器释放 --> ShaderProgram.swift: deinit: 62错误:/Users/macmini/Downloads/GPUImage2-master/framework/Source/Operations/ChromaKeyBlend.swift

编译失败并出现错误:ShaderCompileError(compileLog:“链接错误”)警告:无法执行支持代码来读取进程中的 Objective-C 类数据。这可能会降低可用类型信息的质量。(lldb)

请帮忙!

最佳答案

您无法使用 GPUImage2 执行此操作,因为目前没有可用的 UIElement 类。更喜欢这里的链接:- https://github.com/BradLarson/GPUImage2/issues/17但您可以使用 GPUImage(1)。在这里,您没有传递第二个输入(背景图像或视频),这就是它给您错误的原因。使用 GPUImage2,您可以简单地将静态图像或视频传递到透明视频后面。您不能将动画 imageView 作为 UIElement 传递。


Hack:如果您想首先使用 GPUImage2 创建此图像,则必须制作动画图像的视频,然后将其作为第二个输入传递。


 do {
movie = try MovieInput(url: videoURL, playAtActualSpeed: true)
filter = ChromaKeyBlend()
let backgroundImage = PictureInput(imageName: "backgroundImage.png") // <-- background image
backgroundImage.processImage(synchronously: true)
movie --> filter --> videoPlayerView
backgroundImage --> filter
movie.runBenchmark = true
movie.start()
} catch {
print("Couldn't process movie with error: \(error)")
}

关于ios - 在 swift 中的自定义 View 上播放透明视频(H.264,AAC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55979778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com