当前位置: 首页 > news >正文

ffmpeg-转码脚本02

ffmpeg-转码脚本详解

高级脚本

以下为主要部分 更高级优化要见git上

mkv转码电影脚本

@ECHO OFF

REM 以下参数不可乱填

SET FFMPEG=%~DP0\ffmpeg.exe

::------------------------------------------------------------------------------

CALL:PRO_LOOPDIR

::CALL:PRO_LOOPDIR_SUB

GOTO EOF

::------------------------------------------------------------------------------

:FUN_CHECKFFMPEG

IF NOT EXIST "%FFMPEG%" (

ECHO "ffmpeg.exe not find!"&pause

EXIT)

GOTO EOF

:FUN_VIDEO

%FFMPEG% -i %1 -vcodec libx265 -y %2

GOTO EOF

:FUN_VIDEO_SUB

SET STIME=-ss 00:00:07 -t 00:00:30

SET SVIDEO_CP=-map 0:v -vcodec copy

SET SVIDEO=-map 0:v:0 -vcodec libx265

SET SAUDIO_CP=-map 0:a -acodec copy

SET SAUDIO=-map 0:a -acodec aac -b:a:0 512k -map 0:a:1 -acodec aac -b:a 512k

SET SUB=-map 0:s -scodec copy

::%FFMPEG% %STIME% -i %1 %SVIDEO% %SAUDIOAAC% %SUB% -y %2

%FFMPEG% -i %1 %SVIDEO% %SAUDIO_CP% %SUB% -y %2

GOTO EOF

:PRO_LOOPDIR

REM 遍历文件夹处理为H265

CALL:FUN_CHECKFFMPEG

@FOR /F "DELIMS=" %%I IN ('@DIR /B /A-D /S "*.mp4"') DO (CALL:FUN_VIDEO "%%I" "%~DP0%%~NI_265%%~XI")

ECHO "CONVERT END!"

TIMEOUT 6

GOTO EOF

:PRO_LOOPDIR_SUB

CALL:FUN_CHECKFFMPEG

REM 遍历文件夹处理含字幕的mkv

@FOR /F "DELIMS=" %%I IN ('@DIR /B /A-D /S "*.mkv"') DO (CALL:FUN_VIDEO_SUB "%%I" "%~DP0%%~NI_265%%~XI")

ECHO "CONVERT END!"

TIMEOUT 6

GOTO EOF

:EOF

转码S60脚本

@ECHO OFF

CHCP 65001

REM 以下参数不可乱填

SET FFMPEG=%~DP0\ffmpeg.exe

::------------------------------------------------------------------------------

CALL:PRO_SYMIAN_VIDEO

GOTO EOF

::------------------------------------------------------------------------------

:FUN_VIDEO

REM 下面是把MP4文件转为S60专用的MPEG文件 mpeg4+aac

SET INPUT=%1

SET OUTPUT=%2

SET CODEC=-f mp4 -c:v mpeg4

SET XY=-vf "scale=640:480:flags=fast_bilinear,setsar=1/1"

SET SIZE=-b:v 280k -c:a aac -ac 2 -b:a 64k -r 15 -sn -map_metadata -1 -map_chapters -1

%FFMPEG% -i %INPUT% %XY% %CODEC% %SIZE% -y %OUTPUT%

GOTO EOF

:FUN_HIGHVIDEO

REM 下面是把MP4文件转为S60支持的H264文件 H264+aac

SET INPUT=%1

SET OUTPUT=%2

SET CODEC264=-f mp4 -c:v libx264

SET CODECXVID=-f mp4 -c:v libxvid

SET XY=-vf "scale=640:480:flags=bicubic,setsar=1/1"

SET SIZE=-b:v 280k -c:a libmp3lame -ac 2 -b:a 64k -r 15 -sn -map_metadata -1 -map_chapters -1

SET X264INFO=-profile:v baseline -preset veryfast

%FFMPEG% -i %INPUT% %XY% %CODEC264% %SIZE% %X264INFO% -y %OUTPUT%

::%FFMPEG% -i %INPUT% %XY% %CODECXVID% %SIZE% -y %OUTPUT%

GOTO EOF

:TEST_VIDEO_COMPARE

REM S60v3 视频转码各格式对比测试

REM libx264>libxvid(mp4)>mpeg4(3pg)>mpeg4(mp4)>libxvid(avi)>mpeg4(avi)>msmpeg4(avi)

SET XY=-vf "scale=640:480:flags=bicubic,setsar=1/1"

SET SIZE=-b:v 300k -c:a aac -ac 2 -b:a 64k -r 15 -sn -map_metadata -1 -map_chapters -1

SET X264INFO=-profile:v baseline -preset veryfast

FOR /F "DELIMS=" %%I IN ('DIR /B /A-D /S "*.MP4"') DO (

%FFMPEG% -i "%%I" %XY% -f mp4 -c:v libx264 %SIZE% %X264INFO% -y "%~D0%%~PI%%~NI_libx264.mp4"

%FFMPEG% -i "%%I" %XY% -f mp4 -c:v libxvid %SIZE% -y "%~D0%%~PI%%~NI_libxvid.mp4"

%FFMPEG% -i "%%I" %XY% -f mp4 -c:v mpeg4 %SIZE% -y "%~D0%%~PI%%~NI_mpeg4.mp4"

%FFMPEG% -i "%%I" %XY% -f avi -c:v libxvid %SIZE% -y "%~D0%%~PI%%~NI_libxvid.avi"

%FFMPEG% -i "%%I" %XY% -f avi -c:v mpeg4 %SIZE% -y "%~D0%%~PI%%~NI_mpeg4.avi"

%FFMPEG% -i "%%I" %XY% -f avi -c:v msmpeg4 %SIZE% -y "%~D0%%~PI%%~NI_DIV3.avi"

%FFMPEG% -i "%%I" %XY% -f 3gp -c:v mpeg4 %SIZE% -y "%~D0%%~PI%%~NI_3gp.3gp")

GOTO EOF

:PRO_SYMIAN_VIDEO

FOR /F "DELIMS=" %%I IN ('DIR /B /A-D /S "*.MP4"') DO (CALL:FUN_VIDEO "%%I" "%~D0%%~PI%%~NI_mpeg.mp4")

::FOR /F "DELIMS=" %%I IN ('DIR /B /A-D /S "*.MP4"') DO (CALL:FUN_HIGHVIDEO "%%I" "%~D0%%~PI%%~NI_h264.mp4")

GOTO EOF

:EOF

相关文章:

ffmpeg-转码脚本02

ffmpeg-转码脚本详解 高级脚本 以下为主要部分 更高级优化要见git上 mkv转码电影脚本 ECHO OFF REM 以下参数不可乱填 SET FFMPEG%~DP0\ffmpeg.exe ::------------------------------------------------------------------------------ CALL:PRO_LOOPDIR ::CALL:PRO_LOOPDIR_SU…...

SharedPreferences

