使用 Linux 烹饪 - 灯光...摄像...开拍!

作者:Marcel Gagné

恐怕是真的,弗朗索瓦。摄像机不会撒谎。这就是您在倒酒时的样子。当然,mon ami,我无意将这段小视频放到我们餐厅的网站上。我为什么要这样做?啊,您还没看今天的特色菜单。多媒体和娱乐才是王道,mon ami,而且您必须承认,这段小视频确实很有趣。别生气,弗朗索瓦,我非常尊重您。再说,没时间烦恼了,我们的客人马上就到了。啊,您看,他们已经在门口了。

欢迎,mes amis,来到 Chez Marcel!很高兴今天在这里见到各位,这里是地球上最好的 Linux 餐厅,同时也是世界上最棒的酒窖之一。请坐下,放松一下。弗朗索瓦现在正要去酒窖。2001 年圣卢西亚高地黑皮诺葡萄酒口感极佳。这是一款引人注目的葡萄酒,充满了明星气质——非常适合今天的菜单。

您会注意到,今天每个工作站都配备了一个小型网络摄像头和麦克风。最初的想法是我们(或其他人)最终会成为我们小电影的明星,但有时软件本身才是明星。毕竟,许多应用程序都在 Chez Marcel 的菜单上大放异彩,non?而这就是 Karl Beckers 的 xvidcap 发挥作用的地方。xvidcap 是一个很棒的小工具,用于使用名为 ffmpeg 的程序录制 X 桌面上的操作,ffmpeg 可能已经在您的系统上。结果是您的整个桌面或其任何部分的 MPEG 电影。

您可能会问,为什么要这样做呢?嗯,您可以使用它来创建培训视频,向其他人展示如何使用应用程序,或者向世界展示您在玩自己喜欢的第一人称射击游戏方面有多么出色。要获取您的 xvidcap 副本,请访问官方网站(请参阅在线资源)。该网站提供源代码和一些二进制软件包,例如 RPM 或 DEB。如果您的特定发行版未涵盖,则从源代码构建 xvidcap 是一个简单的提取和构建五步过程。

tar -xzvf xvidcap-1.1.3.tar.gz
cd xvidcap-1.1.3
./configure
make
su -c "make install"

程序名称可以是 xvidcap 或 gvidcap。我说“可以是”是因为如果您有 GTK2+ 开发库(版本 2.2.1 或更高版本),您将获得第二个二进制文件。两者工作方式相同,但说实话,GTK2+ 界面看起来和工作起来都更好。如果您没有最新的 GTK2+,您仍然可以通过使用二进制软件包而不是源代码来获得该界面。

当您从命令行启动任一版本的程序时,您会看到一个简单的工具栏,上面有一些按钮和一个漂浮在其下方的红色矩形。这是捕获窗口,您可以移动它以覆盖您要录制的任何区域。但是,默认窗口相当小。要更改要录制的区域,请单击十字准线图标(工具栏上从右数第二个),然后单击并拖动指针以包含您要捕获的任何区域。红色矩形将调整大小。工具栏包含用于录制、停止、暂停等的按钮。将鼠标悬停在按钮上将显示工具提示。就是这样,您正在录制红色矩形内发生的任何事情的电影(图 1)。

Cooking with Linux - Lights...Camera...Action!

图 1. 使用 xvidcap/gvidcap 选择捕获窗口

一些首选项设置允许您更改每秒帧数、视频编解码器以及是否要在最终视频中捕获鼠标指针。右键单击帧按钮(左侧第一个)并选择“首选项”(图 2)。在您试验一段时间后,输入man xvidcap以获取有关在没有 GUI 的情况下运行程序的详细信息。额外的好处是您也可以捕获音频,如果您要创建教学视频,这将非常完美。

Cooking with Linux - Lights...Camera...Action!

图 2. gvidcap 首选项对话框

