Python實現(xiàn)統(tǒng)計mp4/avi視頻的時長
介紹導(dǎo)入的庫
當(dāng)代碼中導(dǎo)入了特定的庫,它會使得在代碼中可以使用該庫所提供的功能和工具。以下是導(dǎo)入的兩個庫及其作用的解釋:
import os
os(Operating System)是Python標(biāo)準(zhǔn)庫之一,提供了與操作系統(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 批量添加的button 使用同一點擊事件的方法
今天小編就為大家分享一篇python 批量添加的button 使用同一點擊事件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python調(diào)用REST API接口的幾種方式匯總
這篇文章主要介紹了Python調(diào)用REST API接口的幾種方式匯總,幫助大家更好的利用python進行自動化運維,感興趣的朋友可以了解下2020-10-10Python調(diào)用DeepSeek?API實現(xiàn)對本地數(shù)據(jù)庫的AI管理
這篇文章主要為大家詳細介紹了Python如何基于DeepSeek模型實現(xiàn)對本地數(shù)據(jù)庫的AI管理,文中的示例代碼簡潔易懂,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02Python中JSON常見用法(json.load()、json.loads()、json.dump()、json.du
本文主要介紹了Python中JSON常見用法(json.load()、json.loads()、json.dump()、json.dumps()),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06解決python3中的requests解析中文頁面出現(xiàn)亂碼問題
requests是一個很實用的Python HTTP客戶端庫,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。這篇文章給大家介紹了解決python3中的requests解析中文頁面出現(xiàn)亂碼問題,感興趣的朋友一起看看吧2019-04-04python使用cartopy在地圖中添加經(jīng)緯線的示例代碼
gridlines可以根據(jù)坐標(biāo)系,自動繪制網(wǎng)格線,這對于普通繪圖來說顯然不必單獨拿出來說說,但在地圖中,經(jīng)緯線幾乎是必不可少的,本文將給大家介紹了python使用cartopy在地圖中添加經(jīng)緯線的方法,需要的朋友可以參考下2024-01-01