如何在Python3中识别视频格式?

2 投票
3 回答
3914 浏览
提问于 2025-04-17 09:59

我想打开一个指定的文件,然后看到类似“这是一个MP4文件”或者“这是一个webm文件”,甚至是“这似乎不是一个有效的视频”的提示。

我看到有一个FFmpeg的封装库,地址在https://code.google.com/p/pyffmpeg/,但是我没有找到里面有什么获取编码格式的函数。

大家有什么想法吗?

3 个回答

0

你可以通过 python-magic 来使用和 Unix 系统中 file 工具相同的功能。具体可以参考这个链接:有没有和 Unix 中的 "file" 工具相对应的 Python 工具?

3

我的Python有点生疏了,不过快速看了一下这个模块,发现了一些东西。

要获取编码器的ID:

Track.CodecCtx.codec_id

要获取编码器本身(AVCodec):

Track.Codec

AVCodec里面包含了编码器的名称。

4

看看这个Hachoir。它的功能是“从多媒体文件中提取元数据”。

下面是他们从一个AVI文件中提取元数据的例子:

$ hachoir-metadata pacte_des_gnous.avi
Common:
- Duration: 4 min 25 sec
- Comment: Has audio/video index (248.9 KB)
- MIME type: video/x-msvideo
- Endian: Little endian
Video stream:
- Image width: 600
- Image height: 480
- Bits/pixel: 24
- Compression: DivX v4 (fourcc:"divx")
- Frame rate: 30.0
Audio stream:
- Channel: stereo
- Sample rate: 22.1 KHz
- Compression: MPEG Layer 3

撰写回答