• 获取视频时长和文件大小


    import os
    from moviepy.editor import VideoFileClip
    import pymysql
    
    file_dir = ".\video"  # 定义文件目录
    
    
    class FileCheck(object):
    
        def __init__(self):
            self.file_dir = file_dir
    
        def get_filesize(self, filename):
            u"""
            获取文件大小(M: 兆)
            """
            file_byte = os.path.getsize(filename)
            return self.sizeConvert(file_byte)
    
        def get_file_times(self, filename):
            u"""
            获取视频时长(s:秒)
            """
            clip = VideoFileClip(filename)
            print(clip.duration)
            file_time = self.timeConvert(clip.duration)
            clip.reader.close()
            clip.audio.reader.close_proc()
            return file_time
    
        def sizeConvert(self, size):  # 单位换算
            K, M, G = 1024, 1024 ** 2, 1024 ** 3
            if size >= G:
                return str(size / G) + 'G Bytes'
            elif size >= M:
                return str(size / M) + 'M Bytes'
            elif size >= K:
                return str(size / K) + 'K Bytes'
            else:
                return str(size) + 'Bytes'
    
        def timeConvert(self, size):  # 单位换算
            M, H = 60, 60 ** 2
            if size < M:
                return '%s:%s:%s'%('00', '00', '%02d' % int(size))
            if size < H:
                return '%s:%s:%s' % ('00', '%02d' % int(size / M), '%02d' % int(size % M))
            else:
                hour = '%02d' % int(size / H)
                mine = '%02d' % int(size % H / M)
                second = '%02d' % int(size % H % M)
                tim_srt = '%s:%s:%s' % (hour, mine, second)
                return tim_srt
    
    
    class video_time(object):
        def __init__(self):
            # self.db = pymysql.connect(host='localhost', port=3306, database='abc', user='root',
            #                           password='root',
            #                           charset='utf8')
            self.db = pymysql.connect(host='115.238.111.198', port=3306, database='spider_yu', user='spider',
                                      password='Kangce@0608', charset='utf8')
            self.cursor = self.db.cursor()
    
            self.video_time()
    
        def video_time(self):
            videos = FileCheck()
            video_list = os.listdir(file_dir)
            for video_name in video_list:
                names = '.\video\' + video_name
                video_time = videos.get_file_times(names)
                print(video_name)
                if '.' in video_time:
                    video_time = video_time.split('.')[0]
                self.cursor.execute(
                    'update youjiankang set videoTime="{}" where videoUrl="{}"'.format(video_time, video_name))
                self.db.commit()
                print('video_time', video_time)
    
    
    if __name__ == "__main__":
        video_time()
    

      

    import os
    from moviepy.editor import VideoFileClip
    import pymysql

    file_dir = ".\video" # 定义文件目录


    class FileCheck(object):

    def __init__(self):
    self.file_dir = file_dir

    def get_filesize(self, filename):
    u"""
    获取文件大小(M: 兆)
    """
    file_byte = os.path.getsize(filename)
    return self.sizeConvert(file_byte)

    def get_file_times(self, filename):
    u"""
    获取视频时长(s:秒)
    """
    clip = VideoFileClip(filename)
    print(clip.duration)
    file_time = self.timeConvert(clip.duration)
    clip.reader.close()
    clip.audio.reader.close_proc()
    return file_time

    def sizeConvert(self, size): # 单位换算
    K, M, G = 1024, 1024 ** 2, 1024 ** 3
    if size >= G:
    return str(size / G) + 'G Bytes'
    elif size >= M:
    return str(size / M) + 'M Bytes'
    elif size >= K:
    return str(size / K) + 'K Bytes'
    else:
    return str(size) + 'Bytes'

    def timeConvert(self, size): # 单位换算
    M, H = 60, 60 ** 2
    if size < M:
    return '%s:%s:%s'%('00', '00', '%02d' % int(size))
    if size < H:
    return '%s:%s:%s' % ('00', '%02d' % int(size / M), '%02d' % int(size % M))
    else:
    hour = '%02d' % int(size / H)
    mine = '%02d' % int(size % H / M)
    second = '%02d' % int(size % H % M)
    tim_srt = '%s:%s:%s' % (hour, mine, second)
    return tim_srt


    class video_time(object):
    def __init__(self):
    # self.db = pymysql.connect(host='localhost', port=3306, database='abc', user='root',
    # password='root',
    # charset='utf8')
    self.db = pymysql.connect(host='115.238.111.198', port=3306, database='spider_yu', user='spider',
    password='Kangce@0608', charset='utf8')
    self.cursor = self.db.cursor()

    self.video_time()

    def video_time(self):
    videos = FileCheck()
    video_list = os.listdir(file_dir)
    for video_name in video_list:
    names = '.\video\' + video_name
    video_time = videos.get_file_times(names)
    print(video_name)
    if '.' in video_time:
    video_time = video_time.split('.')[0]
    self.cursor.execute(
    'update youjiankang set videoTime="{}" where videoUrl="{}"'.format(video_time, video_name))
    self.db.commit()
    print('video_time', video_time)


    if __name__ == "__main__":
    video_time()

  • 相关阅读:
    Postman初探
    web页面和本地数据对比问题
    Katalon Recorder初探
    Flask入门
    自我实现预言
    gulp 安装 依赖
    maven环境
    加解密 生成 X.509格式,DER编码,后缀名.cer。加密公钥证书
    我的魔法 公式找回中
    gulp 自动ftp至服务器时,处理开发 测试服务器地址问题
  • 原文地址:https://www.cnblogs.com/yoyo1216/p/10553317.html
Copyright © 2020-2023  润新知