从 ffmpeg 字符串结果创建关联数据到 python

create associative data from ffmpeg string result into python

为了执行视频操作,我在 ffmpeg 的支持下使用 python。上传视频后,我需要调整它们的大小,因此我将按照以下说明计算视频尺寸:

link_v = "C:/video/video.mp4"
ffmpeg = "ffprobe -v error -show_entries stream=width,height -of default=noprint_wrappers=1 %s"% link_v
info = check_output(ffmpeg, shell=True)
print(info)

控制台结果是这样的:

width=350
height=350

但我不关心这个,当它被打印成一个字符串时,因为真实数据将是:b'width=350\r\nheight=350\r\n' 或 ['width=350\r\nheight=350\r\n'].

我真正想看到的是一个关联数据:“{width: 350, height: 350}”,一旦我得到然后我会在信息模式下调用例如宽度 ['width'],我怎样才能得到这个结果?

ffprobe 提供了一个 JSON writer 作为输出格式。将 -of 设置为 json

这是您需要的代码:
link_v = "D:/video/youtube/video.mp4"
ffmpeg = "ffprobe -v error -show_entries stream=width,height -of default=noprint_wrappers=1 %s"% link_v
info = sp.check_output(ffmpeg, shell=True)
dim = str(info).split("b")[1].split('\'')[1].split('\r\n')[:2]
dim =dict(item.split("=") for item in dim)
print(dim)

输出将是这样的:

{'width': '1920', 'height': '1080'}