我在介绍 xvidcap 时特意提到 ffmpeg 的原因之一是它是一个非常通用的程序,非常值得了解。您可以使用 ffmpeg 以几乎零成本创建自己的电影。一个廉价的网络摄像头,以及(如果您想要声音)一个同样廉价的麦克风,就是您所需要的一切(当然还有 ffmpeg)。

几周前,我被要求为一个图书项目创建一个介绍视频。质量并没有被期望令人兴奋,因为这主要是一个概念验证的东西,而不是最终产品。因为我没有合适的摄像机,所以我不得不临时凑合,从而创建了可能是世界上最便宜的视频录制工作室(图 3)。我的设置是一个廉价的麦克风和一个带有 CPIA 芯片的廉价 USB 网络摄像头。有了我的 Linux 系统,我认为我已经准备好了。唯一的问题是“如何?”

Cooking with Linux - Lights...Camera...Action!

图 3. 这是世界上最便宜的视频录制工作室吗?

使用 ffmpeg,我创建了我的视频剪辑,试验了 timing、帧速率等等,直到我得到了一些相当不错的东西。使用以下命令,我创建了一个每秒十帧的 AVI 格式视频剪辑

ffmpeg -vd /dev/video -ad /dev/sound/dsp -r 10 \
-s 352x288 video_test.avi

就是这样。我的视频设备输入(由 -vd 选项指示)是 /dev/video,我的声音或音频输入是 /dev/sound/dsp。这是 -ad 选项。您自己的设备当然可能略有不同。例如,在我的另一台机器上,USB 视频设备是 /dev/video0。就目前而言,该命令会继续录制,直到您的磁盘空间耗尽。因此,要将录制限制为十秒,我使用 -t 选项

ffmpeg -vd /dev/video -ad /dev/sound/dsp -r 10 \
-s 352x288 -t 10 video_test.avi

生成的剪辑,我称之为 video_test.avi,可以使用 Xine、Kmplayer、MPlayer 或您喜欢的任何视频播放器播放。

嗯,mes amis,我廉价进军视频制作是成功的,或者我是这么认为的。当我发送视频剪辑以供批准时,我被问到是否可以将其改为 MPG 格式。我没有重做显然是一部伟大的电影作品,而是使用以下命令将其转换

ffmpeg -i video_test.avi video_test.mpg

尽管 ffmpeg 功能非常强大,但您肯定应该花几分钟时间查看手册页。我保证您会发现它有很多非常酷的用途。

对于那些已经拥有数字摄像机的人来说,录制高质量视频不是问题。挑战在于将视频传输到您的硬盘上,以便进行编辑、压缩并最终刻录到光盘上,以便发送给朋友和家人。我有一台索尼 Handycam。它配备了 USB 端口,但它也有一种更快的方式通过高性能串行总线(或大多数人所知的 FireWire 端口)传输视频。真正的技术人员将其称为 IEEE1394 端口。您的计算机也需要具有这样的端口(或卡)才能传输信息,但 IEEE1394 端口的性能确实值得投资。

然而,要以友好的方式操作生成的视频,您需要使用像 Arne Schirmacher 的 Kino(请参阅资源)这样的视频编辑器。dvgrab 程序也可从 Kino 网站获得,它内置于 Kino 中,因此您不需要单独的副本。您看,mes amis,像 xvidcap 一样,Kino 在漂亮的界面下使用了一些命令行工具。其中一个工具是我们的老朋友 ffmpeg。

这些天,Arne 有一些优秀的开发人员在从事该项目,他们为 Linux 制作了一个相当不错且易于使用的视频编辑器。请参阅第 XX 页的专题文章。Kino 的优点在于,您可以使用它直接从您的 IEEE1394 兼容摄像机中提取和编辑视频。如果您有这样的设备,可以通过 FireWire 电缆连接,Kino 甚至允许您通过应用程序控制该设备。在我继续之前,让我退后一步,谈谈 IEEE1394 支持。任何最新的 Linux 发行版都应该包含 IEEE1394 支持(通过可加载内核模块),但在我的测试系统上,驱动程序没有自动加载。没问题——我手动加载了它们

