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简介
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
相关文章推荐
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- Managed Media Aggregation using Rtsp and Rtp
- [总结]FFMPEG视音频编解码零基础学习方法
- 利用Ffmpeg获得flv视频缩略图和视频时间的代码
- codeigniter教程之上传视频并使用ffmpeg转flv示例
- PHP使用ffmpeg给视频增加字幕显示的方法
- PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
- 快速解决Android平台移植ffmpeg的一些问题
- java调用ffmpeg实现视频转换的方法
- python+ffmpeg视频并发直播压力测试
- [总结]FFMPEG视音频编解码零基础学习方法
- ffmpeg的headers设置
- ffmpeg从rtsp抓流存flv[c# NReco.VideoConverter flv]
- FFMPEG 从rtsp抓取流,转存为flv文件。C语言代码方式.
- CentOs 下安装 ffmpeg 以及添加 ogg 音频支持
- Linux 下ffmpeg视频转码实战一安装
- php使用ffmpeg获取视频信息并截图的实现方法
- FFmpeg音视频编解码实践总结
- ffmpeg 视频压缩 转换
- linux ffmpeg编译配置安装详解