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.   常用帮助命令

可用的bitffmpeg–bsfs

可用的编解码器:ffmpeg–codecs

可用的解码器:ffmpeg–decoders

可用的编码器:ffmpeg–encoders

可用的过滤器:ffmpeg–filters

可用的视频格式:ffmpeg–formats

可用的声道布局:ffmpeg–layouts

可用的licenseffmpeg–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.   结论

已测试。可实现常规视频格式间的转换;视频到音频的转换;视频图片的截取;视频水印的增加、删除。

 

原创粉丝点击