当前位置

Win32 下的音视频软件(开源的和免费的)

下面是科普时间...

LAME
lame 号称是这个星球上 MP3 编码音质最佳的编码器,而且是 GPL 的.
在我的 DV-2-XviD 里面也是采用 lame.exe 来压缩 DV 的音频的。除了 lame .exe 这个命令行工具外,这里可以找到很多基于 lame 的程序。我现在使用的是 winLAME,它除了支持文件转换外,还可以 rip CD,包括去 freedb.org 上寻找 CD 信息,至少我刚从卓越买来的《Unplugged in New York》和《时光漫步》都能被正确识别出来

ffdshow 和 FFmpeg
FFmpeg是一款强大到有些变态的多媒体编码库。它是在 Linux 下开发的,核心是 libavcodec(就是win32下说的Codecs) 和 libavformat(用于文件格式的处理),ffmpeg 只是其前端命令行程序。由于专利权问题(大部分影音编码都是有专利的),Linux 发行版本通常不会把 ffmpeg 作为发行缺省部分。
ffdshow 从其命名来看应该是脱胎于 ffmpeg,主要的解码库也用的是 libavcodec,可以说是 ffmpeg 的 DirectShow 版本。当然随着发展,它已经远远不限于 livavcodec 了,还增加了许多后处理的特性以增强低质量视频的播放效果。要说的是这些特性也多半来自 Mplayer——另一个 Linux 下开发的媒体播放器项目,其实 Linux 下多媒体处理还是很棒的。
BTW,从 Youtube 下载的 flv 格式的文件就是用 ffdshow 来enable相应的 decoder filter 就可以了.

AviSynth
AviSynth 简直可以用神奇来形容。首先解释一下 Frame Server 的概念,通常我们所谓的多媒体处理都是直接处理文件,处理网络媒体流的现在也很常见,那么 Frame Server 就可以说是生成"程序媒体流 or 来自程序的媒体流"的程序。再举一个例子,我们访问 http 服务器请求的只是一个 URL,但是这个 URL 里面可能囊括了图片、视频,现在还有 AJAX 程序... 最终组织成一个丰富多彩的页面;AviSynth 就是一种这样的服务器,它对外展示的只是一个 .avs 脚本,但这个脚本则可以把原视频文件做各种各样的处理,打开这个 .avs 文件得到的就是做过处理以后的视频流。
通常那些压缩 DVD 的人都要写 avs 脚本来去拉丝修改分辨率,渲染一下比如加亮度.. 后,再调用 Codecs 来压缩 avs 流.
AviSynth 目前只能在 Win32 上工作,不过支持 Linux 的 AviSynth 3.0 正在开发中,3.0 还将包括一个 Gstreamer 插件.
另一个有关的消息是 AviSynth 似乎打算放弃维护自己的脚本引擎,而会改用 Python

VirtualDubMod 和 VirtualDub
由于专利问题,VirtualDub 一直拒绝直接支持 MPEG-2 文件的处理,但人们的需求是压缩 DVD,于是就有了一票修改版本们的出现,VirtualDubMod 便是其中的佼佼者,它除了支持 MPEG2 以外,还增加了支持 VBR MP3 等特性。
虽然 VirtualDub/VDubMod 号称是一个视频捕获和处理程序(包括视频编辑),但我一直都用的是它的命令行功能:和 avs 类似,写一段小的 vdub 脚本,然后交给 vdub 去执行。在我的 DV-2-XivD 程序里面,整套执行流程如下:
 1. 写一个 vdub 脚本,将 PCM/Wav 格式的音频从 DV avi 里面分离出来
 2. 调用 lame,将声音压缩成 mp3
 3. 写一个 vdub 脚本,将 DV avi 做 XviD 的 1-pass 压缩,生成 stat 文件
 4. 写一个 vdub 脚本,执行 2-pass 压缩,并且和 mp3 文件 合并到最后的 avi 文件里.

AutoGK 和 DVDdecrypter
上面介绍的全都是 GPL or LGPL 的软件,现在来介绍两个免费软件(freeware)
虽然已经有了很多工具,但把一张 DVD 制作成一张 700M 的 XviD/DivX 还是很麻烦的,于是就有了 Gordian Knot 这个软件包,但我实在搞不明白 Gordian Knot 这个名字是自嘲,还是标榜自己是亚历山大之剑那样的解决方案。
事实上 AutoGK 才是真正的亚历山大之剑,它和 DVDdecrypter(原站点 DVDDecrypter.com 已经在压力下关闭了)的配合可以说天衣无缝,很轻松就能把 DVD 压缩好。我家那些宝宝反复看的 DVD 全都是这么处理的,而且不再担心盘片被宝宝弄坏.
我的 DV-2-XviD 也是来源于 AutoGK,包括 vdub 脚本,我也是学着 autogk 的中间处理结果来生成的.

Celtic Druid
这个不是软件,而是一个网名。这个家伙最擅长的就是在 win32 下 build 从 cvs 里 checkout 出来的代码并发布,doom9 这样的论坛经常可以看到大家谈论 Celtic_Druid build,AutoGK 通常就用他编译的 XviD。
原始站点(celticdruid.no-ip.com/)被 GFW 了,不明白为什么.. 不过还是有很多 mirror 可以访问,很容易可以搜索到。他编译的包括:Media Player Classic、ffdshow、XviD、x264...

====================================
最后是广告时间...

DV-2-XviD
用 Python 写成,GPL
功能是合并多个 DV avi 文件,在画面底部增加拍摄时间码,压缩成 XviD.
目前已知的问题包括:
 1. 只能和 xvid-1.1-test2 一起工作 :(
 2. 压缩 XviD 的文件大小控制有问题
 3. wxPython 窗口在压缩过程中会失去响应

原来我的 DV 是压缩成 MPEG2/SVCD 保存的(而且是用的没有合法许可的软件),最近一年多以来,开始用 XviD 压缩,感觉不错。计划修补完上述缺陷后,再考虑是不是改成 MPEG4 AVC 方案,比如 x264,如果这样的话,这个项目的名字可能也需要改成 DV-2-MPEG4,或者 DVgk?

Topic: