FFmpeg 是领先的多媒体框架,能够解码、编码、转码、混合、解密、流媒体、过滤和播放人类和机器创造的几乎所有东西。在许多项目中都有FFmpeg的身影,比如你正在使用的浏览器。

FFmpeg 是开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。

FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行。

软件组成:

1、libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能,包含demuxers和muxer库;

2、libavcodec:用于各种类型声音/图像编解码;

3、libavutil:包含一些公共的工具函数;

4、libswscale:用于视频场景比例缩放、色彩映射转换;

5、libpostproc:用于后期效果处理;

6、ffmpeg:是一个命令行工具,用来对视频文件转换格式,也支持对电视卡实时编码;

7、ffsever:是一个HTTP多媒体实时广播流服务器,支持时光平移;

8、ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;
使用示例

1 音频转换

ffmpeg -i my_audio.wav my_audio.mp3-i 后为要转换的音频文件,my_audio.mp3为目的音频文件

2 视频转换

ffmpeg -i my_video.mpeg -s 500×500 my_video.flv-i 后为源视频文件, -s 表示设置目标视频文件的分辨率 my_video.flv为目的视频文件

3 从视频中截取图片

ffmpeg -i test.mpg image%d.jpg默认1s截取25张图片,可以通过-r设置每秒截取的图片数量

-r fps 设置帧率,也就是每秒截取图片的数量(默认25)

ffmpeg -i test.mpg -r 1 image%d.jpg这样子每1s截取1张图片

还可以设置截取间隔,起止

-ss 设定时间位置,语法:hh:mm:ss[.xxx]

-t 时长:限制转码/捕获视频的时间,语法:hh:mm:ss[.xxx]

ffmpeg -i test.mpg -r 25 -ss 00:00:10 -t 00:00:05 images%05d.png在第10秒开始,以每秒截取25张图片的速度,截取5秒时长的图片

4 从视频中采集音频

ffmpeg -i video.avi -f mp3 audio.mp3-f 强制选择格式

ffmpeg -i video.avi -vn audio.mp3-vn 取消截取视频(也就是只输出音频文件)

5 创建截屏视频

ffmpeg -f x11grab -r 25 -s wxga -i :0.0 /tmp/outputFile.mpg0.0 是你X11 server的屏幕显示号吗,和DISPLAY一样样的.

此条命令以每秒25帧的速率来截取wxga屏幕视频,当然这里可以用-s 来设置视频分辨率,输出文件是/tmp/outputFile.mpg

6 用图片制作视频

ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg

将`img001.jpg’, `img002.jpg’这种顺序排列的图片文件转制作为视频

7 从webcam中截取视频

ffmpeg -f video4linux2 -s 320×240 -i /dev/video0 out.mpg

同时截取音频和视频:

ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320×240 -i /dev/video0 out.mpg

/dev/video0为视频设备 /dev/dsp为音频设备

官网 http://ffmpeg.org/

 

下载 https://www.gyan.dev/ffmpeg/builds/

 

发表回复

后才能评论