ffmpeg常用命令
将视频转换为图片
ffmpeg -i movie.mp4 movie%d.jpg
或
ffmpeg -i movie.mp4 movie%03d.jpg
将图片转换为视频
ffmpeg -f image2 -i img%d.jpg output.mpg
或
ffmpeg -f image2 -start_number 100 -i img%d.jpg output.mpg
或
cat *.jpg | ffmpeg -f image2pipe -c:v mjpeg -i - output.mpg
拆分视频
ffmpeg -ss START -t LENGTH -i ORIGINALFILE.mp4 -acodec copy -vcodec copy OUTFILE.mp4
如:
ffmpeg -ss 0 -t 00:15:00 -i ORIGINALFILE.mp4 -acodec copy -vcodec copy OUTFILE-1.mp4
ffmpeg -ss 00:15:00 -t 00:15:00 -i ORIGINALFILE.mp4 -acodec copy -vcodec copy OUTFILE-2.mp4
ffmpeg -ss 00:30:00 -t 00:15:00 -i ORIGINALFILE.mp4 -acodec copy -vcodec copy OUTFILE-3.mp4
对于音频分析,不需要指定-vcodec
合并视频和音频
从某些网站下载的视频和音频是两个独立的文件,也可通过ffmepg合并
ffmpeg -i video.mp4 -i audio.mp4 -c:v copy -c:a aac output.mp4
视频转GIF
基本方式:
ffmpeg -i video.mp4 output.gif
采用默认参数生成的gif质量可能不是很好,个别颜色会失真;采用较新版本的ffmpeg表现会好一些, 但也可能满足不了需求,为此可通过自定义调色板对生成gif的质量进行改进。
生成调色板
ffmpeg -i video.mp4 -filter_complex "[0:v] palettegen" palette.png
其中palette.png就是针对特定视频内容生成的调色板文件,是一个16x16的图像
使用定制的调色板生成GIF
ffmpeg -i video.mp4 -i palette.png -filter_complex "[0:v][1:v] paletteuse" output.gif
也可同时指定帧率和图像大小
ffmpeg -i video.mp4 -i palette.png -filter_complex "[0:v] fps=10,scale=640:-1 [new];[new][1:v] paletteuse" output.gif
亦可将上两步合并成到一个命令中:
ffmpeg -i video.mp4 -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif
查看可用的dshow设备及支持的option
ffmpeg -list_devices true -f dshow -i dummy
ffmpeg -list_options true -f dshow -i video="Integrated Camera"
从dshow设备截图
ffmpeg -y -f dshow -i video="Integrated Camera" -r 1 -t 4 -s 640x480 -q:v 5 "image-%3d.jpg"
其中:
-r 截图频率
-t 持续时间
-q:v 图片质量
-s 图像大小
%3d 三位数字,生成的文件名是image-001.jpg、image-002.jpg、…
使用ffplay显示usb camera内容
ffplay -f dshow -i video="Integrated Camera"