Unix Toolbox

 主页   资讯   文章   代码   电子书 

有时候需要转换一个视频、音频文件或者文档成其他格式。

文本编码

文本编码可以得到完全错误的,特别是当语言需要某些特殊字符像 àäç。命令 iconv 可以从一个编码转换成另一个编码。

# iconv -f <from_encoding> -t <to_encoding> <input_file>
# iconv -f ISO8859-1 -t UTF-8 -o file.input > file_utf8
# iconv -l                           # 列显系统所支持的字符编码
若文档显示良好,通常都可不使用 -f 选项,iconv 会使用本地字符集(char-set)。

Unix - DOS 新行

在 Unix Shell 中转换 DOS (CR/LF) 到 Unix (LF) 新行格式。也可使用 dos2unixunix2dos 工具,如果你有它们的话。

# sed 's/.$//' dosfile.txt > unixfile.txt

在 Windows 环境中转换 Unix 到 Dos 新行格式。需要在 mingw 或 cygwin 中使用 sed。

# sed -n p unixfile.txt > dosfile.txt

PDF 转换成 Jpeg 和 连接一串 PDF 文件

gs (GhostScript) 工具转换 PDF 文档的每一页成 jpeg (或 png)图像。也可以使用更短的 convert (来自 ImageMagick 或 GraphicsMagick 工具) 命令。

# gs -dBATCH -dNOPAUSE -sDEVICE=jpeg -r150 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 \
 -dMaxStripSize=8192 -sOutputFile=unixtoolbox_%d.jpg unixtoolbox.pdf
# convert unixtoolbox.pdf unixtoolbox-%03d.png
# convert *.jpeg images.pdf          # 把所有图片转换成一份简单的 PDF 文档

Ghostscript 同样可连接多个 pdf 文件成一份 PDF 文档。这仅可工作于这些 PDF 文件都 "呈现一致(well behaved)" 的情况下。

# gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=all.pdf \
file1.pdf file2.pdf ...              # 在 Windows 上使用 '#' 代替 '='

视频转换

使用 mpeg4 编码压缩佳能数码相机视频并修复无用音质。

# mencoder -o videoout.avi -oac mp3lame -ovc lavc -srate 11025 \
-channels 1 -af-adv force=1 -lameopts preset=medium -lavcopts \
vcodec=msmpeg4v2:vbitrate=600 -mc 0 vidoein.AVI

对于声音的处理可看 sox

拷贝音频光盘

程序 cdparanoiahttp://xiph.org/paranoia/可以保存音轨(FreeBSD port 在 audio/cdparanoia/), oggenc 可编码 Ogg Vorbis 格式, lame 可转换成 mp3。

# cdparanoia -B                      # 拷贝音轨成 wav 文件到当前目录列表(dir)
# lame -b 256 in.wav out.mp3         # 编码成 256 kb/s 的 mp3
# for i in *.wav; do lame -b 256 $i `basename $i .wav`.mp3; done
# oggenc in.wav -b 256 out.ogg       # 编码成 256 kb/s 的 Ogg Vorbis