1. 命令格式
ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
- 参数选项:
(1) -an: 去掉音频
(2) -acodec: 音频选项, 一般后面加copy表示拷贝
(3) -vcodec:视频选项,一般后面加copy表示拷贝 - 格式:
(1) h264: 表示输出的是h264的视频裸流
(2) mp4: 表示输出的是mp4的视频
2. 视频转换
- mp4转avi
ffmpeg -i test.mp4 test.avi
注:ffmpeg默认将视频编码格式选择为mpeg4,音频转码格式为mp3。如果我们希望保留原始编码,需要增加参数-c copy,表明不做任何转码操作:
ffmpeg -i test.mp4 -c copy test.avi
- H264视频转mp4
ffmpeg -i test.h264 -vcodec copy -f mp4 test.mp4
- mp4视频转flv
ffmpeg -i test.mp4 -acodec copy -vcodec copy -f flv test.flv
- 指定编码格式转换(-c:v)
ffmpeg -i test.mp4 -c:v mjpeg test.avi
3. 视频解封装
ffmpeg可以将视频中的音频和视频流分别提取出来。需要在命令行中添加参数**-an和-vn**,分别表示屏蔽音频和视频流:
- 提取视频流
ffmpeg -i test.mp4 -c:v copy -an test.mp4
- 提取音频流
ffmpeg -i test.mp4 -c:a copy -vn test.aac
4.图片与视频转换
- 视频转换为图片
ffmpeg -i video.mpg image%d.jpg
注:图片命名为image1.jpg,image2.jpg…;支持的图像格式为:PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF, SGI. - 图片转换为视频
ffmpeg -f image2 -i image%d.jpg video.mp4
5.视频录制(仅限Linux平台)
-
录像屏幕
ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 640x480 ~/test.avi
(-vd x11:0,0 指录制所使用的偏移为 x=0 和 y=0,-s 640×480 指录制视频的大小为 640×480。录制的视频文件为 test.avi,将保存到用户主目录中;如果你只想录制一个应用程序窗口或者桌面上的一个固定区域,那么可以指定偏移位置和区域大小。使用xwininfo -frame命令可以完成查找上述参数。) -
调整视频尺寸大小
ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi
-
调摄像头录像
ffmpeg -f video4linux -s 320*240 -r 10 -i /dev/video0 test.avi
-
截取视频
ffmpeg -ss 0:8:45 -t 0:0:20 -i MOV_00118.mp4 -vcodec copy -acodec copy output.mp4
-ss:起始时间 -t:持续时间