modprobe ohci1394
modprobe raw1394
chmod 666 /dev/raw1394

通过 IEEE1394 电缆将您的数字视频传输到您的计算机可以很容易地通过命令行使用 dvgrab 完成。毕竟,这就是 Kino 捕获视频的方式。虽然您可以输入dvgrab并开始捕获,但最好的方法是使用 -i 选项,即交互式。然后,您可以使用简单的单键按下控制相机和捕获。

dvgrab -i
Going interactive. Press '?' for help.
q=quit, p=play, c=capture, Esc=stop, h=reverse, j=backward scan,
k=pause, l=forward scan, a=rewind, z=fast forward, 0-9=trickplay,
<space>=play/pause
Capture Started

我们已经习惯了使用图形界面,但这比听起来容易得多,也更好用。默认情况下,系统上生成的视频文件名为 dbgrab-XXX.avi,其中 XXX 是一个三位数的扩展名。

Kino 的界面简洁明了,易于导航(图 4)。在主窗口的右侧,选项卡指示各种功能,从捕获到编辑再到导出成品。“编辑”选项卡是大部分工作发生的地方(当然是在“捕获”之后)。您可以在此处剪切或连接场景,甚至将其他文件插入到您的视频项目中。“时间线”选项卡将当前场景(和视频剪辑)分解为多个帧,因此您可以跳到视频的任何部分,而无需播放整个视频。

“FX”选项卡允许您向视频添加各种特殊效果。这些包括反向视频、棕褐色调、镜像和万花筒效果等等。音频效果包括淡入、淡出和静音。

Cooking with Linux - Lights...Camera...Action!

图 4. 使用 Kino 编辑家庭电影

一旦您开始真正享受您的数字摄像机,您将录制不止几分钟的磁带。我提到这一点的原因是,当您使用 Kino 从数字摄像机捕获输出时,将创建许多大型文件,每个文件大约 820MB 大小,并且每个文件都按视频的持续时间顺序排列。然而,这些超大文件不是您想要的最终产品。这就是“导出”选项卡的全部意义所在。此处提供了各种选项(在一组子选项卡中),包括仅将音轨导出到 WAV 文件。我也喜欢我可以导出单个帧的静止图像这一事实。但是,我最常使用的选项是 DV pipe,而这正是 ffmpeg 再次出现的地方。

在完成所有编辑、剪切和粘贴后,我使用 ffmpeg 将我的成品导出为视频 CD AVI 文件或 DVD 格式。生成的文件(例如,VCD AVI 格式)要小得多,也更易于管理。一小时的数字视频占用大约 9GB 的磁盘空间。但是,导出的视频可以很好地容纳在一张 700MB 的 CD-ROM 上。

正如您所看到的,mes amis,您的 Linux 系统提供了一些很棒的工具,让您或您的软件成为明星。说到这,似乎已经到了打烊时间,从你们脸上因葡萄酒而露出的笑容来看,我们有机会捕捉到一些难忘的视频。我只是开玩笑,当然。弗朗索瓦,请再为我们的客人斟满一杯。也许我们应该为后代捕捉的是我们的临别祝酒。下次再见,mes amis,让我们为彼此的健康干杯。A votre santé Bon appétit!

本文资源: www.linuxjournal.com/article/7808

Marcel Gagné (mggagne@salmar.com) 居住在安大略省密西沙加市。他是全新著作 Moving to the Linux Business Desktop (ISBN 0-131-42192-1) 的作者,这是他在 Addison-Wesley 出版的第三本书。在现实生活中,他是 Salmar Consulting Inc. 的总裁,这是一家系统集成和网络咨询公司。他还是一名飞行员,撰写科幻小说和奇幻小说,并且擅长折纸 T-Rex。

加载 Disqus 评论