Maison > développement back-end > Tutoriel Python > Comment obtenir la taille et la durée d'un fichier vidéo en Python ?

Comment obtenir la taille et la durée d'un fichier vidéo en Python ?

WBOY
Libérer: 2023-04-22 22:25:15
avant
2705 Les gens l'ont consulté

1. Connaissances préalables

Un total de 3 bibliothèques Python sont nécessaires ici, à savoir os, pandas et moviepy.

  • ① os : utilisé pour obtenir les fichiers et la taille des fichiers dans un certain répertoire ;

  • ② pandas : utilisé pour enregistrer les informations extraites dans Excel

  • ③ moviepy : utilisé pour obtenir la durée dans la vidéo ; file;

Remarque : pandas et moviepy sont des bibliothèques tierces, nous devons donc les installer à l'avance à l'aide de la commande suivante.

pip install pandas
pip install moviepy
Copier après la connexion

2. Code complet

① Importer toutes les bibliothèques

import os
import pandas as pd
from moviepy.editor import VideoFileClip
Copier après la connexion

② Obtenir des fichiers qualifiés dans le répertoire spécifié

useful_dir = []
for i in os.listdir():
    if i.endswith("wmv"):
        useful_dir.append(i)
useful_dir
Copier après la connexion

Les résultats sont les suivants :

Comment obtenir la taille et la durée dun fichier vidéo en Python ?

③ Fonction de conversion de temps personnalisée

def time_convert(seconds):
    M,H = 60,3600
    if seconds < M:
        return f&#39;00:00:0{seconds}&#39; if seconds < 10 else f&#39;00:00:{str(seconds)}&#39;
    elif seconds < H:
        _M = int(seconds//M)
        _S = int(seconds%M)
        return f&#39;00:{f"0{_M}" if _M < 10 else str(_M)}:{f"0{_S}" if _S < 10 else str(_S)}&#39;
    else:
        _H = int(seconds//H)
        _M = int(seconds%H//M)
        _S = int(seconds%H%M)
        return f&#39;{f"0{_H}" if _H < 10 else str(_H)}:{f"0{_M}" if _M < 10 else str(_M)}:{f"0{_S}" if _S < 10 else str(_S)}&#39;
Copier après la connexion

En raison de ce qui suit introductionVideoFileClip() Méthode, l'unité pour obtenir la durée est la seconde. Par conséquent, les secondes doivent être converties au format « heures, minutes et secondes » approprié. Si le temps dépasse une minute, il est converti en « minutes : secondes » ; s'il dépasse une heure, il est converti au format « heures : minutes : secondes ».

④ Obtenez la taille et la durée du fichier

x = []
y = []
for i in useful_dir:
    dir_size = str(round(os.path.getsize(i)/1024/1024,1)) + "M"
    clip = VideoFileClip(i)
    dir_time = time_convert(clip.duration)
    x.append(dir_size)
    y.append(dir_time)
df = pd.DataFrame({"文件大小":x,"文件时长":y})
df
Copier après la connexion

Les résultats sont les suivants :

Comment obtenir la taille et la durée dun fichier vidéo en Python ?

⑤ Stockez les données obtenues dans Excel

df.to_excel("info.xlsx",index=False)
Copier après la connexion

L'effet final est tel que montré sur l'image :

Comment obtenir la taille et la durée dun fichier vidéo en Python ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal