【Python-批量修改视频分辨率】

在这里插入图片描述

Python-批量修改视频分辨率

  • 1 使用Python修改视频分辨率
  • 2 常见的视频编码格式
    • 2.1 等效的编码格式表示方式
    • 2.2 常见的编码格式

1 使用Python修改视频分辨率

首先拷贝视频文件并修改后缀,然后修改图片的分辨率,实现视频批量修改和转换。

import os
import cv2
from pathlib import Pathsource_path = r"D:/VideoDir"
sink_path = r"D:/VideoDir_New"if not os.path.exists(source_path):print('Source path not exit!')exit()
if not os.path.exists(sink_path):os.mkdir(sink_path)print('Create sink path!')videos_list = os.listdir(source_path)for video in videos_list:video_path = os.path.join(source_path, video)if Path(video_path).suffix in ['.MOV', '.mov', '.mp4']:print(f"开始处理:{video_path}!")# 修改后缀名dis_video_name = videodis_video_name = dis_video_name.replace(str(dis_video_name).split('.')[-1], 'avi')dis_path = os.path.join(sink_path, dis_video_name)# 进行转换cap = cv2.VideoCapture(video_path)success, _ = cap.read()# 重新合成的视频在原文件夹,如果需要分开,可以修改file_nvideo_writer = cv2.VideoWriter(dis_path, cv2.VideoWriter_fourcc(*'XVID'), 25, (1280, 720))while success:success, vid1 = cap.read()try:vid = cv2.resize(vid1, (1280, 720), interpolation=cv2.INTER_LINEAR)  # 希望的分辨率大小可以在这里改video_writer.write(vid)except:breakprint(f"处理完毕:{video_path}!")

2 常见的视频编码格式

2.1 等效的编码格式表示方式

cv2.VideoWriter_fourcc(*'mp4v')
cv2.VideoWriter_fourcc(*'MP4V')
cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
cv2.VideoWriter_fourcc('M', 'P', '4', 'V')

2.2 常见的编码格式

 1. cv2.VideoWriter_fourcc('M', 'P', '4', 'V')   MPEG-4编码 .mp4 可指定结果视频的大小2. cv2.VideoWriter_fourcc('X','2','6','4')  MPEG-4编码 .mp4 可指定结果视频的大 小3. cv2.VideoWriter_fourcc('I', '4', '2', '0') 该参数是YUV编码类型,文件名后缀为.avi广泛兼容,但会产生大文件4. cv2.VideoWriter_fourcc('P', 'I', 'M', 'I') 该参数是MPEG-1编码类型,文件名后缀为.avi5. cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')该参数是MPEG-4编码类型,文件名后缀为.avi,可指定结果视频的大小6. cv2.VideoWriter_fourcc('T', 'H', 'E', 'O') 该参数是Ogg Vorbis,文件名后缀为.ogv7. cv2.VideoWriter_fourcc('F', 'L', 'V', '1') 该参数是Flash视频,文件名后缀为.flv

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/234264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3dmax怎么制作软装模型?

软装在室内设计中经常用到,很多人感觉很难,其实也有很多简单的方法,这里介绍一种软装的制作方法。 1、打开3dmax,创建一个切角长方体,对长方体的长和宽进行适当的分段。 2、将切角长方体转换成可编辑多边形。推荐&…

PS基本操作

文件->打开:可以打开我们要测量的图片 CtrR:可以打开标尺,或者视图->标尺 右击标尺,把里面的单位改为像素 Ctr加号()可以放大视图,Ctr减号(-)可以缩小视图 按住…

实战篇:一文讲清楚电商平台用户评价分析

01 明确问题 随着电商平台的成熟,如何提升用户体验、提高客户留存率也成为了电商平台关注的重点。而用户评价是最直观地能反应用户体验的指标。用户差评更是其中的重点,通过差评分析,可以寻找到平台目前存在的可能导致用户打出差评的因素&am…

聊聊CISP证书

文章目录 什么是CISP为什么要考这个证报考条件是什么没达到工作年限可不可以考必须要报班吗如何找培训机构培训机构能提供什么考试一般安排在什么时候学习多长时间可以考证多长时间出成绩&拿证必须要和自己工作关联吗考试注意事项怎么选择方向需要学的内容证书有效期多长时…

boost::apply_visitor

boost::apply_visitor 是 Boost 库中用于访问 Variant 类型对象中存储的值的工具函数。Variant 类型是一种能够容纳多种类型值的类型,类似于联合体(union)或是 C17 中的 std::variant。 在 Boost 中,Variant 类型提供了一种安全、…

计算机网络-进阶

目录 易混淆物理层数据链路层网络层nat如何实现私有ip通信IP数据报 格式解析tcp 连接tcp流量控制滑动窗口拥塞控制 报文捕获 wireshark路由模拟器 enspcdn代理服务器 VS cdn VS web cache 计算机有了物理地址,为什么还要有ip地址?单播 多播 广播 传输层会…

基于AWD攻防对Web漏洞的研究

写在前面 Copyright © [2023] [Myon⁶]. All rights reserved. 基于awd攻防环境和xshell远程连接,配合kali linux渗透系统、蚁剑、D盾、河马、Seay代码审计系统等,演示现实中网站可能存在的漏洞,对网站进行漏洞扫描,渗透测…

【jvm从入门到实战】(九) 垃圾回收(2)-垃圾回收器

垃圾回收器是垃圾回收算法的具体实现。 由于垃圾回收器分为年轻代和老年代,除了G1之外其他垃圾回收器必须成对组合进行使用 垃圾回收器的组合使用关系图如下。 常用的组合如下: Serial(新生代) Serial Old(老年代) Pa…

GNSS模块在海洋领域的应用

随着科技的不断进步,GNSS(全球导航卫星系统)模块在各个领域的应用逐渐成为日常生活的一部分。在海洋领域,GNSS技术为航海、渔业、海洋科学研究等提供了关键的支持。本文将深入探讨GNSS模块在海洋领域的广泛应用,以及它…

Kubernetes 的用法和解析 -- 3

一.Secret 实现 1.1 secret 详解 secret用来保存小片敏感数据的k8s资源,例如密码,token,或者秘钥。这类数据当然也可以存放在Pod或者镜像中,但是放在Secret中是为了更方便的控制如何使用数据,并减少暴露的风险。 …

Redis介绍与使用

1、Nosql 1.1 数据存储的发展 1.1.1 只使用Mysql 以前的网站访问量不大,单个数据库是完全够用的。 但是随着互联网的发展,就出现了很多的问题: 数据量太大,服务器放不下 访问量太大,服务器也承受不了 1.1.2 缓存…

移动端自适应

1.普通html页面 一般使用px定义,不会进行适配 移动端项目:从不同的终端保持页面的一致性(自适应),使用rem相对单位,rem是相对于根节点html的font-size的值进行动态换算的值 2.普通html页面进行适配 普通页面中&…

wps三级标题不对齐

段落中设置首行缩进即可对其 效果: 使用格式刷去将其他三级标题同步

使用yarn安装electron时手动选择版本

访问1Password或者其他可以提供随机字符的网站,获取随机密码运行安装命令 操作要点,必须触发Couldnt find any versions for "electron" that matches "*"才算成功 将复制的随机密码粘贴到后面 例如:yarn add --dev elec…

AI+爬虫 爬虫宝

场景 在很多时候,有很多爬虫的需求,其实需求都是大同小异,不过是在某某网页上爬取某某东西。把这些东西给到业务。以往的做法是:每一个需求写一个c#或者python脚本或者应用,进行爬取,这相当的费时费力&…

Java中创建线程池工具类

import java.util.concurrent.*;/**多线程工具类 */ public class ThreadPoolUtils {private static int CAPACITY 10000;// 线程池核心线程数public static int CORE_POOL_SIZE 10;// 线程池最大线程数private static int MAXIMUM_POOL_SIZE 30;// 额外线程空状态生存时间p…

前端视角看待IT圈茶余饭后的鄙视链

在IT职业圈或技术圈中,鄙视链是一个普遍存在的现象。鄙视链是指不同职业、技术、公司等之间存在的相互鄙视、轻视的关系。虽然这种关系并不合理,但它确实存在,而且在一定程度上影响着人们的心态和行为。 作为一名前端开发者,我深…

Java基础知识回顾

Java基础 一、Java概述 1、Java技术体系平台 类型简介JavaSE 标准版支持面向桌面级的应用JavaEE 企业版支持为企业开发的应用JavaME 小型版运行在移动终端的平台 2、Java重要的特点 面向对象的语言(OOP) 健壮的语言,具有强类型转换、异常…

【Docker】基础篇

文章目录 Docker为什么出现容器和虚拟机关于虚拟机关于Docker二者区别: Docker的基本组成相关概念-镜像,容器,仓库安装Docker卸载docker阿里云镜像加速docker run的原理**为什么容器比虚拟机快**Docker的常用命令1.帮助命令2.镜像相关命令3.容…

hadoop运行jar遇到的一个报错

报错信息: 2023-12-19 14:28:25,893 INFO mapreduce.Job: Job job_1702967272525_0001 failed with state FAILED due to: Application application_1702967272525_0001 failed 2 times due to AM Container for appattempt_1702967272525_0001_000002 exited with…