前言

本人 n 年前的需求,需要自动化的将 Blu-ray Live 转换成 FLAC 格式的文件(自听&发种)。

注意:本脚本仅支持输出 flac !

前提

  1. 计算机安装有 PowerShell (Windows 已内置) Linux 、 MacOS 自行下载安装
  2. 计算机安装有 ffmpeg (Windows 需要添加到 Path 路径中)Linux 、 MacOS 通过软件源或使用 make 编译安装

用法

将下面脚本放在一个文件夹中,并在该文件夹启动 PowerShell 终端,然后输入以下命令

. .\Get-SplitedBDAudioTrack.ps1 ; Get-SplitedBDAudioTrack -a 01.flac -c 1.txt -o "E:\PPP 7th\Demux"

-a 是 eac3to 生成的 [code]flac[/code] 或者 wav 的路径

-c 是 eac3to 生成的章节文件的路径

-o 是输出文件夹

代码

#使用记事本另存为 Get-SplitedBDAudioTrack.ps1 编码为 UTF-8
function Get-SplitedBDAudioTrack {
[CmdletBinding()]
param (
[Parameter(
Mandatory = $true,
Position = 0,
HelpMessage = "Path to one or more locations.")]
[ValidateNotNullOrEmpty()]
[alias("a")]
[string]
$AudioTrackPath,
[Parameter(
Position = 1,
HelpMessage = "Path to one or more locations.")]
[ValidateNotNullOrEmpty()]
[alias("c")]
[string]
$ChaptersFilePath,
[Parameter(
Mandatory = $true,
Position = 2,
HelpMessage = "Path to one or more locations.")]
[ValidateNotNullOrEmpty()]
[alias("o")]
[string]
$OutputDirectory
) process {
$ChaptersFile = Get-Content $ChaptersFilePath
if (-not $ChaptersFile[0].StartsWith("CHAPTER")) {
Write-Error -Message "Not a chapters file.";
return 1;
}
$Chapters = New-Object 'System.Collections.Generic.Dictionary[[int],[string]]'
$j = 0;
for ($i = 0; $i -lt $ChaptersFile.Length; $i++) {
$Chapters.Add((++$j), $ChaptersFile[$i].Split("=")[1]);
$i++;
}
for ($i = 1; $i -le $j; $i++) {
if ($i + 1 -gt $j) {
ffmpeg -ss $Chapters[$i] -i $AudioTrackPath -acodec flac ($OutputDirectory + "\" + $i.ToString("00") + ".flac")
break;
}
ffmpeg -ss $Chapters[$i] -to $Chapters[$i + 1] -i $AudioTrackPath -acodec flac ($OutputDirectory + "\" + $i.ToString("00") + ".flac")
}
}
}

PowerShell 多平台一键生成 Blu-ray Live 分轨的更多相关文章

  1. Ant搭建 一键生成APP技术 平台

    1.博客概要 本文详细介绍了当今流行的一键生成APP技术.介绍了这种设计思想的来源,介绍了国内外的研究背景,并介绍了这个技术体系中的一些实现细节,欢迎各路大神们多提意见.一键生成技术,说的通俗点就是, ...

  2. 想做微信小程序第三方代理,各位觉得一键生成平台能赚到钱吗?

    这几年生意不景气,这是很多人的共识.从2009年开始,各种专家就判断"明年经济是最差的一年."然后,这个明年,一直"明"到了2018年,到最后,我们发现,经济就 ...

  3. HubbleDotNet 最新绿色版,服务端免安装,基于eaglet 最后V1.2.8.9版本开发,bug修正,支持一键生成同步表

    HubbleDotNet 是一个基于.net framework 的开源免费的全文搜索数据库组件.开源协议是 Apache 2.0.HubbleDotNet提供了基于SQL的全文检索接口,使用者只需会 ...

  4. 在线制作一键生成微信小程序实现原理之需求分析

    随着微信小程序接口不断的放开,小程序在今年或许是明年必将成为商家的一个标配,这个标配的标准就是要开发周期短,费用低,功能实用.只有这样才能让线下的广大商家快速接入.现在也有好多公司开发出了一键生成快速 ...

  5. [Java 开源项目]一款无需写任何代码,即可一键生成前后端代码的工具

    作者:HelloGitHub-小鱼干 JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发.JeecgBoot 采用开发模式:Online Coding 模式-> 代码生成器模式 ...

  6. Fiddler抓包一键生成代码

    首先我们的需求场景是 用Fiddler抓到某个接口调用后,用代码来模拟调用,一般我们写代码会有3个步骤: 1设置http请求相关的参数:header,method,url,cookie等 2设置pos ...

  7. “一键”生成HTML——Emmet插件常用语法

    Emmet是一款文本编辑器/IDE的插件,用来快速生成复杂的HTML代码,只要掌握一些常用的语法(类似于CSS选择器),就可以减少重复编码的工作(主要是懒).我个人惯用的是sublime,因此下文介绍 ...

  8. 一键生成APP官网

    只需要输入苹果下载地址,安卓市场下载地址,或者内测下载地址,就能一键生成APP的官网,方便在网上推广. 好推APP官网 www.hotapp.cn/app

  9. 使用sencha cmd 一键生成你的应用程序代码

    一键生成你的应用程序代码: ------------------------------------------------------------ 我们的出发点就是使用命令来产生一个应用程序,执行以 ...

  10. 一键生成HTML4和WAP站

    前两天在QQ空间上提到微信上线风铃时,把其中的HTML5错打成HTML4,结果发现很多媒体微博照着转载,依旧说成 "一键生成HTML4和WAP站",这就是转载不注明出处.不署名.不 ...

随机推荐

  1. JAVA生成xml文件格式

    摘要: 1.在某些业务中需要使用JAVA按照规定生成固定XML格式文件,本文中根据相应的业务生成固定的XML格式文件,并且通过测试可以发送. 2.下面代码根绝dom4j生成xml格式文件 代码思路: ...

  2. Sentieon | 每周文献-Genetic Disease-第二期

    遗传病系列文章-1 标题(英文):Answer ALS, a large-scale resource for sporadic and familial ALS combining clinical ...

  3. Unity的IPostGenerateGradleAndroidProject:深入解析与实用案例

    Unity IPostGenerateGradleAndroidProject Unity是一款流行的跨平台游戏引擎,它支持多种平台,包括Android.在Unity中,我们可以使用IPostGene ...

  4. NoSuchMethodError: Closure call with mismatched arguments:

    原因:某个方法的参数中,回调函数写的有问题,

  5. Asp-Net-Core学习笔记:gRPC快速入门

    前言 此前,我在做跨语言调用时,用的是 Facebook 的 Thrift,挺轻量的,还不错. Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务.它被当作一个远程过程调用 ...

  6. 行行AI人才直播第11期:墨尔本大学数据科学高级讲师-宫明明《机器学习:从统计到因果,人工智能的发展之路》

    行行AI人才是博客园和顺顺智慧共同运营的AI行业人才全生命周期服务平台. 马克斯·普朗克智能系统中心主任曾在国际数学家大会进行了题为 From Statistical to Causal Learni ...

  7. 记录一次线上服务CPU飙高问题

    2023.07.20 20:01:38线上一个服务发生了CPU过高的告警, 看告警信息当前的CPU使用率已经达到了82.65%,问题已经很严重,赶紧开始排查起来.来复盘下如何排查这类问题, 一.排查方 ...

  8. Django: Invalid block tag on line 5: 'static', expected 'endblock'. Did you forget to register or load this tag?

    错误释义:在第5行中无效的块标签:'static',期望的'endblock'.你忘记登记或装载这个标签了吗? 错误原因:没有引入static文件 {% extends 'base.html' %} ...

  9. MQ消息队列篇:三大MQ产品的必备面试种子题

    MQ有什么用? MQ(消息队列)是一种FIFO(先进先出)的数据结构,主要用于实现异步通信.削峰平谷和解耦等功能.它通过将生产者生成的消息发送到队列中,然后由消费者进行消费.这样,生产者和消费者之间就 ...

  10. Cilium系列-10-启用 IPv6 BIG TCP和启用巨帧

    系列文章 Cilium 系列文章 前言 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, ...