首页 > 解决方案 > 用python分别获取Mp4文件的视频和音频比特率?

问题描述

我有一些 Mp4 文件。我想用 python分别获取视频轨道和音频轨道的比特率。我知道这python-opencv可能有助于获得帧数:

import cv2
video = "sample.mp4"

video_capture = cv2.VideoCapture(video)
video_length = int(video_capture.get(cv2.CAP_PROP_FRAME_COUNT))

但是我没有找到biterate的选项。而且我不需要整体比特率,因为我必须分别处理视频和音频。(如果音频比特率可以由其他人计算,那没关系。)我不知道是否python-opencv可以做到。如果没有,我应该使用哪些其他软件包以及如何使用?

尽量使用流行的包来避免问题。如果检查流设置会更好。谢谢你。

标签: pythonopencvaudiovideo

解决方案


ffmpeg 可能是最常见或最流行的视频处理解决方案,您可以使用它来获取您正在寻找的信息。

尽管 ffmpeg 是一个命令行工具,但它所构建的库可以在其他应用程序中使用,对于您的情况,可能更简单地说,存在 Python 包装器,允许您使用命令行 ffmpeg 的所有功能。例如以下是一个很好的支持(在撰写本文时):

该库包含使用 ffprobe(ffmpeg 的配套命令行实用程序)获取信息的示例 - 返回为 JSON,您可以在视频或音频流中搜索所需的信息 - 例如:

probe = ffmpeg.probe(args.in_filename)
video_stream = next((stream for stream in probe['streams'] if stream['codec_type'] == 'video'), None)

推荐阅读