python - KeyError 从视频文件中获取元数据

标签 python ffmpeg ffprobe

我正在尝试使用 ffmpeg 从视频文件中获取分辨率高度和音频比特率,但出现以下错误,但并不能告诉我太多信息:

File "/home/user/code/python/reduce_video_size/main.py", line 94, in get_metadata
    return video_streams[0]
KeyError: 0

----------------------------------------------------------------------
Ran 1 test in 0.339s

FAILED (errors=1)
所以我不知道我能做些什么来解决它。
print(get_metadata("/home/user/code/python/reduce_video_size/test.mp4"))

def get_metadata(path):
    video_streams = ffmpeg.probe(path, select_streams = "v")
    if video_streams:
        return video_streams[0]
如果需要更多上下文 here是代码。
这解决了它,但进行一些错误检查仍然会很好:
def get_metadata(path):
    video_stream = ffmpeg.probe(path, select_streams = "v")
    return video_stream['streams'][0]

最佳答案

根据source code , ffmpeg.probe返回从 JSON 加载的字典。因此,您无需取出第一项和 [0]可以省略。它显然没有任何整数索引。

关于python - KeyError 从视频文件中获取元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72501979/

相关文章:

Python3函数定义、箭头和冒号

python - 为什么 pandas.interpolate() 插入由 NaN 包围的单个值?

haskell - 如何在 haskell 中使用 ffmpeg-light 查找 mp4 元数据?

ffmpeg - 如何使用 ffmpeg 从 H264 视频中提取最接近给定帧号的关键帧

ffmpeg - FFPROBE - "Unspecified pixel format"

php - 在 php 中使用 ffprobe 检索视频细节

python - 如何检测非方阵的所有行是否在python中正交

python - 无法使用 Seaborn 进行绘图

opencv - 在ubuntu 11.10中编译opencv2.3.1

javascript - 在根服务器上找不到 Discord JS v13 FFmpeg