技术 2018.11.29 31 阅读

关于FFmpeg

关于FFmpeg简单的实战避坑与业务集成的经验记录

· · ·

FFmpeg 是视频处理最常用的开源软件,它的功能十分强大,用途广泛,从国内外各种开源、商业软件中都可以寻找到它的身影,本人不才,曾在过去的项目中简单的运用到此技术,当时也踩了不少坑,所以发一篇文章记录一下。使用需求是用户可以上传一个不到一分钟的短视频,当后台审核通过时给视频加入本产品logo并截取第一帧当做封面。


  第一步是最重要的就是安装,如果你没有安装的话首先去FFmpeg 官网看一下安装教程。我相信国内大多数人和我一样,习惯出了问题或者在没有头绪的时候打开百度,搜索答案(不管怎么样比伸手党强)。大部分时间还是可以很好的解决问题的,但是当出现一些使用场景不多的问题时就会发现百度真垃圾。在安装之前我先百度了一下如何安装及使用,在搜到的结果中10篇文章原创数量可能在2.5篇左右,大部分都是粗制滥造一字不改的复制文,这种博客不知写来有何意义,剩下的2.5篇由于系统、版本亦或者年代久远,也都是有问题的。所以在安装方面我给出的建议有如下几点:

  如果你已经安装好了,简单的介绍一下,视频本身就是一个容器,FFmpeg本身也是有兼容的格式和类型。可以通过以下几个命令查看FFmpeg支持的视频格式、编码格式和编码器:

# 查看FFmpeg支持的视频格式
ffmpeg -formats
# 查看FFmpeg支持的编码格式
ffmpeg -codecs
# 查看FFmpeg支持的编码器
ffmpeg -encoders

  如果是处理mp4格式的视频的话建议安装libx264,mp3和aac的编码。

  具体使用的话还是建议查看FFmpeg Document ,我就不在这误导大家了。我当时处理的业务逻辑可以给大家说一下以供思考,用swoole来处理视频,当后台审核通过后丢入异步进程,异步调用shell给视频添加水印和截取第一帧,处理完成后通过回调事件把地址同步到db和缓存。

最后给大家一个忠告:少用百度,就能少走弯路!