FFmpeg之——获取上传视频的尺寸(长、宽)

news2024/12/23 6:20:11

获取上传视频的尺寸:

获取视频尺寸通常需要借助第三方库FFmpeg。

首先,确保你的系统中已安装了FFmpeg,并且FFmpeg的可执行文件路径已经添加到你的系统环境变量中。

1.官网下载ffmpeg

进入 链接: ffmpeg官网 网址,点击下载windows版ffmpeg(点击左下第一个绿色的行)
在这里插入图片描述
选择标注红框的其中一个进行下载
在这里插入图片描述

2.配置

下载完成后,赋值路径,进行环境变量配置在这里插入图片描述

找到环境变量
在这里插入图片描述
配置在Path中
在这里插入图片描述

3、实例

然后,你可以使用如下代码来获取视频的详细信息,包括尺寸

 public static (int width, int height) GetVideoSize(string videoPath)
        {
            var startInfo = new ProcessStartInfo
            {
                FileName = "ffmpeg",
                Arguments = $"-i {videoPath} -hide_banner",
                RedirectStandardOutput = true,
                RedirectStandardError = true,
                UseShellExecute = false,
                CreateNoWindow = true
            };
   			// 创建process 对象,并关联ProcessStartInfo
   			// 启动进程
            using (var process = Process.Start(startInfo))
            {
             	 // 等待进程执行完毕
                process.WaitForExit();
				// 读取命令的输出结果
                string output = process.StandardError.ReadToEnd();
                // 正则表达式匹配视频尺寸
                var match = Regex.Match(output, @"Video: .+ (\d{2,})x(\d{2,})");

                if (match.Success)
                {
                    int width = int.Parse(match.Groups[1].Value);
                    int height = int.Parse(match.Groups[2].Value);
                    return (width, height);
                }
            }
            return (0, 0);
        }
    }

其中 videoPath 指的是视频文件地址

4、 其他

当你环境配置好,其实也可以自己可以测试一下自己的命令是否正确, win+R ——》 cmd,可以看看这个命令符返出来什么
videoPath指的是视频文件的地址

ffmpeg -i {videoPath} -hide_banner

在这里插入图片描述

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

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

相关文章

milvus学习(一)cosin距离和欧式距离

参考:https://blog.csdn.net/qq_36560894/article/details/115408613 归一化以后的cosin距离和欧式距离可以相互转化,未归一化的不可以相互转化(因为距离带单位)。

AI的明天从这里开始:OJAC近屿智能带您探索AIGC星辰大海的无限可能!

你是对人工智能充满好奇的编程小白,还是渴望工作赋能的白领?或者是想投身AIGC浪潮的创业者?无论你的背景如何,只要你对AI世界充满热情,我们OJAC近屿智能AIGC星辰大海大模型工程师和产品经理启航班以及系列课程都欢迎您…

利用Spring Cloud和Java系统设置优化工程项目管理系统源码的二次开发体验

工程项目管理涉及众多环节和角色,如何实现高效协同和信息共享是关键。本文将介绍一个采用先进技术框架的Java版工程项目管理系统,该系统支持前后端分离,功能全面,可满足不同角色的需求。从项目进度图表到施工地图,再到…

Java 语言概述

Java 概述 是 SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言 是一种面向 Internet 的编程语言。Java 一开始富有吸引力是因为 Java 程序可以在 Web 浏览器中运行。这些 Java 程序被称为 Java 小程序&am…

深入研究矫正单应性矩阵用于立体相机在线自标定

文章:Dive Deeper into Rectifying Homography for Stereo Camera Online Self-Calibration 作者:Hongbo Zhao, Yikang Zhang, Qijun Chen,, and Rui Fan 编辑:点云PCL 欢迎各位加入知识星球,获取PDF论文,欢迎转发朋…

文件监控软件丨文件权限管理工具

文件已经成为企业最重要的资产之一。然而,文件的安全性和完整性经常受到威胁,如恶意软件感染、人为误操作、内部泄密等。 为了确保文件的安全,文件监控软件应运而生。本文将深入探讨文件监控软件的概念、功能、应用场景和未来发展等方面。 文…

Deep Q-Network (DQN)理解

