python+ffmpeg 批量视频转码

为什么要转码? 现在大多数视频编码为h264, 而家里的车机系统比较老, 无法解码h264, 但可以解码mpeg4

为什么不选择格式工厂等软件? 最重要的一点: 不符合程序员的身份(也不能写博客啊)

安装ffmpeg

传送门ffmpeg-5.0-essentials_build_1.zip

官网下载压缩包, 解压到自定义位置, 环境变量path填入bin目录就好了, 如C:\develop\ffmpeg-5.0-essentials_build\bin

测试安装成功

image-20220211120540578

查看视频编码

没想到potplayer居然不显示视频编码格式, 可能是我方法不对

image-20220211115929955

上图中的视频为h264编码, 在文件信息中却找不到h264字眼

但他的编码信息在ffmpeg无所遁形: ffprobe -i 095一生何求-陈百强.mkv -show_streams -select_streams v -print_format jsonimage-20220211120715911

附上转换完成后查看视频编码信息:

image-20220211120844533

python代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import os


def convert(path):
for root,dirs,files in os.walk(path):
for file in files:
file_name=file.split('.')[0].replace(' ','')
# 只选取文件名(不含扩展名), 并去掉空格
file=os.path.join(root, file)
# 带上路径
file_new=file.replace(" ","")
os.rename(file,file_new) # 重命名是为了避免文件名中有空格, 如果有空格会报错
print("正在转换:"+file_new+"...")
os.system( "ffmpeg -i "+ file_new +" -vcodec mpeg4 "+ "C:\\Users\\17513\\Desktop\\out\\"+file_name+ ".mp4")


convert("C:\\Users\\17513\\Desktop\\new")

关于ffmpeg的, 就是一条命令ffmpeg -i inputFile -vcodec mpeg4 outputFile

同样, 要转换为h264只需ffmpeg -i inputFile -vcodec h264 outputFile

更多ffmpeg使用可以参考使用FFmepg进行视频转码、视频格式转换、图片提取等!_dulingwen的博客-CSDN博客_ffmpeg转换视频格式

另外再附上新找到的资源==经典老歌800首MV==, 阿里云链接 https://www.aliyundrive.com/s/z1w6WY8iJDw