ffmpeg提取视频分辨率输出为批处理变量

2023-11-17

在使用ffmpeg批处理编码视频时候,如果导入的素材尺寸不一样,得每次输入分辨率很麻烦,

这里提供一个自动提取拖入的视频文件的分辨率的批处理脚本,另存为bat即可,需要文件夹下有ffprobe.exe

原理是通过ffprobe.exe把媒体信息导出到文本,然后从文本里提取指定行数的数据,获得分辨率(宽高)信息(ffprobe.exe是FFMPEG完整包里的一个组件)

实际上,本方法不只是可以提取分辨率(宽高),所有的媒体信息都可以提取,只要指定对应的行数即可(本脚本里第11行是宽,第12行是高)

@echo off
REM 声明采用UTF-8编码
chcp 65001

rem 自动获取视频宽高并把长宽存为变量
rem 拖入视频文件并把视频信息导出到output.txt,需要有ffprobe.exe,这个output.txt会包含媒体的所有信息,不只是宽高,这里只演示宽高

ffprobe -select_streams v -show_entries format=duration,size,bit_rate,filename -show_streams -v quiet -of csv="p=0" -of json -i %~dp1%~nx1 >output.txt 2>&1

rem 对导出的output.txt进行读取,第11行是宽,第12行是高,所以提取第12行
@echo off &setlocal enabledelayedexpansion
title ExtractContent
color 0a
set start=11
set /a stop=start+2
set start2=11
set /a stop2=start2+2
:replay
rem 提取第11行数据获得视频宽
for /f "tokens=1,* delims=:" %%a in ('findstr /n ".*" output.txt ^| findstr /b "\<%start%:"') do (
    set /a start+=1
    if "%stop%"=="!start!" goto end
    set var1=%%b
)
:end
rem 去掉第11行里除了宽的数字外的字符(替换法)
set var1=%var1: =%
set var1=%var1:"width":=%
rem 把宽的信息输出到变量yuankuan
set yuankuan=%var1:,=%