DQN(Deep Q-Network)是深度强化学习(Deep Reinforcement Learning)的开山之作,将深度学习引入强化学习中,构建了 Perception 到 Decision 的 End-to-end 架构。DQN 最开始由 DeepMind 发表在 NIPS 2013&…

中兴通讯携手龙蜥社区,共创繁荣生态 | 2023龙蜥操作系统大会

12 月 17-18 日,由开放原子开源基金会指导,龙蜥社区主办,阿里云、中兴通讯、浪潮信息、Arm、Intel 等 24 家理事单位共同承办,主题为“云智融合共筑未来”的 2023 龙蜥操作系统大会在北京圆满结束。本次大会上,中兴通讯…

海外静态IP和动态IP有什么区别?推荐哪种?

什么是静态ip、动态ip,二者有什么区别?哪种好?关于这个问题,不难发现,在知道、知乎上面的解释有很多,但据小编的发现,这些回答都是关于静态ip和动态ip的专业术语解释,普通非专业人事…

java生产设备效率管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web生产设备效率管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为ac…

web自动化(6)——项目配置和Grid分布式

1. 框架的可配置性 项目之间的区别: 兼容性:有些项目只兼容chrome,有些只兼容Firefox等元素定位特点:有些项目闪现快,有的项目很慢有些项目集成Jenkins,不需要用python生成allure报告 如果想要我们的框架…

分布式(8)

目录 36.什么是TCC? 37.分布式系统中常用的缓存方案有哪些? 38.分布式系统缓存的更新模式? 39.分布式缓存的淘汰策略? 40.Java中定时任务有哪些?如何演化的? 36.什么是TCC? TCC&#xff08…

HTML5+CSS3③——无语义布局标签、画盒子、CSS定义、CSS引入方式

目录 无语义布局标签 画盒子 CSS定义 小结 CSS引入方式 小结 无语义布局标签 画盒子 CSS定义 小结 CSS引入方式 小结

潮玩宇宙大逃杀游戏搭建

潮玩宇宙是当下较火的社交互动平台,它不仅涵盖了各种潮玩商品,还拥有各种游戏玩法,尤其是大逃杀游戏非常火爆!本文将介绍大逃杀游戏的开发和发展前景。 大逃杀游戏 大逃杀游戏是当下的一种新型游戏模式,旨在为玩家提供…

十分钟带你学会用python3网络爬虫抓取猫眼电影排行!

本节中,我们利用requests库和正则表达式来抓取猫眼电影TOP100的相关内容。requests比urllib使用更加方便,而且目前我们还没有系统学习HTML解析库,所以这里就选用正则表达式来作为解析工具。 1. 本节目标 本节中,我们要提取出猫眼…

ConcurrentHashMap源码学习

实现接口 ConcurrentMap(Map的基础方法)、Serializable(序列化) 基础属性 最大容量:2^30 默认容量:16 常用方法 PUT 调用PutVal方法进行插入。 判断key或value是否为空: 是:抛出空指针一场 否&#xff…

系列六、RestTemplate

一、RestTemplate 1.1、概述 RestTemplate是一种便捷的访问RestFul服务的模板类,是Spring提供的用于访问Rest服务的客户端模板工具集,它提供了多种便捷访问远程HTTP服务的方法。 1.2、API https://docs.spring.io/spring-framework/docs/5.2.2.RELEASE…

【中小型企业网络实战案例 七】配置限速

相关学习文章: 【中小型企业网络实战案例 一】规划、需求和基本配置 【中小型企业网络实战案例 二】配置网络互连互通【中小型企业网络实战案例 三】配置DHCP动态分配地址 【中小型企业网络实战案例 四】配置OSPF动态路由协议【中小型企业网络实战案例 五】配置可…

听GPT 讲Rust源代码--compiler(1)

File: rust/compiler/rustc_errors/src/diagnostic_builder.rs 在Rust编译器源代码中,rust/compiler/rustc_errors/src/diagnostic_builder.rs文件的作用是定义错误和警告的构建器,用于生成编译器诊断信息。这个文件是Rust编译器错误报告系统的一部分&am…

8个超高清图片素材网站,免费下载,真的很实用~

图片真的是我们日常生活中必不可少的一部分,大到工作,小到发朋友圈都需要配图,那除了自己拍摄之外,哪里还能找到精美又高清的图片素材呢?本期就给大家整理了8个可免费下载的图片素材网站,真的免费下载&…