乐趣区

关于后端:ffmpeg实战音视频合成案例

转发自白狼栈:查看原文

很多小伙伴私下里留言说,之前没接触过音视频,对于 ffmpeg 能够做什么还是有些懵。

明天咱们一起看下咱们到底能够用 ffmpeg 做什么?

很多小伙伴应该都玩过抖音,你在“拍同款”的时候,有没有注意过“正在合成中”的提醒,视频越长合成的工夫越长,少则几秒多则几十秒,这个其实就是 app 本地在做视频合成。

让用户等这么久,感觉体验很差。服务端能够合成吗,答案是“能够”。

但其实 ffmpeg 在编码的时候,十分吃 cpu 和内存,尤其是 cpu,服务器 cpu100% 都是粗茶淡饭。那减少 cpu 不就完事了吗?咱们前面会理论测试 8 核 8G、16 核 16G 的机器,发现仍然会爆,所以这是一个无底洞,耗费不起。

所以抖音能让服务端做吗?必定不能,用户量大,app 本地能做,最要害都是收费用户。

所以从技术的老本思考,这也是为什么抖音上很多特效都是短视频,有的甚至只有 10 秒钟,起码这样不会让用户等太久。

在学习音视频相干的常识之前,咱们先简略看两个利用场景。如果你刚巧有一些音视频的根底,顺便能够练练手。

场景 1、公司有很多原视频,想以某种成果(比方电视机播放)更好的展现给用户

冀望成果如图所示

素材比拟难找,图片是百度的,电视机两头显示视频的局部曾经被 ps 解决了,稍微毛糙;视频是抖音下载的,原视频也做了部分含糊。

置信每个公司都有好的 UI,以后案例仅作为学习。

须要留神的点:

  1. 视频能够裁剪,能够缩放,不能变形
  2. 留神电视机内屏的四个角是圆形的
  3. 原视频只取了两头局部,没有高斯含糊的背景
  4. 原视频尾部含有抖音的局部同样也被裁剪了

素材曾经上传到 github,请点击链接获取。

下载图片素材

下载视频素材

下载合成成果

场景 2、公司有很多素材视频以及对应的题目和字幕,想凋谢给用户配音,合成本人的作品

冀望成果如图所示

素材同样来源于抖音,左侧视频是用户视频,右侧视频的两头局部是视频素材,底部是该素材的高斯含糊视频,此外还有题目,字幕,字体都是当时筹备好的。

素材曾经上传至 github,请点击链接获取。

下载左侧用户视频

下载右侧素材视频

下载右侧的字幕文件 1,字幕文件 2

下载字体

最终合成的视频成果

同一成果可能有多种不同的做法,如果你破费了一些工夫都做进去了,先祝贺你。

为了升高服务器资源和合成的工夫,请思考这两个视频成果如何各用一条命令实现。

第一次接触音视频的小伙伴可能会对这样的合成成果感到诧异,学完 ffmpeg 根底局部,你至多应该会用一条命令解决以上甚至更简单的音视频需要。

退出移动版