很多音乐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 -e "Usage: audio-cue-split.sh [AUDIO_FILE_NAME] [DECODE_MODULE]"
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

echo -e "First, convert ape format to flac format, waite a minute..."
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

echo -e "Remove temporary flac file: $FLAC_FILE"
rm -f "$FLAC_FILE"

fi

注:以上脚本在Ubuntu Kylin 14.04下测试通过。

Ubuntu下用cue文件对ape和wav文件自动分轨的更多相关文章

  1. ubuntu下整合eclipse和javah生成jni头文件开发android的native程序

    0:前言: 这两天一直在研究用android的jni调用第三方库,上网搜方法,但是都是泛泛而谈,没有demo,经过我几番折磨,写了n多的helloword工程,总是不成功,工程名字也就由helloow ...

  2. ubuntu下整合eclipse和javah生成jni头文件开发android的native程序(转)

    本文介绍两种利用javah命令生成jni头文件的方法,第一种为大众所知的javah命令,第二种为整合javah到eclipse里面.推荐第二种方式,方便快捷,随时修改随时生成 0:前提和条件: 1:u ...

  3. Linux之Ubuntu下如何查看已安装的软件/库文件【摘抄】

    本文属于实用性质,且属于摘抄别处,出自:[Ubuntu 下如何查看已安装的软件](http://blog.csdn.net/m1205979825/article/details/40855583) ...

  4. Ubuntu下 QT添加外部链接库(.so文件)示例

    参考:https://blog.csdn.net/KKALL1314/article/details/81915354 https://forum.qt.io/topic/80301/file-not ...

  5. [转]ubuntu下整合eclipse和javah生成jni头文件开发android的native程序

    转载自:http://blog.csdn.net/jiuyueguang/article/details/9404237 本文介绍两种利用javah命令生成jni头文件的方法,第一种为大众所知的jav ...

  6. Ubuntu 下用命令行快速打开html,mp3等文件

    想用命令行打开网页文件,实现方法如下: 1.Ctrl+Alt+T可以打开shell,F11可以全屏显示,输入以下命令即可打开js17.html,并且指定浏览器,比如指定chrome, google-c ...

  7. ubuntu下以16进制形式查看class文件、反编译class文件

    参考:https://blog.csdn.net/xyh930929/article/details/83860464 1.vim HelloWorld.class 2.输入英文状态下的冒号:,然后输 ...

  8. ubuntu下minicom和USB转串口(转)

    ubuntu下minicom和USB转串口(转)   minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利 ...

  9. 2010-01-20 12:09 ubuntu下minicom的安装及使用

    转http://hi.baidu.com/npugtawqdnbgqrq/item/106f805409b42813db163527 ubuntu下minicom的安装及使用 安装: sudo apt ...

随机推荐

  1. ASP.NET Web基本原理

    ASP.NET Web基本原理 浏览器与服务器之间的交互 浏览器向服务器发送HTTP请求,具体如下: 1.浏览器向服务器发送TCP包,要求服务器打开连接 TCP包首部32位,占20字节,格式如图一: ...

  2. office web apps 部署-搭建office web apps服务器

    二.搭建office web apps服务器 相关文件可以去焰尾迭分享的百度网盘下载,下载地址:http://pan.baidu.com/s/1o6tCo8y#path=%252Foffice%252 ...

  3. 《JavaScript权威指南》学习——js闭包

    序:闭包这个玩意啊~在很多没有代码块的语言中都会出现,已经成为大多程序员入门的一道坎,闭包让很多程序员觉得晦涩(事实上百度一下这个名词,真的说的很晦涩啊亲==|||),我第一次知道闭包这个名词是从&l ...

  4. 基于Activiti的流程应用开发平台JSAAS-WF V5.3

    第1章 产品概述及体系架构 1.1.概述 红迅JSAAS-WF工作流平台V5是广州红迅软件有限公司面向合作伙伴以及有IT运维团队中大型企业提供新一代的流程管理产品,它基于流行的JAVA开源技术上构建, ...

  5. Ubuntu server搭建Java web服务器

    1. 在Ubuntu server中安装ssh,如果是购买服务器的话,这已经是安装的了,包括vim 获取超级权限 先更新安装包 开始安装ssh ssh已经启动了 2. 安装Xshell并创建连接安装X ...

  6. Spring事务处理

    事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 数据库向用户提供保存当前程序状态的方法,叫事务提交(commit): ...

  7. 受够了if (ModelState.IsValid)?ActionFitlter也是一路的坑啊!

    这篇博客真是干货,干得估计还有点“磕牙”,所以还提供视频和代码.但基础稍弱的同学,怕还是得自行补充一些基础知识——就一篇文章,确实没办法面面俱到. 视频和代码下载:Demo - 百度云盘 · 一起帮 ...

  8. 基于本地文件系统的LocalDB

    零.前言 之前写一些小工具的时候,需要用到数据存储方面的技术,但是用数据库又觉得太大了,本地文件存储txt文件存储又不是很规范,于是乎想到了去编写一个简单的基于本地文件系统的数据存储库,暂且叫它loc ...

  9. windows上安装jdk

    1.下载jdk安装包 jdk官网   http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.安装jdk 傻瓜式下一步 ...

  10. 双击更新所有已安装的python模块

     首先声明我是一个升级控.几乎每天会查看一下手机.电脑是否有新的应用需要更新. 同样,我的python模块也是这样.百度了一下,发现目前还没有人将更新所有模块做成一件命令,但是查到了指引,主要就是两个 ...