使用python对视频文件分辨率进行分组的实例代码

作者:gzwawj 时间:2022-06-06 21:16:44 

在平时的工作中,我们的目录有很多的视频文件,如果你没有一个好的视频分类习惯,在找视频素材的时候会很费时,通过对视频的分辨路进行分类可以在需要的时候快速找到你想要的视频分辨率。当然人工去分类是一种比较费时费力的工作,通过软件也好,程序也罢都是为了可以提高我们的工作效率。

代码分享


import os
import subprocess
import json
import shutil
import datetime

def get_files(file_dir):
   for root, dirs, files in os.walk(file_dir):
       if len(files) > 0:
           # 获取图片路径
           for f in files:
               if f.endswith(".mp4"):
                   p = os.path.join(root, f)
                   h, w, t = get_video_info(p)

new_dir = os.path.realpath(
                       "{}\{}x{}".format(file_dir, h, w))
                   if not os.path.exists(new_dir):
                       os.makedirs(new_dir)
                   shutil.move(p, os.path.join(new_dir, "{}.mp4".format(t)))

def get_video_info(file_path):

cmd = "ffprobe -v quiet -print_format json -show_streams -i {}".format(
       file_path)

with open('output.json', 'w') as f:
       subprocess.call(cmd, stdout=f)

with open('output.json', 'r') as f:
       streams = json.load(f)
       for i in streams["streams"]:
           if i['codec_type'] == "video":
               print(file_path)
               t2 = ""
               try:
                   t1 = datetime.datetime.strptime(
                       i['tags']['creation_time'], "%Y-%m-%dT%H:%M:%S.%f%z")
                   t2 = datetime.datetime.strftime(t1, '%Y%m%d%H%M%S')
               except KeyError:
                   t2 = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
               return i['height'], i['width'], t2
           else:
               continue

if __name__ == "__main__":
   file_dir = input("dir:")
   get_files(file_dir)

代码使用了ffprobe获取视频信息

原文:http://www.rencaixiu.cn/archives/811/

来源:https://www.cnblogs.com/gzwawj/p/15419078.html

标签:python,视频,分辨率,分组
0
投稿

猜你喜欢

  • 利用Psyco提升Python运行速度

    2021-05-02 19:02:50
  • python pip安装包出现:Failed building wheel for xxx错误的解决

    2023-04-01 16:26:38
  • JavaScript简单编程实例学习

    2024-04-29 13:24:52
  • 微信小程序实现点击导航标签滚动定位到对应位置

    2024-05-10 13:59:17
  • Python Flask实现后台任务轻松构建高效API应用

    2021-09-25 01:37:43
  • ThinkPHP采用GET方式获取中文参数查询无结果的解决方法

    2023-11-23 10:16:36
  • MySQL 查询某个字段不重复的所有记录

    2024-01-25 09:22:58
  • 微信小程序自定义底部弹出框动画

    2024-05-02 16:14:30
  • 用python爬取分析淘宝商品信息详解技术篇

    2022-09-12 23:40:54
  • Python文件处理与垃圾回收机制详情

    2023-06-14 16:36:17
  • 影响ORACLE汉字显示的字符集问题

    2008-06-13 16:49:00
  • 推荐给大家看的设计书

    2009-02-23 12:17:00
  • asp如何使用SMTP Service发送邮件?

    2010-06-05 12:43:00
  • Python的五个标准数据类型你认识几个

    2022-08-04 15:23:43
  • 关于JDBC与MySQL临时表空间的深入解析

    2024-01-22 04:11:14
  • 轻松掌握 SQL Server 2000数据库的构架

    2009-02-05 15:50:00
  • vue-router路由懒加载和权限控制详解

    2024-04-27 15:51:24
  • MYSQL的select 学习笔记

    2024-01-21 17:48:50
  • python追加元素到列表的方法

    2023-07-08 14:29:47
  • Vue传参一箩筐(页面、组件)

    2024-05-29 22:44:13
  • asp之家 网络编程 m.aspxhome.com