基于FFMPEG,用C♯实现CUE分割(分轨),不重新编码(CueSharp)
作者:V君 发布于:2022-8-1 13:17 Monday 分类:我的应用
效果:指定整轨音频文件和 CUE,自动解析时间,调用 FFMPEG 提取分轨
限制:CUE 文件仅支持 UTF-8、GB2312、SHIFT-JIS、EUC-KR 编码,其他编码请转 UTF-8
环境:已测试在 Win10 下正常工作
用法:
1. 下载 CueSplitter 解压,下载 FFMPEG 放入同一目录文件夹或者 PATH 环境变量
F. 例子: CueSplitter image.m4a image.cue z:\SplitOut
稍微扯扯缘起:
如果没有特殊需求,一般用 CUETools 可以应对大部分情况,还能顺便打 Tag。那么二般来了:对有损音频文件做分轨,又不想重新编码的话,CUETools 做不到,于是就有了这个玩意儿。用我这玩意儿提取出来的分轨不会自动打 Tag,推荐使用 Mp3Tag 这个免费工具来批量打 Tag。
然后扯扯开发心得:
在开坑之前肯定为了避免弃坑而先确保可行性,要分割 CUE 首先要解析 CUE,尽管里面有看起来像是明显时间的格式,但我还是没有一开始就自己造轮子,而是找找现有的库。咕狗了亿会,发现只有 CueSharp 这个库,而且还没有 nuget 包,那就只能拖进项目里面了(后来还找到一个修改版)。解析 CUE 之后,只是能获取标题和时间偏移量,还得手动过一下获得每个音轨的时长,最后一个音轨直接拉到整轨末尾就完事。这里用 TagLib 来获取音频文件总时长。有了偏移量和时长,就可以调用 FFMPEG 跑 copy 来分段提取了。启动进程的方法和旧 Framework 的不一样,用了 ArgumentList 属性,把参数作为集合元素一个个放进去,不需要自己处理双引号和转义的问题。
别再忍受网抑云欺压了,用起外网IP来搭建自己的私有云音乐吧
作者:V君 发布于:2022-3-14 11:01 Monday 分类:我的应用
TL;DR for 立即想拿来用的人:[ 下载 | 源代码 ]
1)解压,用文本编辑器修改配置文件 config.json
◆ListenPrefix 用来配置监听的IP和端口,格式是 http://+:12345
若要指定监听的网卡,将加号改成对应网卡IP即可
◆Libraries 里面每一项作为音乐库定义,Key是显示名称,Value是物理路径
音乐库目录结构
$/专辑
cover.jpg
01.flac
02.flac
03.flac
/BK
scan1.png
scan2.png
scan3.png
/AAC_
01.m4a
02.m4a
03.m4a
◆MediaFilePattern、BkFilePattern 保持默认即可
2)然后直接双击 FNZCM.ConHost.exe 启动,启动后扫描媒体库获取元数据生成列表
在浏览器打开监听的地址就可以浏览媒体库、专辑、音轨、BK,音轨页面可以在线播放
当文件发生变化时,点击首页底部的 Reload 来刷新媒体库
接着就可以将M3U8链接甩给播放器 APP 在线播放
X)进阶:如果嫌FLAC使用流量太多,肉疼的话还可以批量生成高品质AAC(m4a)
(文件大小缩减到一半以下,音质损失可忽略不计)
只是目前配套的批量转换工具还没有发布直接可用的版本
感兴趣的小伙伴可以阅读源代码了解使用方法,自己编译一个来用)
简单扯一扯缘起
由于无法忍受网抑云肆意下架、移除歌单中的收藏项,而且自己上传一些私有音乐,相似但不同的变异版本它识别得乱七八糟,我决定丢掉它找别的方法听歌。(其实最无法忍受的是吃相太难看)
起初回到原始的下载 FLAC 放到电脑或者手机直接播放,在电脑直接播放本地(局域网共享)文件还行,只是手机端就没这么方便了,还得考虑存储空间,得想办法随时随地直接播放家里的媒体库才行。
简单扯一扯开发感想
碍于爱折腾的个性,首先不使用现成的产品,不管你免费与否、开源与否❌
私有云音乐的本质就是一个流媒体服务器,如果是局域网,直接走共享即可,但是出门在外还想用家里的音乐库,这就得想想办法了。
最开始的步伐迈开的太大,想做一个大而全的网页版,扯蛋不说一直没整出一个像样的东西来
后来想起音乐播放 APP 可以载入 M3U8 格式的列表,这样就不用自己造界面的轮子了,咱可以基于静态目录结构实现随时随地用 VLC 之类的 APP 在线播放。用播放器的好处还有兼容性高,已知一些高规格的FLAC文件无法在浏览器播放,而 VLC 能轻松播放。
于是这个简化版的私有云音乐就出来了,它还有一个接地气的内部名称:“土炮云”
用C♯了写个传声筒——经由局域网在另一台电脑上播放声音
作者:V君 发布于:2022-2-10 22:39 Thursday 分类:我的应用
在发送端静音,然后用命令行参数启动
AudioNTR.exe 操作 参数…
示例
AudioNTR.exe receiver 2333
AudioNTR.exe transmitter 192.168.1.2 2333
只在两边都是 Windows 10 的环境下使用过,不确保其他环境也能用…
这玩意的全称是 Audio Net Transmitter Receiver 不要想歪了))
简单扯一扯缘起
在家中电子垃圾堆翻出一块焊满电容的独立声卡,是 PCI 插槽的,又找出一块有 PCI 插槽的主板,直推 XM4 一直当着播放机单独用,效果十分满意。但也有些毛病,经常出现主力机的声音(音箱)听不到或者听不清的情况。偶尔还会有发出声音的网页开着,不注意就很尴尬……
那时候首先去咕狗搜「Play audio on another computer」找到一堆现成的收费软件。(当然在做出来之后又发现了一堆开源的实现…)由于前些年摸过音频处理,知道有 NAudio 这个库在 NT6+ 可以轻松地截取、回放声音,于是就有了这个小玩意。
简单扯一扯开发感想
要狠狠地赞 NAudio 这个音频库,基本上想做的事情都在它的预期范围内,零造轮子,把组件连接起来就能用!
最后配一个简单的不能再简单地原理图
[WIP]通过音频预处理、分析和可视化,辅助制作LRC时间轴
作者:V君 发布于:2019-3-31 13:50 Sunday 分类:折腾手记
目前实现程度非常不完整,稍稍展示一下目前的效果,如果想听我扯扯就点进来吧
使用Adobe Audition制作Arcaea背景音乐REMIX单曲无缝循环
作者:V君 发布于:2018-5-22 13:59 Tuesday 分类:折腾手记
在开始之前先上一张猪圈云的截图→
这次又不针对性的解决一个问题,标题些不完整.
这次没有TL;DR, 但大纲总可以有吧!
●从游戏中提取BGM和封面
●用Audition制作单曲循环串烧重混
(这游戏的BGM都太短了
(´∀((☆ミつ 音游BGM你想有多长?)
●用NeroAAC编码,再用taglib嵌入封面并导入猪圈云
(先用PS在封面盖个REMIX章)
开始扯吧:
~前言~
最近玩起了手机音游Arcaea,觉得里面的BGM很不错.
在猪圈云上面搜,结果只有一个电台,只提供96K的音质.
恼火! 接着咕狗发现原来可以轻易的从游戏中提取出来.
~提取~
在把Arcaea安装完之后,可以在obb找到BGM资源包main.180.moe.low.arc.obb.
用7-Zip可以解开内容 (至于为啥是fat就不清楚了, 或许可以直接mount?)
专辑封面可以直接把apk打开找里面的assets\songs.
大部分曲名和封面是相同的, 部分只有preview的那也没办法, 选择性忽视或手动改吧.
(preview才十几秒, 听啥?)
~重混~
就算是非preview的base版本,还是感觉短了点,
而且还不能无缝循环播放.
你也不能要求音游单曲太长吧.
那就自己动手丰衣足食啰!
掏出音频编辑神器Audition.
将BGM作为素材导入.
然后像右图这样编辑若干次.(有没有DJ的感觉?)
选择适当的切入点,调整淡出淡入交替.一气呵成!
(专业老鸟不要吐槽我这外行(´∀((☆ミつ)
~嵌入封面~
这一步遇到坑了, 如果不将封面嵌入音频文件, 手机端猪圈只会显示一个黑胶唱片, 很不爽.
于是直接来个批量嵌入然后导入猪圈云盘在手机试着播放.
掉坑里了.猪圈不认直接嵌入封面的MP3,识别不出长度, 要转成M4A之后嵌入才正确识别.
~结语~
循(xi)环(nao)多了跟上节奏, 打出FULL RECALL啦! 然而Rank最多只能打出AA _(:з」∠)_
总之,Enjoy it!
blogger
Google Web Translator
热门日志
随机日志
最新日志
最新评论
- V君
@Quartz:(出现)... - Quartz
怎么不见人了呢... - V君
@Soar:DHCP 协议相... - V君
@Soar:当然是非... - Soar
@V君:谢谢 有空... - Soar
搞一个 1230v3+B85... - V君
@Soar:另外,也可... - V君
@Soar:iscsi服务端... - Soar
难怪这么卡,尤其... - Soar
clone了源码,提示...
分类
存档
- 2024年5月(1)
- 2023年7月(1)
- 2023年5月(1)
- 2022年11月(1)
- 2022年10月(1)
- 2022年9月(1)
- 2022年8月(1)
- 2022年7月(1)
- 2022年6月(1)
- 2022年5月(2)
- 2022年4月(1)
- 2022年3月(1)
- 2022年2月(1)
- 2022年1月(1)
- 2021年12月(1)
- 2021年11月(1)
- 2021年10月(1)
- 2021年9月(1)
- 2021年8月(1)
- 2021年7月(1)
- 2021年6月(1)
- 2021年5月(1)
- 2021年4月(1)
- 2021年3月(1)
- 2021年2月(1)
- 2021年1月(1)
- 2020年12月(1)
- 2020年11月(1)
- 2020年10月(2)
- 2020年9月(1)
- 2020年8月(1)
- 2020年7月(1)
- 2020年6月(1)
- 2020年5月(1)
- 2020年4月(2)
- 2020年3月(3)
- 2020年2月(1)
- 2020年1月(1)
- 2019年12月(1)
- 2019年11月(1)
- 2019年10月(1)
- 2019年9月(1)
- 2019年8月(2)
- 2019年7月(1)
- 2019年6月(1)
- 2019年5月(1)
- 2019年4月(1)
- 2019年3月(1)
- 2019年2月(1)
- 2019年1月(2)
- 2018年12月(2)
- 2018年11月(1)
- 2018年10月(3)
- 2018年9月(4)
- 2018年8月(6)
- 2018年7月(4)
- 2018年6月(1)
- 2018年5月(2)
- 2018年4月(2)
- 2018年3月(3)
- 2018年2月(1)
- 2018年1月(1)
- 2017年12月(1)
- 2017年10月(2)
- 2017年9月(1)
- 2017年8月(2)
- 2017年7月(1)
- 2017年6月(5)
- 2017年5月(2)
- 2017年4月(2)
- 2017年3月(3)
- 2017年2月(2)
- 2017年1月(2)
- 2016年12月(3)
- 2016年11月(2)
- 2016年10月(3)
- 2016年9月(4)
- 2016年8月(2)
- 2016年7月(4)
- 2016年6月(3)
- 2016年5月(1)
- 2016年4月(4)
- 2016年3月(3)
- 2016年2月(1)
- 2016年1月(5)
- 2015年12月(4)
- 2015年11月(5)
- 2015年10月(1)
- 2015年9月(6)
- 2015年8月(4)
- 2015年7月(1)
- 2015年6月(6)
- 2015年5月(3)
- 2015年4月(3)
- 2015年3月(2)
- 2015年2月(1)
- 2015年1月(3)
- 2014年12月(1)
- 2014年11月(1)
- 2014年10月(1)
- 2014年9月(3)
- 2014年8月(1)
- 2014年7月(1)
- 2014年6月(1)
- 2014年5月(3)
- 2014年4月(1)
- 2014年3月(1)
- 2014年2月(2)
- 2014年1月(1)
- 2013年12月(2)
- 2013年11月(2)
- 2013年10月(1)
- 2013年9月(3)
- 2013年8月(14)
- 2013年7月(7)
- 2013年4月(1)
- 2013年3月(4)
- 2013年2月(6)
- 2013年1月(6)
- 2012年12月(8)
- 2012年11月(6)