python - 用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
可以做到。如果没有,我应该使用哪些其他软件包以及如何使用?
尽量使用流行的包来避免问题。如果检查流设置会更好。谢谢你。
解决方案
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)
推荐阅读
- webpack - 在 webpack 中创建两个供应商块
- sql-server - 限制来自 azure Web 应用程序的 sql azure 访问
- bazel - bazel 告诉外部依赖 maven 使用本地 jar
- sql - 不允许重复
- php - 当我加入两个表时如何使用 DESC 限制 3
- c++ - 通过 reinterpret_casting 方法指针从指向基类的指针调用派生类的方法。这是UB吗?
- passenger - 如何使用 hapijs v18* 设置乘客?
- dll - 如何创建包含 dll 的 msi 安装程序包
- python - 如何在 python 中实现 Switch-Case?
- c++ - 带有可变参数包的函数的 C++ 部分模板参数推导在 Clang 和 MSVC 中产生模棱两可的调用