使用 Python 访问各种音频和视频文件的元数据


我们可以使用 Python 中的 Mutagen 和 eyeD3 模块来访问音频文件的元数据。对于视频元数据,我们可以使用 Python 中的 moviepy 和 OpenCV 库。元数据是指提供有关其他数据(如音频和视频数据)的信息的数据。音频和视频文件的元数据包括文件格式、文件分辨率、文件大小、时长、比特率等。通过访问这些元数据,我们可以更有效地管理媒体,并分析元数据以获取一些有用的信息。在本文中,我们将了解 Python 提供的一些用于访问音频和视频文件元数据的库或模块。

访问音频元数据

以下是用于访问音频文件元数据的一些库:

使用 Mutagen 库

Mutagen 是一个开源的 Python 模块,用于处理音频元数据。它支持几乎所有类型的音频文件,例如 mp3、mp4、OGG、FLAC 等。Mutagen 用于访问音频文件的元数据,也用于操作音频数据。

在使用 mutagen 之前,我们可以使用 Python 中的 pip 命令安装 mutagen。

pip install mutagen

Pip 是一个 Python 包管理器。**Pip install mutagen** 将 mutagen 库安装到您的本地文件中。

语法

audio["TIT2"].text[0]

**audio[“TIT2”]** 属性返回一个包含音频文件各种信息的键值对对象。音频文件的标题使用对象中的 text 键访问。

audio.info.length

**audio.info** 返回一个包含有关音频文件的所有信息的属性。音频文件的长度使用 audio.info.length 访问,以秒为单位返回。

示例

以下是如何使用 mutagen 中的 mutagen.mp3 模块访问 mp3 文件元数据的示例。

from mutagen.mp3 import MP3

audio = MP3("audio.mp3") # put your audio file in the place of audio.mp3
print(audio.info.length)  # Print the length of the audio file
print(audio["TIT2"].text[0])  # Print the title of the audio file

输出

222.17142857142858
Suhana Safar Par Prem Nagar Hai

使用 eyeD3 库

eyeD3 也是 Python 中的一个开源库,用于处理音频文件,特别是 mp3 音频文件。使用 eyeD3,我们可以读取和写入音频文件的元数据,还可以操作或更新音频文件。

在使用 eyeD3 之前,我们可以使用 Python 中的 pip 命令安装它,如下所示:

pip install eyeD3

Pip 是一个 Python 包管理器。**Pip install eyeD3** 将 eyeD3 库安装到您的本地文件中。

语法

eyed3.load(your_audio_file)

**eyed3.load()** 函数加载音频文件并将其存储在变量中。参数 **your_audio_file** 是您需要加载的音频文件的路径。

算法

  • 使用 eyed3.load 函数加载任何音频文件

  • 使用 audio.info.time_secs 属性访问音频文件长度。

  • 使用 audio.tag.title 属性访问音频文件标题。

示例

以下是如何使用 eyeD3 访问音频文件元数据的示例。

import eyed3

audio = eyed3.load("audio.mp3") # put your audio file in the place of audio.mp3
print(audio.info.time_secs)  # Print the length of the audio file
print(audio.tag.title)  # Print the title of the audio file

输出

223.33
Suhana Safar Par Prem Nagar Hai

访问视频元数据

Python 还有一些开源库可用于访问视频文件的元数据,例如:

方法 1:使用 Moviepy 库

moviepy 是一个开源的 Python 库,用于视频编辑。它也可用于访问视频文件的元数据。Moviepy 支持各种视频文件格式,例如 mp4、AVI、MOV 等。Moviepy 可以帮助我们读取和写入视频文件的元数据,以及操作视频文件。

在使用 moviepy 之前,您必须使用 Python 中的 pip 命令安装 moviepy 库,如下所示:

pip install moviepy

算法

要使用 **moviepy** 访问视频文件的元数据,我们必须:

  • 从 moviepy.editor 中导入 VideoFileClip 模块

  • 使用 VideoClipFile 加载视频文件

  • 使用 movipy 的属性(如 duration、size 等)访问已加载的视频文件的元数据。

示例

我们将从 moviept.editor 包中导入 VideoFileClip 模块,然后使用 VideoFileClip 模块加载我们的视频文件。**Video.duration** 和 **video.size** 分别返回视频文件的时长和显示尺寸。

from moviepy.editor import VideoFileClip

video = VideoFileClip("video.mp4")
print(video.duration)  # Print the duration of the video
print(video.size)  # Print the size of the video

输出

50.74
[1920, 1080]

使用 OpenCV 库

OpenCV 是 Python 中一个开源的计算机视觉库,用于处理视频数据。它也可用于访问各种视频文件格式(如 MP4、AVi、MOV 等)的元数据。可以使用 OpenCV 读取和写入视频文件的元数据,还可以进行视频操作。

在使用 cv2 模块之前,我们必须使用 Python 中的 pip 命令安装 opencv-python-headless,如下所示:

pip install opencv-python-headless

Pip 是一个 Python 包管理器。Pip install opencv-python-headless 将 openCv 库安装到您的本地文件中。

语法

video.get(cv2.CAP_PROP_FPS)

Cv2 .CAP_PROP_FPS 返回视频文件的帧率。使用 video.get() 函数返回特定视频的帧率。

video.get(cv2.CAP_PROP_FRAME_WIDTH)

cv2.CAP_PROP_FRAME_WIDTH 返回视频文件的帧宽度。使用 video.get() 函数返回特定视频的帧宽度。

video.get(cv2.CAP_PROP_FRAME_HEIGHT)

cv2.CAP_PROP_FRAME_HEIGHT 返回视频文件的帧高度。使用 video.get() 函数返回特定视频的帧高度。

算法

要使用 opencv 访问视频文件的元数据,我们必须:

  • 导入 opencv

  • 使用 cv2.VideoCapture 属性加载视频文件

  • 使用 CAP_PROP_FRAME_WIDTH、FRAME_HEIGHT 等属性访问文件的各种元数据。

示例

使用 cv2.VideoCapture 模块将视频文件导入到变量中。现在,可以使用 cv2 模块中的 CAP_PROP_FPS、CAP_PROP_FRAME_WIDTH 等属性获取存储的视频文件的元数据。

import cv2

video = cv2.VideoCapture("video.mp4")
fps = video.get(cv2.CAP_PROP_FPS)  # Get the frame rate of the video
width = video.get(cv2.CAP_PROP_FRAME_WIDTH)  # Get the width of the video
height = video.get(cv2.CAP_PROP_FRAME_HEIGHT)  # Get the height of the video

print(fps, width, height)  # Print the frame rate, width, and height of the video

输出

60.0 1920.0 1080.0

结论

在本文中,我们讨论了 Python 提供的一些用于访问音频和视频文件元数据的库。对于音频文件,我们探讨了 mutagen 和 eyeD3 库;对于视频文件,我们探讨了 moviepy 和 openCV 库。Python 中还有许多其他库可用于访问音频和视频文件的元数据。最好浏览这些库的文档,以更好地了解这些库提供的功能。

更新于:2023年4月17日

3K+ 阅读量

开启您的职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.