ffmpeg工具调研
来源:互联网 发布:php mysql 存储过程 编辑:程序博客网 时间:2024/05/17 20:44
1. 工具简介
ffmpeg是一个非常强大的工具,使用它可以转换视频格式,包括视频容器格式、视频编码格式。可以更改视频的其他的参数,比如帧率-每秒播放的帧数,视频的大小-尺寸等等。这里所说的视频,包括了视频和音频。另外,它还可以将图片转换为视频。
2. 工具安装
Windows下安装包地址:https://ffmpeg.zeranoe.com/builds/win64/static/
下载安装包直接解压即可使用。
如图,其中bin目录为ffmpeg可执行程序所在目录,可设置环境变量,以方便后续使用命令。
Linux下安装较Windows稍微复杂,需安装转码器。
详见:http://www.cnblogs.com/wanghetao/p/3386311.html
命令行下执行ffmpeg–version 提示如下:
说明安装成功。
3. 常用帮助命令
可用的bit流:ffmpeg–bsfs
可用的编解码器:ffmpeg–codecs
可用的解码器:ffmpeg–decoders
可用的编码器:ffmpeg–encoders
可用的过滤器:ffmpeg–filters
可用的视频格式:ffmpeg–formats
可用的声道布局:ffmpeg–layouts
可用的license:ffmpeg–L
可用的像素格式:ffmpeg–pix_fmts
可用的协议:ffmpeg-protocals
4. ffmpeg命令使用语法
命令格式:
ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
ffmpeg [[options][`-i' input_file]]... {[options] output_file}...
1、参数选项:
(1) -an: 去掉音频
(2) -acodec: 音频选项,一般后面加copy表示拷贝
(3) -vcodec:视频选项,一般后面加copy表示拷贝
2、格式:
(1) h264: 表示输出的是h264的视频裸流
(2) mp4: 表示输出的是mp4的视频
(3)mpegts: 表示ts视频流
如果没有输入文件,那么视音频捕捉(只在Linux下有效,因为Linux下把音视频设备当作文件句柄来处理)就会起作用。作为通用的规则,选项一般用于下一个特定的文件。如果你给–b 64选项,改选会设置下一个视频速率。对于原始输入文件,格式选项可能是需要的。缺省情况下,ffmpeg试图尽可能的无损转换,采用与输入同样的音频视频参数来输出。(by ternence.hsu)
格式详见:http://www.cnblogs.com/AllenChou/p/7048528.html
5. 常用功能/命令
5.1. 视频容器转换
ffmpeg -i input.avi out.mp4 将input.avi转为out.mp4
ffmpeg -i input.avi -b:v 640k output.mp4 将input.avi转为out.mp4 并设置视频的码率为640kbps
另外,可将视频转为MP3、swf、gif等
5.2. 提取音频
ffmpeg -i input.mp4 -acodec aac -vn out.aac
5.3. 为视频添加logo
左上角: ffmpeg -i 3.mp4 -i logo.png -filter_complex overlay pair1.mp4
右上角: ffmpeg -i 3.mp4 -i logo.png -filter_complex overlay=W-w pair2.mp4
左下角: ffmpeg -i 3.mp4 -i logo.png -filter_complexoverlay=0:H-h pair3.mp4
右下角: ffmpeg -i 3.mp4 -i logo.png -filter_complex overlay=W-w:H-h pair4.mp4
删除logo
语法: -vfdelogo=x:y:w:h[:t[:show]]
x:y 离左上角的坐标
w:h logo的宽和高
t: 矩形边缘的厚度默认值4
show:若设置为1有一个绿色的矩形,默认值0.
ffplay -i pair1.mp4 -vfdelogo=x=1:y=1:w=220:h=91:show=0 预览
ffmpeg -i pair1.mp4 -vf delogo=x=1:y=1:w=220:h=91outaa.mp4
5.4. 视频文件截图
ffmpeg -i 3.mp4 -t 10 -pix_fmt rgb24 a.gif 从视频中生成GIF图片
ffmpeg -i 3.mp4 -vframes 30 -y -f gif a.gif 把视频的前30帧转换成一个Gif
ffmpeg -ss 00:00:45 -i 3.mp4 image.jpg 从视频指定时间截取一张图片
ffmpeg -i 3.mp4 -f image2 -vf fps=fps=1out%d.png 每隔1秒截一张图
ffmpeg -i 3.mp4 -f image2 -vf fps=fps=1/20out%d.png 每隔20秒截一张图
6. 结论
已测试。可实现常规视频格式间的转换;视频到音频的转换;视频图片的截取;视频水印的增加、删除。
- ffmpeg工具调研
- AVISPA工具调研
- Linux性能工具调研
- 自动化工具调研
- 缓存工具TMCache调研
- 深度学习工具调研
- apk测试工具调研
- 可视化工具调研
- FFMPEG学习【ffmpeg工具】
- Jacoco覆盖率工具使用调研
- Android自动化测试工具调研
- Web性能分析工具调研
- 程序动态分析工具调研
- 程序动态分析工具调研
- 民意调研工具的实现
- 团队协作工具调研笔记
- Docker编排工具调研:Rancher
- 用户程序跟踪工具gprof调研资料
- Android中把Bitmap图片保存到文件中
- keras:2)函数式(Functional)模型
- 消除“Android NDK: WARNING: APP_PLATFORM”的方法
- POJ 2709 染料问题
- 进程
- ffmpeg工具调研
- 对lf_feature_storage性能测试分析(c测试用例版)
- [.cpp]统计双拼拼音一种方案的重码数
- python批处理实现爬取网页静态图片文件重命名图片统一修改大小等功能
- 剑指offer——反转单词顺序列
- Idea 部署非Maven Web工程
- 【android基础开发】省钱达人UI—初级开发练手的好代码
- 四舍五入与进一法
- 【题目】:输入一个非负整形数组,其中每个数代表紧挨着的宽为1的墙的高度,输出这些墙之间能积水的体积。函数接口为 int Volume(int * height,int n),要求只能遍历一 遍数组,且