自动分割mp3等音频视频文件的脚本
由于种种关系,我需要对一批mp3文件进行分割(切割)。每个音频文件大约1小时,需要切成每10分钟1个文件,文件名要带序号。手工分割工作量太大,不符合我等“懒人”的做法。于是找到了大名的”格式工厂“。
由于每个文件时长不是严格一样,短的50多分钟,长的60多分钟,结合试用格式工厂的结果是它不能探测音频文件的时长(可能是我没找到探测方法),所以我改为固定切成6个文件,前5个文件每个10分钟,第6个包了剩余的部分。第6个文件应该是第3000秒到3600秒的,于是变成3000秒到4000秒,这样剩余的部分应该都包括在内了。
由于分成多段(多个文件)后,两段的切换,在有些播放器上(如带淡进淡出的效果)会听不清楚,所以我增加了1秒钟的重叠。于是第1个文件是0到601秒,第2个文件是600到1201秒,依此类推。
由于每个文件切成6个,我将这6个文件在一个子文件夹,便于管理。
经过调试,得到了这个Dos Shell(批处理)脚本:
@Echo Off
set hide=/hide
set hide=
cd C:\Program Files\FormatFactory
for %%F in (*.mp3) do (
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\1%%~nxF" %hide% /st=0 /et=601
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\2%%~nxF" %hide% /st=600 /et=1201
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\3%%~nxF" %hide% /st=1200 /et=1801
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\4%%~nxF" %hide% /st=1800 /et=2401
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\5%%~nxF" %hide% /st=2400 /et=3001
C:FormatFactory "-> MP3" "High quality" "%%~fF" "%%~dpFSplit\%%~nF\6%%~nxF" %hide% /st=3000 /et=4001
)
说明一下,
“*.mp3"代表我只切割当前文件夹下的mp3文件,
“-> MP3"指定转化成mp3文件,
"High quality“高质量,另外2个选项是"Medium quality"和"Low quality"。实际测试表明,另外2个,除了音质比较差之外,文件大小反而更大,这可能是原来的mp3文件已经经过了良好的压制,所以保持高质量可能就是不编码,反而质量好,文件小,我猜的。
"%%~fF"就是指要分割的文件
"%%~dpFSplit\%%~nF\1%%~nxF",当前文件夹下统一建一个Split的文件夹,里面按按照每个将分割的文件建文件夹,里面存放是分割后的文件。例如,要处理的文件是 abc.mp3 则 分割后的第1个文件是 Split\abc\1abc.mp3
有了这个脚本,只要在命令行窗口下,要处理的mp3文件的当前目录,启动这个脚本,然后看它全自动进行分割,最终收获到一堆分割的文件。懒人就是喜欢这样的。一劳永逸。
要使用这个脚本,你得安装【格式工厂】这个软件,在"cd "那一行设置这个软件安装后的路径,如果不是安装在C盘,则要改FormatFactory左边的盘符。
如果你要处理的输入文件类型,输出文件类型,输出质量,输出文件夹,输出文件名,分割的时间条件,请自行根据我上面的说明作修改。这个修改相比制作出这个脚本,是非常简单。
祝你早日成为懒人。喜欢懒人文化。
自动分割mp3等音频视频文件的脚本的更多相关文章
- 自动分割nginx服务的日志文件
nginx服务每天都会产生大量的日志信息,时间一长导致日志文件容量很大,会影响系统性能.通过以下shell代码,配合crontab定时执行可实现nginx日志定时分割的功能. #!/bin/bash ...
- 一起学Android之音频视频
概述 Android多媒体框架支持各种常见的媒体类型,可以很容易地将音频.视频和图像集成到App中.通过MediaPlayer Api,可以从应用程序资源(RAW).文件系统或网络上数据流资源来播放音 ...
- 解决Chrome浏览器无法自动播放音频视频的问题,Uncaught (in promise) DOMException
转载自:http://www.nooong.com/docs/chrome_video_autoplay.htm 在最新版的Chrome浏览器(以及所有以Chromium为内核的浏览器)中,已不再允许 ...
- ffmpeg实现视频文件合并/截取预览视频/抽取音频/crop(裁剪)(ffmpeg4.2.2)
一,ffmpeg的安装 请参见: https://www.cnblogs.com/architectforest/p/12807683.html 说明:刘宏缔的架构森林是一个专注架构的博客,地址:ht ...
- C# / VB.NET 在Word中嵌入多媒体(视频、音频)文件
Word中可将Office(Word/Excel/PowerPoint).PDF.txt等文件作为OLE对象插入到文档中,双击该对象可直接访问或编辑该文件,除了以上常见的文件格式对象,也可以插入多媒体 ...
- Java 在Word中嵌入多媒体(视频、音频)文件
Word中可将Office(Word/Excel/PowerPoint).PDF.txt等文件作为OLE对象插入到文档中,双击该对象可直接访问或编辑该文件,除了以上常见的文件格式对象,也可以插入多媒体 ...
- 基于log4net的支持动态文件名、按日期和大小自动分割文件的日志组件
最近处理一个日志功能,用log4net的配置不能完全满足要求,所以在其基础上简单封装了一下,支持以下功能: 1 零配置 内置默认配置,引用dll后不需要添加或修改任何配置文件也可以使用 2 动态指定文 ...
- iOS 微信 音频 视频自动播放
iOS 微信 音频 视频自动播放 http://www.w3ctech.com/topic/1165
- [SimplePlayer] 4. 从视频文件中提取音频
提取音频,具体点来说就是提取音频帧.提取方法与从视频文件中提取图像的方法基本一样,这里仅列出其中的不同点: 1. 由于目的提取音频,因此在demux的时候需要指定的是提取audio stream Au ...
随机推荐
- Spring Boot -- 配置切换指南
一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...
- xamarin开发UWP元素的初始化设置顺序
在开发xamarin的UWP平台不可避免的遇到一下坑,现记录下来,希望对后面踩坑有帮助. 一.listview的分组问题:当我们使用listview的IsGroupingEnabled=true时,如 ...
- Jquery初学
Jquery相当于JS的升级版它俩语法是一样的,把JS的很多功能封装了起来,用的也是JS语言写的,也支持JS的语法,可以混着使用,用起来方便简单 用Jquery的时候要引用一个Jquery包 带min ...
- 堆排序与优先队列——算法导论(7)
1. 预备知识 (1) 基本概念 如图,(二叉)堆是一个数组,它可以被看成一个近似的完全二叉树.树中的每一个结点对应数组中的一个元素.除了最底层外,该树是完全充满的,而且从左向右填充.堆的数组 ...
- Living in the Matrix with Bytecode Manipulation--转
原文地址:https://www.infoq.com/articles/Living-Matrix-Bytecode-Manipulation You are probably all too fam ...
- 如何通过官方渠道为Windows 10 添加具有中国特色的字体
Windows 10的变化细节上个人认为要比Windows 8多很多,而且很多功能找到之后还是小惊喜,就是挺多好用的地方居然都不正经宣传一下,微软真是搞得悄悄地干活? 今天为大家介绍一下通过官方途径添 ...
- 你真的会玩SQL吗?让人晕头转向的三值逻辑
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
- Java I/O and NIO [reproduced]
Java I/O and NIO.2---Five ways to maximize Java NIO and NIO.2---Build more responsive Java applicati ...
- IL接口和类的属性
上一篇文章学习了IL的入门,接下来我们再通过两个例子来了解下类的属性.构造函数以及接口的使用 一.类的属性.构造函数 1.先看下我们要构建的类的C#代码,然后再进行IL的实现,示例代码如下: [Ser ...
- Navisworks Addin 插件集成
调用Navisworks的 Api . 我这里是基于.NET 开发的. 我主要是尝试着获取一下工程量的API.不过还在研究. 插件的启动入口. //插件描述 [PluginAttribute(&quo ...