利用shell脚本批量转换DTS文件到Stereo AC3

有些人可能会遇到一些带有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,你就可以将其转换为你喜欢的任何内容。

Mariadb 的总是运行着就挂了的解决方法

前不久因为之前的 VPS 有问题,所以就在阿里云重建了自己的博客, 满心欢喜的使用的时候发现他很快就挂了...

我检查后台发现mariadb is dead, 又是数据库挂, 很纠结. 查了一下,发现很多人都遇到一样的问题, 看到一篇帖子提到了配置,我检查我的数据库配置,其实咩有做什么特别的,也没有深度优化,就是最基本的,为何还会挂? 检查日志发现...狗日的内存不够了.直接显示 out of memory...

free -m 检查发现果然内容不够用了.

还发现 swap 分区基本都是空的.

所以, 我们需要尝试去创建一个交换文件

继续阅读Mariadb 的总是运行着就挂了的解决方法