Python實現(xiàn)統(tǒng)計mp4/avi視頻的時長
介紹導(dǎo)入的庫
當代碼中導(dǎo)入了特定的庫,它會使得在代碼中可以使用該庫所提供的功能和工具。以下是導(dǎo)入的兩個庫及其作用的解釋:
import os
os(Operating System)是Python標準庫之一,提供了與操作系統(tǒng)交互的功能。它允許您在代碼中執(zhí)行各種與文件和目錄操作相關(guān)的任務(wù),例如創(chuàng)建、刪除、移動文件,獲取文件屬性,以及與操作系統(tǒng)進行交互等。在這個代碼中,os庫被用于執(zhí)行文件和目錄的遍歷操作,從而計算指定文件夾中視頻文件的總時長。
import moviepy.editor as mp
moviepy是一個用于處理視頻和音頻的Python庫,它提供了一組功能豐富的工具,可以用來編輯、剪輯、合并和轉(zhuǎn)換視頻和音頻文件。其中,moviepy.editor模塊提供了視頻編輯的基本功能,例如加載視頻文件、獲取視頻時長等。在這個代碼中,mp是moviepy.editor的別名,通過這個別名,我們可以使用moviepy庫的功能來讀取視頻文件并獲取視頻的時長。
總結(jié)
os庫允許代碼與操作系統(tǒng)進行文件和目錄操作,而moviepy.editor庫則允許代碼加載視頻文件并執(zhí)行視頻編輯和處理的相關(guān)操作。這兩個庫的結(jié)合使得代碼能夠遍歷指定文件夾中的視頻文件并計算總時長。
代碼
代碼即注釋,每一行也提供了注釋:
# 導(dǎo)入必要的庫
import os
import moviepy.editor as mp
# 定義一個函數(shù),用于計算指定文件夾中視頻的總時長
def get_total_duration(folder_path, video_formats=['mp4', 'avi']):
total_duration = 0 # 用于存儲視頻總時長的變量(單位:秒)
# 遞歸地遍歷指定文件夾及其子文件夾
for root, dirs, files in os.walk(folder_path):
for file in files:
# 檢查文件是否具有指定格式的視頻文件
if file.lower().endswith(tuple(video_formats)):
file_path = os.path.join(root, file) # 獲取視頻文件的完整路徑
try:
# 使用 moviepy 的 VideoFileClip 加載視頻文件
clip = mp.VideoFileClip(file_path)
total_duration += clip.duration # 將視頻時長加入總時長
except Exception as e:
# 如果處理視頻時發(fā)生錯誤,則打印錯誤信息
print(f"處理 {file_path} 時出錯: {e}")
return total_duration # 返回所有視頻總時長(單位:秒)
# 定義一個函數(shù),用于將總秒數(shù)轉(zhuǎn)換為時、分、秒格式
def seconds_to_hours_minutes_seconds(seconds):
hours, remainder = divmod(seconds, 3600)
minutes, seconds = divmod(remainder, 60)
return int(hours), int(minutes), int(seconds)
# 腳本的入口點
if __name__ == "__main__":
# 指定包含視頻的文件夾路徑
folder_path = r"你的文件路徑"
# 調(diào)用 get_total_duration 函數(shù)計算文件夾中視頻的總時長
total_duration = get_total_duration(folder_path, video_formats=['mp4', 'avi'])
# 將總時長從秒數(shù)轉(zhuǎn)換為時、分、秒格式
total_hours, total_minutes, total_seconds = seconds_to_hours_minutes_seconds(total_duration)
# 以人類可讀的格式顯示總時長
if total_hours > 0:
print(f"文件夾中所有視頻的總時長為: {total_hours} 小時 {total_minutes} 分鐘 {total_seconds} 秒")
print(f"文件夾中所有視頻的總時長為: {total_hours * 60 + total_minutes} 分鐘 {total_seconds} 秒")
else:
print(f"文件夾中所有視頻的總時長為: {total_minutes} 分鐘 {total_seconds} 秒")到此這篇關(guān)于Python實現(xiàn)統(tǒng)計mp4/avi視頻的時長的文章就介紹到這了,更多相關(guān)Python統(tǒng)計視頻時長內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+unittest+requests 接口自動化測試框架搭建教程
這篇文章主要介紹了Python+unittest+requests 接口自動化測試框架搭建教程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
PyTorch中的方法torch.randperm()示例介紹
在 PyTorch 中,torch.randperm(n) 函數(shù)用于生成一個從 0 到 n-1 的隨機排列的整數(shù)序列,這篇文章主要介紹了PyTorch中的方法torch.randperm()介紹,需要的朋友可以參考下2024-05-05
Python根據(jù)Windows窗口截圖的幾種實現(xiàn)方法
文章介紹了Windows下Python截圖的四種方法:PIL庫(簡單快速)、win32gui(精準控制窗口)、mss庫(跨平臺高性能)及win32API處理隱藏窗口,需注意窗口標題匹配、權(quán)限問題和DPI縮放調(diào)整,推薦常規(guī)截圖用PIL或mss,需精準控制時使用win32API,需要的朋友可以參考下2025-10-10
Python加載文件內(nèi)容的兩種實現(xiàn)方式
這篇文章主要介紹了Python加載文件內(nèi)容的兩種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
python如果快速判斷數(shù)字奇數(shù)偶數(shù)
這篇文章主要介紹了python如果快速判斷數(shù)字奇數(shù)偶數(shù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
python代碼實現(xiàn)邏輯回歸logistic原理
這篇文章主要介紹了python代碼實現(xiàn)邏輯回歸logistic原理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08

