使用swift将“ gif”转换为视频

詹姆斯·伍德罗

我环顾四周,发现到处都是一些东西,主要是我应该使用AVAssetWriter来执行此操作,但是我对此有0点经验,并且拥有视频编辑/创建功能,因此对我没有太大帮助,因为我似乎无法找到可以轻易修改的东西(或者至少不以我的知识水平),以便使其按我的预期工作。

我有一个应用程序,每秒钟(从后端服务器获取的捕获帧时间)秒n拍照cft(出于显而易见的原因,这是两倍),然后我使用UIImageView显示这些帧,并且每一次更改帧dft(显示帧时间,我也得到来自后端服务器,并且可以不同于cft)。到目前为止,没有什么复杂的。

现在,当前的工作流程是将这些帧与我想要的任何相关信息一起发送回服务器,然后服务器将使用imagemagick创建真实的gif文件,并使用ffmpeg使用该gif创建15秒的视频。

问题是,由于dynos内存有限,我的heroku服务器账单并没有我想要的低,我相信生成这些视频的时间约为5-10秒(不确定但比我想要的要长)

因此,我的想法是让该应用创建视频,因为他已经拥有了所需的所有信息,然后只需将其与其余框架和相关数据一起上传即可。如今,使用带宽比在服务器上购买额外的处理能力要便宜得多。

  • 他有n帧循环
  • 他有一个float值,表示每个帧应持续多长时间 dft
  • 他的gpu或至少比dynos heroku所提供的cpu更好

我还环顾四周,看看是否有人编写了有关如何快速使用ffmpeg的详尽教程,但我仍然没有找到任何相关知识,甚至我都没有找到任何教程,只有一些GitHub项目部分完成和/或没有链接原始教程以理解思维过程的情况。

我将不胜感激任何有关该主题的技巧/代码示例/教程。

我正在添加ffmpeg命令行,该命令行等效于我希望能够执行的操作(如果我可以直接在iOS中使用ffmpeg,这也可能很好)

ffmpeg -framerate 100/13 -loop 1 -i frame%02d.png -c:v libx264 -r 100/13 -pix_fmt yuv420p -t 0:15 instagram.mp4

基本上,我是100 / (dft * 100)针对输入帧速率所做的,只是以相同的fps输出15秒。顺便说一句,如果有什么方法可以优化此命令以使其运行更快而又不损失质量,尽管我仍然希望使用某些iOS解决方案,但我也许可以保持与heroku一起使用的当前方式。

詹姆斯·伍德罗

经过一番研究后,我设法修改了此解决方案以处理图像数组及其相对信息,而没有冻结我的应用程序

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章