FFmpeg之——获取上传视频的尺寸(长、宽)
获取上传视频的尺寸:
获取视频尺寸通常需要借助第三方库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

相关文章:
FFmpeg之——获取上传视频的尺寸(长、宽)
获取上传视频的尺寸: 获取视频尺寸通常需要借助第三方库FFmpeg。 首先,确保你的系统中已安装了FFmpeg,并且FFmpeg的可执行文件路径已经添加到你的系统环境变量中。 1.官网下载ffmpeg 进入 链接: ffmpeg官网 网址,点击下载wind…...
Ajax学习
文章目录 AjaxAjax 是什么Ajax 经典应用场景Ajax 原理示意图ajax的异步请求的方法ajax的逻辑:应用实例-验证用户名是否存在思路框架图:需求分析: 到数据库去验证用户名是否可用思路框架图大功告成:使用JQuery-Ajax实现上面相同的需求:Ajax Ajax 是什么 AJAX 即"Async…...
排序算法——关于快速排序的详解
目录 1.基本思想 2.基本原理 2.1划分思想 2.2排序过程 (1)选择基准值 (2)分割过程(Partition) (3)递归排序 (4)合并过程 2.3具体实例 2.4实现代码 2.5关键要…...
序言:《未来已来》
尊敬的读者, 你是否曾经在面对冗长的报告、繁琐的工作、沉重的生活压力时感到困扰,渴望找到一种方式来提升效率,释放压力?你是否曾经在自我创业的道路上,苦于找不到有效的市场营销方式,寻求突破?…...
【Spring实战】22 Spring Actuator 入门
文章目录 1. 定义2. 功能3. 依赖4. 配置5. 常用的应用场景1)环境监控2)运维管理3)性能优化 结论 Spring Actuator 是 Spring 框架的一个模块,为开发人员提供了一套强大的监控和管理功能。本文将深入探讨 Spring Actuator 的定义、…...
JSON安全性
确保JSON处理的安全性是现代Web开发中重要的一环。以下是一些关键的安全实践,用于防止JSON注入攻击以及确保数据在传输过程中的安全性: 1. **验证和清洗输入:** - 在将任何数据写入数据库之前,请确保验证用户输入。对于期望的JSON…...
spring-boot-maven插件repackage(goal)的那些事
前言:在打包Springboot项目成jar包时需要在pom.xml使用spring-boot-maven-plugin来增加Maven功能,在我的上一篇博客<<Maven生命周期和插件的那些事(2021版)>>中已经介绍过Maven和插件的关系,在此不再赘述&…...
ubuntu的boot分区被删除恢复
在鼓捣黑苹果的时候,误删了ubuntu的boot分区,进系统的时候出现emergency mode,那么现在来讲讲怎么恢复 首先做一个ubuntu的启动盘,然后进入启动盘的系统选择试用 呼出命令行,然后添加一个源 sudo add-apt-repository…...
【userfaultfd 条件竞争】starCTF2019 - hackme
前言 呜呜呜,这题不难,但是差不多一个多月没碰我的女朋友 kernel pwn 了,对我的 root 宝宝也是非常想念,可惜这题没有找到我的 root 宝宝,就偷了她的 flag。 哎有点生疏了,这题没看出来堆溢出,…...
深度学习中的自动化标签转换:对数据集所有标签做映射转换
在机器学习中,特别是在涉及图像识别或分类的项目中,标签数据的组织和准确性至关重要。本文探讨了一个旨在高效转换标签数据的 Python 脚本。该脚本在需要更新或更改类标签的场景中特别有用,这是正在进行的机器学习项目中的常见任务。我们将逐…...
c语言-函数指针
目录 前言一、函数指针1.1 函数指针定义1.2 函数指针调用函数1.3 函数指针代码分析 总结 前言 本篇文章介绍c语言中的函数指针以及函数指针的应用。 一、函数指针 函数指针:指向函数的指针。 函数在编译时分配地址。 &函数名 和 函数名代表的意义相同…...
conda
一、安装 推荐清华源 https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/?CN&OD选择版本 Miniconda3-py39_4.12.0-MacOSX-arm64.pkg测试命令 conda help二、更换仓库 配置加速 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/没有 .condarc 文件则执行…...
【Vue】灵魂拷问
1、说说Vue的优缺点 优点:渐进式,组件化,轻量级,虚拟dom,响应式,单页面路由,数据与视图分开缺点:单页面不利于seo,不支持IE8以下,首屏加载时间长 2、为什么…...
Scrapy 1.3.0 使用简介
scrapy 1.3.0 python 2.7 创建一个项目: Before you startscraping, you will have to set up a new Scrapy project. Enter a directory whereyou’d like to store your code and run: scrapy startproject tutorial 然后就会得到一系列文件: 第一个爬…...
单机+内部备份_全备案例
此场景为单机数据库节点内部备份,方便部署和操作,但备份REPO与数据库实例处于同一个物理主机,冗余度较低。 前期准备 配置ksql免密登录(必须) 在Kingbase数据库运行维护中,经常用到ksql工具登录数据库,本地免密登录…...
【kettle】pdi/data-integration 打开ktr文件报错“Unable to load step info from XML“
一、报错内容: Unable to load step info from XML step nodeorg.pentaho.di.core.exception.KettleXMLException: Unable to load step info from XMLat org.pentaho.commons.launcher.Launcher.main (Launcher.java:92)at java.lang.reflect.Method.invoke (Met…...
cocos creator人开发小游戏免费素材资源
1、首先熟悉官方的手册和api文档,文档还是比较详细,游戏的方方面面都涉及到了 官方手册: http://docs.cocos.com/creator/manual/zh/官方api文档: http://docs.cocos.com/creator/api/zh/官方论坛: https://forum.coco…...
除了sd webui,compfy还有一个sd UI
GitHub - VoltaML/voltaML-fast-stable-diffusion: Beautiful and Easy to use Stable Diffusion WebUI...
c++属于同一个类的不同对象之间可相互访问private和protected成员
先看一个代码例子: #include <stdio.h>class A { private:char* name;void printA_Name() const {printf(name);} public:A(char* name) {this->name name;}void printA_Name(const A& a) {printf(a.name);}void printA_Name2(const A& a) {a.pr…...
QT/C++ 远程数据采集上位机+服务器
一、项目介绍: 远程数据采集与传输 课题要求:编写个基于TCP的网络数据获取与传输的应用程序; 该程序具备以下功能: 1)本地端程序够通过串口与下位机(单片机)进行通信,实现数据采集任务 2)本地端程序能将所获取下位机数据进行保存(如csv文本格式等); 3…...
NotebookLM音乐学应用的5个致命误区(附诊断清单),90%新手在第3步就误入歧途导致文献溯源失效
更多请点击: https://intelliparadigm.com 第一章:NotebookLM音乐学研究辅助的底层逻辑与适用边界 NotebookLM 本质是一个基于用户上传文档构建私有语义索引的轻量级 AI 助手,其核心并非通用大模型的自由生成,而是“引用驱动型推…...
嵌入式飞行控制实战:从传感器融合到PID调参的无人机飞控开发指南
1. 项目概述与核心价值最近在嵌入式开发圈子里,一个名为trsdn/nanopielot的项目引起了我的注意。乍一看这个名字,它像是一个针对特定硬件平台(比如树莓派 Pico 或类似的 RP2040 微控制器)的飞行控制项目。nanopi可能指代 NanoPi 系…...
AI智能体信用评分系统:构建可评估、可管理的多智能体协作框架
1. 项目概述:一个为AI智能体设计的信用评分系统最近在折腾AI智能体(Agent)的落地应用时,我遇到了一个挺有意思的问题:当多个智能体协同工作,或者一个智能体需要调用外部工具、API时,如何评估和追…...
COMSOL声学建模实战:从无源特征频率到有源辐射边界
1. COMSOL声学建模基础:从理论到实践 声学建模在工程领域应用广泛,无论是建筑声学设计、噪声控制还是音频设备开发,都需要对声波传播特性有深入理解。COMSOL Multiphysics作为一款强大的多物理场仿真软件,提供了完整的声学建模解决…...
从Referrer Policy入手:剖析Chrome中strict-origin-when-cross-origin对POST请求的拦截与应对
1. 当POST请求突然"沉默":一个前端开发者的困惑 最近在调试一个前后端分离项目时,我遇到了一个诡异的现象:前端代码明明成功调用了后端接口,但响应数据却始终为空。打开Chrome开发者工具,控制台里赫然显示着…...
Taotoken API Key的精细化管理与审计日志功能实践
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken API Key的精细化管理与审计日志功能实践 对于需要将大模型能力集成到业务流程中的团队而言,API Key的管理与安…...
基于CircuitPython与Adafruit CLUE的创意灵感生成器开发指南
1. 项目概述:用硬件激发创意的火花你有没有过这样的时刻——面对空白的画布、闪烁的光标,或者一堆零散的电子元件,脑子里却一片空白,急需一个点子来点燃创作的引擎?这种“创意阻塞”几乎是每个创作者都会遇到的难题。传…...
干货版《算法导论》04:渐近复杂度与序列接口实战
干货版《算法导论》04:渐近复杂度与序列接口实战Bilibili 同步视频✨ 开篇引言一、为什么要做「算法问题精讲」?二、渐近复杂度:函数增长排序的终极法则1. 核心增长关系(必背!)2. 解题通用方法3. 阶乘与二项…...
别再重装系统了!Ubuntu 20.04 下 libsnark 零知识证明环境一次搭建成功的保姆级避坑指南
零知识证明开发实战:Ubuntu 20.04下libsnark环境高效搭建指南 在区块链和密码学领域,零知识证明技术正成为隐私保护的核心解决方案。作为最具代表性的开源库之一,libsnark因其高效的证明系统实现而被众多隐私项目采用。然而,许多开…...
基于MCP协议构建AI记忆管理服务:原理、实现与应用实践
1. 项目概述:一个为AI应用量身定制的记忆管理工具最近在折腾AI应用开发,特别是那些需要长期对话或上下文关联的场景时,一个绕不开的痛点就是“记忆”问题。模型本身是健忘的,每次对话都是全新的开始。为了让AI能记住用户偏好、历史…...
