您的位置:首页 > 其它

FFMPEG简介及简单使用

2016-05-21 21:28 344 查看
最近项目和音频有关,了解到了FFMPEG工具

FFMPEG简介

FFmpeg是领先的多媒体框架。在这个框架中包含有各种工具,每一个用于完成特定的功能。例如:

ffserver能够将多媒体文件转化为用于实时广播的流;

ffprobe用于分析多媒体流;

ffplay可以当作一个简易的媒体播放器;

ffmpeg则能够转换多媒体文件格式。

注意:ffmpeg和FFmpeg不是同一个东西。FFmpeg是框架,而ffmpeg是一个其中的一个功能。

处理或获取多媒体文件(音/视频)信息目前确定要用FFmpeg,有以下2中方式(以php语言为例):

使用php-ffmpeg扩展

依赖:php-ffmpeg扩展

优点:使用方便

建议:不推荐,对视频需求要求不高可考虑使用(1.项目比较老,年久失修,无人维护;2. 少新的视频格式可能会不支持;)

该方案需要安装php-ffmpeg扩展,项目地址:http://ffmpeg-php.sourceforge.net/

使用PHP调用命令

题外话:

PHP有很多函数可以直接调用shell,如:system,passthru,exec,shell_exec等,一般情况下不推荐使用,而且强烈建议在php.ini中使用disable_functions禁用这些危险函数(各种骇客,脚本小子,后门作者的最爱),特殊需要可以用php -c指定另外的php.ini配置

接下来要说的是获取媒体文件信息《FFMPEG获取视频播放时长》文中的基本思路相同,都是使用php函数来调用shell命令, 不同的是没有使用ffmpeg命令,该文中是使用正则来匹配命令输出结果,而实际上FFmpeg提供了获取媒体文件的命令,还可以输出json格式处理起来非常方便:

# 以json格式输出媒体文件信息
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4 

# 命令
ffmpeg -i input.mp4 

除了获取视频信息以外还可以调用ffmpeg命令对媒体做更多的事情,包括但不限于:

视频截图

ffmpeg -y –i input.flv –r 1 –q:v 2 –f image2 output.jpg

拆分/合并视频

ffmpeg -i input.flv -ss 4 -t 16 output.mp4

从视频中提取音/视频

ffmpeg -i input.flv -vn -c:a copy ouput.mp3

ffmpeg -i input input.flv -an -c:v libx264 output.mp4

给视频添加文字/图片水印

ffmpeg -i input.flv -vf "drawtext=text=teachmyself:fontfile=/Library/Fonts/Arial.ttf:fontsize=16:fontcolor=yellow@0.8:x=w-tw-16:y=h-th-16" -c:v libx264 -c:a copy output.mp4

给视频添加倒影效果

ffmpeg -i input.flv -vf 'split[up][down]; [up]pad=iw:ih*2'[up]; [down]vflip[down]; [up][down]overlay=0:h' output.mp4

非常强大,因为大家常见的暴风影音,QQ影音,格式工厂等大多播放器及视频处理软件都是用它包了个壳...

大多信息来自网络,时间久远,无法一一列出来源往见谅,描述有误望给予指正,感激不尽!

这里还有几篇文章推荐下:

《FFMPEG视音频编解码零基础学习方法》:
http://blog.csdn.net/leixiaohua1020/article/details/15811977
官网wiki《PHP中使用FFmpeg》:
https://trac.ffmpeg.org/wiki/PHP%E4%B8%AD%E4%BD%BF%E7%94%A8FFmpeg
英文教程《A FFmpeg Tutorial For Beginners》:
http://linuxers.org/tutorial/ffmpeg-tutorial-beginners
ffmpeg 翻译文档 (ffmpeg-all 包含重要组件)(热心人士翻译的ffmpeg文档)
https://xdsnet.gitbooks.io/other-doc-cn-ffmpeg/content/index.html https://www.gitbook.com/book/xdsnet/other-doc-cn-ffmpeg/details https://wanglongqi.github.io/tools/2014/12/23/ffmpegdoc/
转自:https://segmentfault.com/a/1190000003804078
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ffmpeg