FFmpeg的用法以及python通过ffmpy控制FFmpeg操作视频的方法

FFmpeg的常用命令和参数:

-i 输入的文件名或路径
-y 覆盖输出的同名文件
-vcodec和-acodec分别是指定视频解码器和音频解码器
-s 指定输出文件的分辨率
-r 指定输出文件的帧数
-b 指定压缩比特率
-an和-vn分别是表示不输出音频和视频
-ss 搜索到指定时间处
-f concat 表示输入的格式为concat格式,即filelist.txt中的格式,用来连接视频,用法为:

ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4

其中-safe 0表示不检查filelist.txt中的文件格式,如果是绝对路径,则必须加上,如果是相对路径就不用,推荐加上。
-sn 取消字幕
-title 添加标题
-author 添加作者
-copyright 添加版权信息
-comment 添加评论

ffmpy的安装调用

在命令行下pip install ffmpy3即可安装,安装后在python下import ffmpyfrom ffmpy import FFmpeg 导入包。
注:python调用FFmpeg实际上是通过ffmpy调用命令行,输入参数后通过命令行调用FFmpeg,和在命令行下使用FFmpeg一样。
ffmpy使用方法:
官方文档:https://ffmpy3.readthedocs.io/en/latest/

from ffmpy import FFmpeg
file = FFmpeg{
    inputs = {video.mp4:None,audio.mp4:None},
    outputs = {output.mp4:'–vcodec copy –acodec copy'}
}
print(file.cmd)
file.run()

上面的代码中,print(file.cmd)可以打印出在cmd中的命令,其结果为
ffmpeg –i video.mp4 –i audio.mp4 –vcodec copy –acodec copy output.mp4,FFmpeg中的inputs传入的参数为键值对格式,键为命令行中-i后面的输入的文件名,值为输入文件对应的参数,一般是命令行-i前面的参数;ouputs传入的参数也为键值对格式,键为命令行中最终输出的文件名,值为输出的文件对应的参数,一般是命令行中输入文件和输出文件之间的参数,file.run()为执行命令。
例如:分离出视频中视频部分并去除音频的命令行写法为:
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
在python中的用法为:

FFmpeg{
    inputs = {input.mp4:None},
    outputs = {output.mp4:'–vcodec copy -an'}
}