rem 提取第12行数据获得视频高,第12行是高,所以提取第12行
for /f "tokens=1,* delims=:" %%a in ('findstr /n ".*" output.txt ^| findstr /b "\<%start%:"') do (
    set /a start+=1
    if "%stop2%"=="!start2!" goto end
    set var2=%%b
)
:end
rem 去掉第12行里除了宽的数字外的字符(替换法)
set var2=%var2: =%
set var2=%var2:"height":=%
rem 把高的信息输出到变量yuangao
set yuangao=%var2:,=%
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ffmpeg提取视频分辨率输出为批处理变量 的相关文章

  • 贝叶斯优化及其python实现

    贝叶斯优化是机器学习中一种常用的优化技术 其目的是在有限步数内寻找函数的最大值或最小值 它可以被视为在探索不同参数配置与观察这些配置结果之间寻求平衡点的过程 基本思想是将我们在过去的观察和体验 传递到下一个尝试中 从而在等待数据的反馈时 逐
  • 【华为OD机试c++/python】最少线段覆盖【 2023 Q1

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 给定坐标轴上的一组线段 线段的起点和终点均为整数并且长度不小于1 请你从中找到最少数量的线段 这些线段可以覆盖住所有线段 输入描述 第一行输入为
  • 【MySQL】表的基本操作

    1 数据类型 1 1 数值类型 数据类型 大小 说明 bit M M指定位数 默认为1 二进制 M范围从1到64 存储数值范围从0到2 M 1 tinyint 1字节 smallint 2字节 int 4字节 bigint 8字节 floa
  • GLSL常见函数[转]

    radians x 角度转弧度 degrees x 弧度转角度 sin x 正弦函数 传入值为弧度 三角函数与js相同 有cos余弦函数 tan正切函数 asin反正弦 acos反余弦 atan反正切等 pow x y xy exp x e
  • ubuntu配置环境重要网址

    ping不通百度且报错 ping www baidu com Temporary failure in name resolution 的解决方案 https blog csdn net yulei qq article details 1
  • kafka 监控工具--CMAK

    CMAK previously known as Kafka Manager is a tool for managing Apache Kafka clusters See below for details about the name
  • 你值得拥有——流星雨下的告白(Python实现)

    目录 1 前言 2 霍金说移民外太空 3 浪漫的流星雨展示 4 Python代码 1 前言 我们先给个小故事 提一下大家兴趣 然后我给出论据 得出结论 最后再浪漫的流星雨表白代码奉上 还有我自创的一首诗 开始啦 2 霍金说移民外太空 霍金说
  • Kettle同步表数据null处理

    kettle同步数据时会将空字符串 自动转换为 null 如果表字段非空则会报错 解决方案如下 方案一 kettle菜单栏 编辑 编辑kettle properties文件 配置项 KETTLE EMPTY STRING DIFFERS F
  • C语言实现推箱子小游戏

    一 设计目的 用简单的C语言知识制作的推箱子游戏 通过上下左右键将所有箱子移动到目标位置 2 让我们更好地了解和巩固C语言知识 并实际运用 同时运用一些不太常见的知识点 二 功能描述 1 模块功能 本程序可分为初始界面 进行游戏 判定通关三
  • linux文件代理高速下载,告别龟速下载!

    原始下载链接 wget https github com SwinTransformer storage releases download v1 0 0 swin tiny patch4 window7 224 pth 高速下载 wget
  • VisualStudio—Remote Debug

    主要用来解决本地调试没问题发布到远端后却报错的项目 一 Windows Debug Windows 本文叙述采用的VS2022 远端 windows服务器 安装远程调试器 远端 windows服务器 安装过程省略 详见官方参考链接中设置远程
  • java动态加载jar包,并运行其中的类和方法

    flink 相关 https www toutiao com article 6883793897495986691 动态加载jar包 在实际开发中经常会需要用到 尤其涉及平台和业务的关系的时候 业务逻辑部分可以独立出去交给业务方管理 业务
  • Vue—实现动画、过度效果

    动画效果
  • 【计算机基础

    定点数的表示 定点数 小数点的位置固定 例 996 007 常规计数 浮点数 小数点的位置不固定 例 9 96007 10 2 科学计数法 二进制的定点数 浮点数也类似 无符号数 整个机器字长的全部二进制位均为数值位 没有符号位 相当于数的
  • STM32 HAL——GPIO

    HAL的代码规范建议 以下内容是我自己参照HAL做的总结 如果公司有固定的编码规范 就跟公司保持一致 如果没有 那就推荐和所用库保持一致 注意 因人而异 并不具有普遍适用性 HAL库有如下代码规范 1 目录名除了专有词汇外 统一是单词首字母
  • 【CV with Pytorch】第 7 章 :图像异常检测

    机器学习的研究使我们进入了研究各种模式和行为的过程 它使我们能够构建可以研究封闭环境的模型 预测能力通常遵循模型训练过程 这是我们在训练模型时需要经常问的一个重要问题 还有另一个问题需要回答 多少数据足以帮助模型理解分布 以便我们有一个好的
  • Query 聚类

    为了提高阅读体验 请移步到 Query 聚类 背景 搜索系统优化长尾 query 想了解一下长尾 query 长什么样 大体上都有几类 最好能归类 一类一类处理 Query 数据源 包含 什么 怎么 如何 关键词的 Query K mean
  • 0227:zotero文献管理/小绿鲸英文/CSDN做笔记

    搜索 下载 白嫖 翻译 文章 如何精准找到和方向相关的文献 谷歌学术 国内无法正常进入 两个镜像网站 https xueshu dailyheadlines cc https scholar lanfanshu cn 搜索技巧 关键词套双引
  • 使用 ChatGPT 从 JavaScript 代码生成 React 组件

    欢迎来到我们的教程 了解如何使用 ChatGPT 从 JavaScript 代码生成 React 组件 在本指南中 我们将探讨使用 ChatGPT 完成此任务的好处 并引导您完成分步过程 React 是一个流行的用于构建用户界面的 Java
  • // SPDX-License-Identifier: MIT

    上述声明是指明你写的智能合约采用什么样的对外开放标准 该标准规定了别人是否拥有各种使用权利 其中 MIT 标准说明其他人可以随便用该源码 但出问题不负责

