python VideoFileClip 獲取多級文件目錄下的視頻時長


from multiprocessing import Process, Queue
import os
from moviepy.editor import VideoFileClip


class FileInfo():

    def __init__(self, file_dir, size, time):
        self.__file_dir = file_dir
        self.__size = size
        self.__time = time

    @property
    def file_dir(self):
        return self.__file_dir

    @property
    def size(self):
        return self.__size

    @property
    def time(self):
        return self.__time

    def get_filename(self):    #獲取當前路徑下所有非目錄文件
        for root, dir, files in os.walk(self.__file_dir):
            return files

    def get_all_files(self, dir):   #該路徑下所有視頻完整路徑
        files_ = []
        list = os.listdir(dir)
        for i in range(0, len(list)):
            path = os.path.join(dir, list[i])
            if os.path.isdir(path):
                files_.extend(self.get_all_files(path))
            if os.path.isfile(path):
                files_.append(path)
        return files_

    def get_filetime(self, filepath):  #返回視頻的時長(min)
        clip = VideoFileClip(filepath)
        file_time = clip.duration / 60
        self.__time += file_time
        clip.close()
        return self.__time

video_path = r"C:\Users\JQ\Videos"
file_info = FileInfo(video_path, 0, 0)
whole_path = file_info.get_all_files(video_path)
# 單進程實現
print("=============單進程=================")for fn in whole_path:
    if fn.endswith('.flv'):
        file_info.get_filetime(fn)
print('視頻個數:%d,總共%f分鍾' % (sum, file_info.time))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM