将DTS音频CD映像转换为双声道CD映像的脚本

来源:互联网 发布:基金组合 知乎 编辑:程序博客网 时间:2024/06/05 22:50

现在很多DTS的CD了,网络上也有很多这样的资源下载,但是我的CD播放器不支持DTS解码,只能把DTS的CD映像降级(downmix)到双声道(Stereo)。因为平时都用linux,所以就把用到的工具用一个脚本串起来,这样方便很多。

首先,需要下载一个Windows上用的编、解码软件——eac3to,你可以用后面的官方链接下载: http://madshi.net/eac3to.zip ,也可以google一个下载地址。

在linux上运行Windows程序需要用到wine,所以需要先安装它。我是通过安装 playonlinux 这个套件来安装的wine:sudo apt-get install playonlinux。注意我是用的64位的linux,所以命令行里使用的是wine64,如果是32位系统的话,应该用wine。

好了,下面就是我的脚本,你只需要修改EAC3TO的值为你安装eac3to的位置即可。

# !/bin/bash
EAC3TO=~/eac3to327/eac3to.exe
if [ $# != 2 ]; then
        echo “Usage: covertDTStoStereo.sh SourceFile TargetFile”
else
        wine64 $EAC3TO $1 $2′.tmp.wav’ -downStereo && avconv -i $2′.tmp.wav’ -ac 2 $2 && rm -f $2′.tmp.wav’
fi

以下是一个运行结果:

$ ~/convertDTStoStereo.sh CDIMAGE.dts.wav CDIMAGE.2.wav
fixme:msg:ChangeWindowMessageFilter 400 00000001
DTSWAV, 6.1 channels, 1:00:59, 16 bits, 1235kbps, 44.1kHz
err:ole:CoGetClassObject class {1a89085b-b654-4ed8-8831-5ac629a05ff5} not registered
err:ole:CoGetClassObject no class object {1a89085b-b654-4ed8-8831-5ac629a05ff5} could be created for context 0×1
err:ole:CoGetClassObject class {9f062738-cd84-4f54-a3c4-bd5eb44f416b} not registered
err:ole:CoGetClassObject no class object {9f062738-cd84-4f54-a3c4-bd5eb44f416b} could be created for context 0×1
The ArcSoft and Sonic decoders don’t seem to work, will use libav instead.
Reading DTSWAV…
Patching bitdepth to 24 bits…
Decoding with libav/ffmpeg…
Downmixing multi channel audio to stereo…
Reducing depth from 64 to 24 bits…
Writing WAV…
Creating file “CDIMAGE.2.wav.tmp.wav”…
Clipping detected, a 2nd pass will be necessary.
Starting 2nd pass…
Reading DTSWAV…
Patching bitdepth to 24 bits…
Decoding with libav/ffmpeg…
Downmixing multi channel audio to stereo…
Reducing depth from 64 to 24 bits…
Writing WAV…
Applying -7.96dB gain…
Creating file “CDIMAGE.2.wav.tmp.wav”…
eac3to processing took 7 minutes, 6 seconds.
Done.
avconv version 0.8.9-6:0.8.9-0ubuntu0.13.10.1, Copyright (c) 2000-2013 the Libav developers
built on Nov  9 2013 19:09:46 with gcc 4.8.1
[wav @ 0x11f19e0] max_analyze_duration reached
Input #0, wav, from ‘CDIMAGE.2.wav.tmp.wav’:
Duration: 01:00:58.76, bitrate: 2116 kb/s
Stream #0.0: Audio: pcm_s24le, 44100 Hz, stereo, s32, 2116 kb/s
Incompatible sample format ‘s32′ for codec ‘pcm_s16le’, auto-selecting format ‘s16′
Output #0, wav, to ‘CDIMAGE.2.wav’:
Metadata:
encoder         : Lavf53.21.1
Stream #0.0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s24le -> pcm_s16le)
Press ctrl-c to stop encoding
size=  630280kB time=3658.77 bitrate=1411.2kbits/s
video:0kB audio:630280kB global headers:0kB muxing overhead 0.000007%

0 0
原创粉丝点击