随机推荐

  • 2020大厂前端面试之vue专题(三)

    21 v model中的实现原理及如何自定义v model v model 可以看成是 value input方法 的语法糖 input v model checkbox v model select v model 组件的v model
  • PS替换证件照背景颜色

    PS换背景颜色 1 选择 中的 色彩范围 快速抠图换底 2 点击下 原背景 即可选中 调整 颜色容差 预览中 白色为选中的部分 3 调整好背景选区后 按delete 键 增加一个 新背景颜色的图层 放置到刚删除背景的图层下边 4 此时可能
  • 在排序数组中查找元素的第一个和最后—个位置

    include
  • vscode c++ 的环境配置 (完美版)

    怎么下载MinGW64 https blog csdn net skh2015java article details 85075032 vscode c 的环境配置 https blog csdn net qq 43041976 arti
  • ElasticSearch--Field的使用

    目录 一 Field的介绍 二 Field的属性介绍 三 常用的Field类型 一 text文本字段 二 keyword关键字字段 三 date日期类型 四 Numeric类型 四 Field属性的设置标准 一 Field的介绍 上周的一篇
  • 顺丰科技 Hudi on Flink 实时数仓实践

    关注 Flink 中文社区 获取更多技术干货 摘要 本文作者刘杰 介绍了顺丰科技数仓的架构 趟过的一些问题 使用 Hudi 来优化整个 job 状态的实践细节 以及未来的一些规划 主要内容为 数仓架构 Hudi 代码躺过的坑 状态优化 未来
  • 【MindSpore易点通】深度学习系列-那些介于模糊与清楚之间的一些概念

    之前小编就给大家提过正则化 超链接 其实还有很多定义大家是有点模糊又有点清楚的 今天好好带大家一起捋一遍 1训练集 验证集 测试集 正确地配置训练 验证和测试数据集 会很大程度上帮助大家创建高效的神经网络 即使是深度学习专家也不太可能一开始
  • Ubuntu18.4开机时进入命令行界面或进入bios设置

    开机时进入命令行界面 开机时按ctrl alt Fx Fx是从F1到F6选择一个 ctrl alt F7切换到图形界面 开机时进入bios设置 开机时按F2
  • c++实现合并两个有序链表

    leetcode题目 力扣 执行结果 代码实现 Definition for singly linked list struct ListNode int val ListNode next ListNode val 0 next null
  • 输入引脚时钟约束_时钟树例外(exclude pin、stop pin、non_stop pin、float pin)

    时钟树例外 exclude pin stop pin non stop pin float pin 回复 以下关键词 查看更多IC设计教程 目前支持的关键词有 Innovus ICC or IC Compiler DC or Design
  • 等保2.0测评综合得分计算

    文章目录 概述 公式及说明 分类计算实例 单一对象 多个对象 结果 未经本人许可 不能转载 转发 2021 6 20更新 2021新版的等保测评报告6 17出炉 6 18启用 新版综合得分计算可以看这里 这里 新版测评综合得分计算实例看 这
  • spring中的单元测试的策略

    本文主要介绍使用spring提供的对junit的扩展机制来进行单元测试 没有设计mock方面的测试 一 Spring提供的JUnit框架扩展 AbstractSpringContextTests spring中使用spring上下文测试的J
  • js高级 7.原型链继承

    原型链继承 套路 定义父类型构造函数 给父类型的原型添加方法 定义子类型的构造函数 创建父类型的对象赋值给子类型的原型 将子类型原型的构造属性设置为子类型 给子类型原型添加方法 创建子类型的对象 可以调用父类型的方法 关键 子类型的原型为父
  • AI人工智能Mojo语言:AI的新编程语言

    推荐 使用 NSDT场景编辑器 快速搭建3D应用场景 Mojo的主要功能包括 类似Python的语法和动态类型使Python开发人员易于学习Mojo 因为Python是现代AI ML开发背后的主要编程语言 使用Mojo 您可以导入和使用任何
  • RPC(远程过程调用)详解

    转自 https blog csdn net daaikuaichuan article details 88595202 仅用于自己学习使用 如有侵权删 一 RPC是什么 RPC是指远程过程调用 也就是说两台服务器A B 一个应用部署在A
  • 单片机串口中断以及消息收发处理——对接受信息进行判断实现控制

    目录 本次自己捣鼓的问题 自己摸索的一个实验 实现效果 初步基础 实现步骤 实验结果 主要代码 本次自己捣鼓的问题 自己摸索的一个实验 以51的单片机来说 用定时器2作为串口1来进行串口实验 检验以下的数据 任意数据 hello 1 yzh
  • npm node-sass 安装错误

    控制台运行npm install时报错 报错信息如下 npm ERR code ELIFECYCLE npm ERR errno 1 npm ERR node sass 4 9 2 postinstall node scripts buil
  • log4j2漏洞原理简述

    影响版本 Apache Log4j 2 x lt 2 14 1 jdk不知道 有知道的师傅麻烦告诉下 漏洞原理 由于Apache Log4j存在递归解析功能 lookup 未取得身份认证的用户 可以从远程发送数据请求输入数据日志 轻松触发漏
  • JAVA 基数排序算法(详细实现过程介绍)

    基数排序 是将整数按位数切割成不同的数字 然后按每个位数分别比较从而得到有序的序列 本文以数组中元素均为正整数来演示 给定一个数组 arr 53 3 542 748 14 214 准备十个桶 0 9 第一轮按照元素的个位数排序 0 9的各个
  • ffmpeg提取视频分辨率输出为批处理变量

    在使用ffmpeg批处理编码视频时候 如果导入的素材尺寸不一样 得每次输入分辨率很麻烦 这里提供一个自动提取拖入的视频文件的分辨率的批处理脚本 另存为bat即可 需要文件夹下有ffprobe exe 原理是通过ffprobe exe把媒体信