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

