有些人可能会遇到一些带有DTS音轨的AVI电影。
有时我们不想将其保留为DTS。
不幸的是,为了提取和转换DTS音频,必须要烧一下大脑,因为LINUX中的A/V工具对这种格式不兼容,很不爽是不是?
这是我创建的一个脚本,用于翻录一堆AVI文件,DTS跟踪并自动将它们转换为Stereo AC3音轨。
将其复制/粘贴到文本文件并将其另存为“avidts2ac3”:
#!/bin/bash
#avidts2ac3 (extracts DTS tracks from video file and converts it to ac3)
#requirements: mplayer / ffmpeg
#variables
current_directory=$( pwd )
OUTPUT_AVI="output_avi.av" #'av' extension used to prevent filename conflict
OUTPUT_WAV="output_wav.wav"
OUTPUT_AC3="output_ac3.ac3"
#remove spaces
for i in *.avi; do mv "$i" `echo $i | tr ' ' '_'`; done > /dev/null 2>&1 &
#remove uppercase
for i in *.[Aa][Vv][Ii]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done > /dev/null 2>&1 &
#rip with Mencoder / encode with ffmpeg
for i in *.avi ; do nice -n 10 mencoder $i -oac pcm -ovc copy -o $OUTPUT_AVI && nice -n 10 ffmpeg -i $OUTPUT_AVI -acodec copy $OUTPUT_WAV && nice -n 10 ffmpeg -i $OUTPUT_WAV -ac 2 -ab 192 -ar 48000 $OUTPUT_AC3 && mv $OUTPUT_AC3 "`basename "$i"`.ac3" && rm $OUTPUT_WAV ;done
#Cleanup
rm $OUTPUT_AVI
exit;
您可能希望将其作为root复制到自己的环境变量PATH中去,这样使用命令就不用给绝对路径了。(/usr/bin或/urs/local/bin)
别忘了给它权限:chmod + rx avidts2ac3
然后将要转换的所有AVI影片放在一个目录中,并使用该目录中的脚本。
对于那些想要或需要了解它的机制的人来说,它是按照分步指南为您分解的:
DTS到AC3
1)在WAV PCM中转换电影中的音频:
nice -n 10 mencoder input_video.avi -oac pcm -ovc copy -o output_movie.avi
2)从新的AVI中提取WAV文件:
nice -n 10 ffmpeg -i output_movie.avi -acodec copy movie_audio.wav
3)将WAV转换为AC3立体声
nice-n 10 ffmpeg -i movie_audio.wav -ac 2 -ab 192 -ar 48000 audio.ac3
之后,您可以将mpeg2电影与新的AC3音轨复用
*请注意,一旦提取了WAV,你就可以将其转换为你喜欢的任何内容。