Ubuntu下用cue文件对ape和wav文件自动分轨
很多音乐CD的镜像文件都带cue格式的分轨文件,在Ubuntu Linux下可以通过一些工具来实现自动分轨。
一、Ubuntu下需要安装的工具有flac,shntool,libav-tools
$ sudo apt-get install flac shntool libav-tools
要对ape直接分轨的话需要linux版的mac编解码器,编译安装;或者,先将ape文件转换为wav或falc格式。
二、对cue索引的flac分轨:
$ shntool split -t "%n.%p-%t" -f example.cue -o flac music.flac -d outputdir
-d 指定分轨后的falc文件的输出目录,不指定的话在当前目录生成
-t 指定输出文件的文件名格式,%n是音轨号,%p是演奏者/艺术家, %t标题
对ape分轨也类似
$ shntool split -t "%n.%p-%t" -f example.cue -o ape example.ape -d outputdir
目前发现ape分轨成多个ape似乎会出现错误无法处理,但是将ape分轨然后转码成其他格式(flac,mp3…)是没有问题的,flac和其他格式之间没有问题。
cue文件的字符集最好与系统当前使用的字符集相同,否则最好用iconv 转码后进行,否则最后生成的文件名可能乱码。
$ iconv -f gb18030 -t utf8 CDImage.cue -o CDImage-linux.cue
$ dos2unix CDImage-linux.cue
三、将ape转换为wav或flac格式
$ avconv -i CDImage.ape CDImage.flac //ape----->flac, 以前用ffmpeg,现在用avconv
$ avconv -i CDImage.wav CDImage.flac //wav----->flac
$ avconv -i CDImage.ape CDImage.wav //ape---->wav
四、其它格式转换
$ flac CDImage.wav CDImage.flac //wav---->flac
$ shnconv -i ape -o flac CDImage.ape //ape----->flac
$ shnconv -i flac -o ape CDImage.flac //flac----->ape
五、附脚本 audio-cue-split.sh
#/bin/bash
if [ $# -ne 2 ]
then
echo "example: audio-cue-split.sh CDImage.wav wav"
echo "Note: The cue file must has the same name with the audio file."
echo -e "Note: DECODE_MODULE: wav, flac, etc"
exit
fi
AUDIO_FILE=$1
DECODE_MODULE=$2
FILE_PREFIX=`echo $AUDIO_FILE | sed "s/.$DECODE_MODULE$//"`
if [ "$DECODE_MODULE" = "ape" ]
then
FLAC_FILE=$FILE_PREFIX.flac
#ffmpeg -i "$AUDIO_FILE" "$FLAC_FILE"
avconv -i "$AUDIO_FILE" "$FLAC_FILE"
AUDIO_FILE=$FLAC_FILE
DECODE_MODULE='flac'
CONVERT="true"
fi
CUE_FILE=$FILE_PREFIX.cue
CUE_FILE_LINUX=$FILE_PREFIX-linux.cue
#echo AUDIO_FILE=$AUDIO_FILE
#echo DECODE_MODULE=$DECODE_MODULE
#echo FILE_PREFIX=$FILE_PREFIX
#echo CUE_FILE=$CUE_FILE
iconv -f gb18030 -t utf8 "$CUE_FILE" -o "$CUE_FILE_LINUX"
dos2unix "$CUE_FILE_LINUX"
shntool split -t "%n-%t" -f "$CUE_FILE_LINUX" -o $DECODE_MODULE "$AUDIO_FILE"
if [ "$CONVERT" = "true" -a "$FLAC_FILE" != "" ]
then
rm -f "$FLAC_FILE"
fi
注:以上脚本在Ubuntu Kylin 14.04下测试通过。
Ubuntu下用cue文件对ape和wav文件自动分轨的更多相关文章
- ubuntu下整合eclipse和javah生成jni头文件开发android的native程序
0:前言: 这两天一直在研究用android的jni调用第三方库,上网搜方法,但是都是泛泛而谈,没有demo,经过我几番折磨,写了n多的helloword工程,总是不成功,工程名字也就由helloow ...
- ubuntu下整合eclipse和javah生成jni头文件开发android的native程序(转)
本文介绍两种利用javah命令生成jni头文件的方法,第一种为大众所知的javah命令,第二种为整合javah到eclipse里面.推荐第二种方式,方便快捷,随时修改随时生成 0:前提和条件: 1:u ...
- Linux之Ubuntu下如何查看已安装的软件/库文件【摘抄】
本文属于实用性质,且属于摘抄别处,出自:[Ubuntu 下如何查看已安装的软件](http://blog.csdn.net/m1205979825/article/details/40855583) ...
- Ubuntu下 QT添加外部链接库(.so文件)示例
参考:https://blog.csdn.net/KKALL1314/article/details/81915354 https://forum.qt.io/topic/80301/file-not ...
- [转]ubuntu下整合eclipse和javah生成jni头文件开发android的native程序
转载自:http://blog.csdn.net/jiuyueguang/article/details/9404237 本文介绍两种利用javah命令生成jni头文件的方法,第一种为大众所知的jav ...
- Ubuntu 下用命令行快速打开html,mp3等文件
想用命令行打开网页文件,实现方法如下: 1.Ctrl+Alt+T可以打开shell,F11可以全屏显示,输入以下命令即可打开js17.html,并且指定浏览器,比如指定chrome, google-c ...
- ubuntu下以16进制形式查看class文件、反编译class文件
参考:https://blog.csdn.net/xyh930929/article/details/83860464 1.vim HelloWorld.class 2.输入英文状态下的冒号:,然后输 ...
- ubuntu下minicom和USB转串口(转)
ubuntu下minicom和USB转串口(转) minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利 ...
- 2010-01-20 12:09 ubuntu下minicom的安装及使用
转http://hi.baidu.com/npugtawqdnbgqrq/item/106f805409b42813db163527 ubuntu下minicom的安装及使用 安装: sudo apt ...
随机推荐
- stl_alloc.h分配器
五.分配器:5.1.头文件: 5.1.1.include<stl_alloc.h> //内存的分配. 5.1.2.include<stl_construct.h> //对象的构 ...
- tomcat 下部署单框架cas时,报出org.apache.jasper.JasperException异常的解决办法
在tomcat中部署好cas server(设置好https,将cas.war拷贝到了webapps下部署完成),启动tomcat后,访问http://localhost:8443/cas/login ...
- ASP.NET Web基本原理
ASP.NET Web基本原理 浏览器与服务器之间的交互 浏览器向服务器发送HTTP请求,具体如下: 1.浏览器向服务器发送TCP包,要求服务器打开连接 TCP包首部32位,占20字节,格式如图一: ...
- Linux命令之初出茅庐
此处讲解常用到的参数选项: ls 是列出文件的意思 ls -a ,查看所有文件包含隐藏文件 ls -l ,查看与文件相关的所有属性信息 ls -i ,查看文件的inode信息 ls -h,按照更为容易 ...
- JavaScriptCore全面解析 (下篇)
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 殷源,专注移动客户端开发,微软Imagine Cup中国区特等奖获得者,现就职于腾讯. 接JavaScript ...
- Oracle12c多租户管理用户、角色、权限
Oracle 数据库 12 c 多租户选项允许单个容器数据库 (CDB) 来承载多个单独的可插拔数据库 (PDB).那么我们如何在容器数据库 (CDB) 和可插拔数据库 (PDB)管理用户权限.背景: ...
- __call()和__callStatic()实例详解
<?php class Demo { //第一个参数是方法名,第二个参数是方法参数,以数组形式传入 public function __call($method,$args) { //遍历参数$ ...
- jenkins 用户名密码忘记
进入c盘--用户 在本地用户的目录下找到.jenkins目录,里面有一个config.xml; 打开后,删除其中的 " <useSecurity>true</useSecu ...
- [asp.net mvc 奇淫巧技] 02 - 巧用Razor引擎在Action内生成Html代码
在web开发中经常会遇到在内部代码中获取Html,这些Html是需要和数据进行一起渲染.并不是直接把Html代码返回给客户端.这样的做法有很多应用场景,例如分页.Ajax一次性获取几段Html片段.生 ...
- 《JAVA与模式》之命令模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述命令(Command)模式的: 命令模式属于对象的行为模式.命令模式又称为行动(Action)模式或交易(Transaction)模式. ...