使用 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 中還有許多其他庫可用於訪問音訊和影片檔案的元資料。最好瀏覽這些庫的文件,以更好地瞭解這些庫提供的功能。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP