使用ffmpeg处理视频
1、安装
- 下载
下载ffmpeg:ffmpeg-git-full.7z,下载后解压即可。
- 配置环境变量
将解压后的bin目录添加到环境变量Path中:
F:\ProgramFiles\ffmpeg\bin
2、视频裁剪
ffmpeg -i [input] -ss [start] -to [end] -c copy [output]
样例:
ffmpeg -i input.mp4 -ss 00:00:05 -to 00:01:00 -c copy output.mp4
其中-c copy
表示通过流复制修剪视频,不会重新编码视频,这样是比较快的。
3、视频拼接
将要拼接(合成)的文件按以下格式保存到文件中,例如:
filelist.txt
:
file 'hello.mp4'
file 'world.mp4'
执行以下命令拼接(合成)视频:
ffmpeg -f concat -i filelist.txt -c copy output.mp4
4、查看视频信息
ffmpeg -i video.flv -hide_banner
其中-hide_banner
参数可以隐藏ffmpeg中显示的版权声明,例如构建选项和库版本。
5、视频分割为图片
ffmpeg -i output.flv image%d.jpg -hide_banner
执行完后可以在当前目录中看到生成的多张图片;测试用的output.flv
为时长一秒的视频,生成了16张图片(image1.jpg~image16.jpg
)。
6、图片转换为视频
ffmpeg -f image2 -i image%d.jpg imagesToVideo.mpg
执行此命令会将当前目录下的image1.jpg、image2.jpg等文件转换为imagesToVideo.mpg视频文件。
其中-f
表示强制输入或输出文件格式。输入文件的格式通常是自动检测的,而输出文件的格式是根据文件扩展名猜测的,因此在大多数情况下不需要此选项。
7、视频转换为动图
ffmpeg -i output.mp4 animated.gif
8、视频格式转换
将input.mp4
文件转换为result.flv
文件:
ffmpeg -i input.mp4 -c copy result.flv
9、视频中提取音频
ffmpeg -i input.mp4 -vn -c:a copy output.aac
10、视频与音频文件混合
ffmpeg -i audio.mp3 -i input.mp4 video_audio_mix.mpg
经测试mp3文件需要放在前面,否则合成后的视频中还是原来的音频。
11、提高或降低视频播速
提高视频播放速度:
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" highspeed.mpg
降低视频播放速度:
ffmpeg -i input.mp4 -vf "setpts=2.0*PTS" lowerspeed.mpg
其中vf参数为调整播放速度的视频过滤器。
经测试,生成的视频只是处理了视频的倍速。
12、测试视频和音频质量
要在转换后比较视频和音频,可以使用以下命令,这有助于测试视频和音频质量:
ffplay input.mp4
ffplay audio.mp3
13、音频文件添加封面
可以使用以下命令将封面海报或图像添加到音频文件中:
ffmpeg -loop 1 -i cover.jpg -i audio.mp3 -c:v libx264 -c:a aac -b:a 192k -shortest output.mp4
其中-loop
表示图片无限循环,-shortest
表示音频文件结束,输出视频就结束(当最短的输入流结束时完成编码)。
参考资料:
How Can FFmpeg Trim Video in Original Quality
15 Useful ‘FFmpeg’ Commands for Video, Audio and Image Conversion in Linux – Part 2