Android轻量级数据存储 import android.content.Context; import android.content.SharedPreferences;public class SharedPreferencesUtil {private SharedPreferences sharedPreferences;private SharedPreferences.Editor editor;public SharedPreferencesUtil(Context con…...

服务(第二十五篇)redis的优化和持久化

持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下…...

David Silver Lecture 7: Policy Gradient

1 Introduction 1.1 Policy-Based Reinforcement Learning 1.2 Value-based and policy based RL 基于值的强化学习 在基于值的 RL 中,目标是找到一个最优的值函数,通常是 Q 函数或 V 函数。这些函数为给定的状态或状态-动作对分配一个值,表…...

知识图谱学习笔记——(五)知识图谱推理

一、知识学习 声明:知识学习中本文主体按照浙江大学陈华钧教授的《知识图谱》公开课讲义进行介绍,并个别地方加入了自己的注释和思考,希望大家尊重陈华钧教授的知识产权,在使用时加上出处。感谢陈华钧教授。 (一&…...

用vs2010编译和调试多个arx版本的arx项目

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、一级标题二级标题三级标题四级标题五级标题六级标题升级原先vs2008版本的项目文件到2010,或直接用vs2010新建一个arx项目; vs中查看项目属性:Project menu -> Properties,项目名上右…...

安全相关词汇

• DEW: Data Encryption Workshop • HSM: Hardware Security Module • KMS: Key Management System • KAM: Key Account Management • DHSM: Dedicated Hardware Security Module • KPS: Key Pair Service • CSMS: Cloud Secret Management Service • PCI-DSS: …...

最新入河排污口设置论证、水质影响预测与模拟、污水处理工艺分析及典型建设项目入河排污口方案报告书

随着水资源开发利用量不断增大,全国废污水排放量与日俱增,部分河段已远远超出水域纳污能力。近年来,部分沿岸入河排污口设置不合理,超标排污、未经同意私设排污口等问题逐步显现,已威胁到供水安全、水环境安全和水生态安全&#x…...

2023年认证杯二阶段C题数据合并python以及matlab多途径实现代码

对于每种心率下给出的数据,我们需要进行合并才能方便后续处理,这里为大家展示利用python以及matlab分别实现合并的代码 import pandas as pd import os# 创建一个空的DataFrame对象 merged_data pd.DataFrame()# 设置数据文件所在的文件夹路径 folder_…...

Win11校园网不弹出登录页面怎么回事?

Win11校园网不弹出登录页面怎么回事?最近有用户在使用校园网的时候遇到了一些问题,访问登录网站的时候,一直无法显示登录的界面。那么遇到这个情况如何去进行解决呢?一起来看看以下的解决方法分享吧。 解决方法如下: 方…...

S32K144低功耗休眠与唤醒实践总结

在做车载项目时,模块在常供电时需要维系随时可以被唤醒工作的状态,并且静态电流需要在3mA以内,当然在JTT1163标准中要求的是5mA以内。 目标明确了,在模块休眠时需要关闭一切不必要的资源消耗,只保留模块被唤醒的部分功…...

一文吃透 Vue 框架教程(上)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

堆排序与取topK java实现

1.堆排序思路 最近趁着有点时间,稍微复习了一下数据结构相关内容,温习了一下堆排序,做一下记录。 首先我们复习一下什么是堆: 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值&#xff0c…...

https通信流程通俗理解

场景,假设A和B进行通信 CA: ( Certificate Authority )就是颁发 HTTPS 证书的组织。 通信流程步骤: 1、A告诉B使用 RSA算法进行加密,B说好的。 2、A和B同时用 RSA算法各自生成一对公钥密钥,各自的公钥密钥都不同。 3…...

银行零售业务转型方法论:打造数字化的“有机体”

传统的业务增长进度叫做连续性创新,它是在一条曲线上渐进性的改良和发展,但这种发展终有极限,如果不能及时开辟第二增长曲线,就很容易被时代所抛弃。过去十年,以互联网为代表的数字化转型的先行者,不断冲击…...

【STM32】STM32使用RFID读卡器

STM32使用RFID读卡器 RFID卡片 ID卡(身份标识):作用就是比如你要输入学号,你刷卡直接就相当于输入学号,省去了输入的过程 IC卡:集成电路卡,是将一种微电子芯片嵌入卡片之中 RFID的操作 1、…...

spring集成mybatis的原理

spring是怎样和mybatis继承的? 在idea里点mapper.queryOne()直接跳到了接口或xml,它究竟是怎样利用jdbc执行的? 我直接调用mapper.queryOne是怎么使用的sqlsession?怎么去connect的? mybatis是怎样根据mapper找到对应的…...

限速神器RateLimiter源码解析 | 京东云技术团队

作者:京东科技 李玉亮 目录指引 限流场景 软件系统中一般有两种场景会用到限流: •场景一、高并发的用户端场景。 尤其是C端系统,经常面对海量用户请求,如不做限流,遇到瞬间高并发的场景,则可能压垮系统…...

spring中怎样优化第三方bean?

需求:将数据库连接四要素提取到properties配置文件,spring来加载配置信息并使用这些信息来完成属性注入。第三方bean属性优化的思路如下: 1.在resources下创建一个jdbc.properties(文件的名称可以任意) 2.将数据库连接四要素配置到配置文件中 3.在Spr…...

8分钟的面试,我直呼太变态了......

干了两年外包,本来想出来正儿八经找个互联网公司上班,没想到算法死在另一家厂子。 自从加入这家外包公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到11月一纸通知,所有人不许加班,薪资…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...

Vue3中的computer和watch

computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...

react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架

1、菜单文件treeTop.js // 顶部菜单 import { AppstoreOutlined, SettingOutlined } from ant-design/icons; // 定义菜单项数据 const treeTop [{label: Docker管理,key: 1,icon: <AppstoreOutlined />,url:"/docker/index"},{label: 权限管理,key: 2,icon:…...