Kino 技巧:从头安装和导出 MPEG 视频

作者:Olexiy Tykhomyrov

Linux Journal的十二月刊包含我们的专题文章“使用 Kino 制作电影”。在此,我们提供一篇配套文章,其中包含安装或升级 Kino 的说明,以及关于您可以使用这款流行的视频编辑程序做些什么的技巧。

技巧:IEEE1394 卡和电缆

在我们开始构建程序之前,这里有一个非 Linux 技巧:如果您的 PC 没有内置 IEEE1394 卡,或者您希望购买额外的 IEEE 卡,请尽量找到带有 IEEE1394 电缆的卡——从长远来看这更便宜。如果您确实单独购买电缆,请记住,在视频商店中标记为 Sony 的漂亮电缆可能比在电脑商店中标记为 1394 的普通电缆贵得多,但它们的工作方式没有任何区别。

技巧:从源代码安装

Kino 不是一个单一程序,但它在运行时确实会调用一些额外的东西并使用许多库。主要依赖关系树如下图 1 所示。为了成功编译 Kino,您必须事先安装所有需要的软件包并从源代码编译它们。希望配置脚本将帮助您确定所需的软件。

Kino Tips: Installing from Scratch and Exporting MPEG Videos

图 1. Kino 主要依赖关系树

首先在 SourceForge.net 上找到最新的源代码并加载它们。解压缩并解压文件,然后按照 README 说明进行操作。通过运行 ./configure 脚本,您可以详细了解为了成功编译 Kino,您必须在机器上添加的所有内容。您需要根据发行版安装缺少的组件。在这种情况下,您必须安装运行时库以及开发人员的相应文件,此类软件包的名称中包含“devel”或类似内容。

根据经验,您要编译的 Kino 版本越新,您需要安装或更新的库就越新。其中一些可能根本不适用于您的发行版。在这种情况下,您必须从源代码编译库或找到预编译的库。有关此步骤的更多详细信息,请参见下文“从软件包安装”。

如果 ./configure 脚本没有错误地完成,请运行make然后make install。如果 make 脚本出现问题,错误消息会为您提供有关发生情况的完整信息。README 文件也可以帮助您找到编译不成功的原因。

技巧:从源代码安装插件

Kino 插件 timfx timfxdvtitler 提供了一些额外的功能。安装 timfx 的过程需要 C++ 接口和信号框架库。在 SuSE 上,您可能不会遇到编译此模块的任何问题,但您可能需要指向 Kino 标头位置

  
 ~tiger/timfx ./configure
 ~tiger/timfx make KINO INCLUDE=/opt/gnome/include
 ~tiger/timfx make install

编译 dvtitler 的过程类似——不要忘记加载 timfx Luma 效果的灰度图像。它们位于此处。了解这些图像的工作原理可以帮助您开发自己有趣的效果。

技巧:使用 LJ FTP 站点中的软件包

为了简化所有这些库的安装,我们创建了包含 SuSE 9.1 和 Fedora Core 2 所有必要软件包的 tarball。SuSE 9.1 tarball 可以在此处找到,Fedora Core 2 tarball 可以在此处找到。使用这些 tarball,我们建议以下安装 Kino 的步骤

  1. 根据您的发行版加载所有软件包,如表 1 和表 2 所示。表中的某些软件包未包含在标准发行版中,其中一些是我们专门为与 Kino 一起使用而编译的。要以 root 用户身份安装它们,请发出命令rpm -i foo,其中 foo 是软件包的文件名。要升级,请使用rpm -U foo代替。

  2. 尝试使用命令安装 Kinorpm -U foo,其中 foo 是 Kino 软件包名称,根据发行版而定。对于 SuSE 是 kino-0.7.3-2.i586.rpm,对于 Fedora Core 2 是 kino-0.7.3-2.i386.rpm。

  3. 如果 rpm 抱怨您在系统中遗漏了某些内容,请阅读 rpm 输出并安装或升级必要的程序。

  4. 对于 SuSE,只需使用 rpm 安装 timfx 和 dvtitler;使用 timfx-0.2.1-2.i586.rpm 和 dvtitler-0.1.1-1.i586.rpm。对于 Fedora Core 2,首先安装表 3 中注明的标准版本中不可用的两个软件包。之后,安装插件软件包 timfx-0.2.1-2.i386.rpm 和 dvtitler-0.1.1-1.i386.rpm。

表 1. SuSE 9.1 软件包

软件软件包
MJPEG 视频捕获和处理工具mjpegtools-1.6.2
用于 DV 视频的 Quasar DV 编解码器libdv-0.102
用于读取和写入 Quicktime 文件的库libquicktime-0.9.2

表 2. Fedora Core 2 软件包

软件软件包
采样率转换器库libsamplerate-0.1.0
用于处理各种音频文件格式的库libsndfile-1.0.10
MJPEG 视频捕获和处理工具mjpegtools-1.6.2
用于读取和写入 Quicktime 文件的库libquicktime-0.9.2

表 3. 在 Fedora Core 2 上安装所需的软件包

软件软件包
用于 C++ 的类型安全信号框架libsigc++-1.2.5
用于 GTK2 的 C++ 接口gtkmm2-2.2.12
技巧:内核

要通过 IEEE1394 接口使用您的相机,您需要内核支持的驱动程序和设备。标准 SuSE(9.0 及以上版本)和 Debian 3.1 在其标准版本中都包含所有这些内容。Fedora Core 2 没有它们,因此您必须将 Fedora 安装更新到新的官方 Fedora 内核版本 2.6.8。您可以从此处下载。

技巧:设备和模块

在运行 Kino 之前,请检查 IEEE1394 设备是否可用。Kino 使用名为 /dev/ieee1394 的设备进行捕获,使用名为 /dev/dv1394 的设备进行输出。发出ls -al /dev/*1394*以反映您的系统。这些文件通常由安装系统时运行的 MAKEDEV 脚本创建。

但是,拥有这些设备还不够;您必须在系统中安装相应的组件才能使用它们。SuSE 开箱即用地提供了这些模块,而 Fedora Core 2 仅在升级后才提供它们。MandrakeLinux 9.2 版本也包含这些模块。

您必须手动创建 /dev/dv1394。对于 PAL,命令是

 mknod -m 666 /dev/dv1394 c 171 34

对于 NTSC,命令略有不同

 mknod -m 666 /dev/dv1394 c 171 32

不要忘记加载模块,使用modprobe dv1394。您可以通过访问 linux1394.org 找到有关此过程的更多详细信息。

技巧:安装用于导出电影的软件

就其本身而言,Kino 仅提供最少的导出功能;您可以使用它将电影写入 DV 磁带或 .dv 或 dv .avi 文件。表 4 显示了导出其他功能的依赖关系树。标为红色的软件包未包含在标准发行版中,因此您必须从 LJ FTP 站点提供的 tarball 中加载它们。使用rpm -i foo安装这些软件包。从顶部 (libogg) 开始,然后按照表格向下 (rawrec)。

表 4:导出电影的依赖关系

软件SuSE 9.1Fedora Core 2
Ogg 位流库libogg-1.1libogg-1.1
Vorbis 通用音频压缩编解码器libvorbis-1.0.1libvorbis-1.0.1
MP3 编码器lame-3.96(红色)lame-3.96(红色)
视频和音频转换器ffmpeg-0.4.8(红色)ffmpeg-0.4.8(红色)
用于读取 DVD 视频图像的库libdvdread-0.9.4libdvdread-0.9.4(红色)
用于便携式网络图形 (PNG) 格式的库libpng-1.2.5libpng-1.2.5
帮助您制作 DVD 的工具dvdauthor-0.6.10(红色)dvdauthor-0.6.10(红色)
原始音频录制/播放实用程序rawrec-0.9.98(红色)rawrec-0.9.98(红色)
技巧:丢帧

如果硬件运行速度不够快,则经常会发生丢帧。结果,在捕获图像时,丢帧的数量不断增加。作为丢帧的临时解决方案——在您安装更多内存或购买新主板之前——请尝试以下操作

  1. 退出所有 X 功能并使用 fvwm 重新运行 Kino。

  2. 完全关闭 X。使用 dvgrab 拉取所有文件,然后使用以此方式抓取的文件通过 Kino 组装电影。

技巧:小心使用效果

业余电影中的许多特效会分散观众的注意力。只有当您认为需要它们来传达您的想法时,才应应用此类效果。

带有 timfx 的 Kino 提供以下视频滤镜和效果:黑白、棕褐色、反色视频、镜像、万花筒、交换、色彩保持、模糊和柔焦。现代摄像机内置了此类滤镜,但我们在录制时很少使用它们,因为如果它们是实际图像的一部分,则很难撤消它们。在编辑阶段使用 Kino 进行此类过滤是一个更好的主意。

当您查看滤镜的名称时,通常很容易猜到滤镜的作用。查看以下图像以获取一些示例

Kino Tips: Installing from Scratch and Exporting MPEG Videos

图 2. 滤镜前的图像

Kino Tips: Installing from Scratch and Exporting MPEG Videos

图 3. 应用色彩保持滤镜后的图像

Kino Tips: Installing from Scratch and Exporting MPEG Videos

图 4. 滤镜前的图像

Kino Tips: Installing from Scratch and Exporting MPEG Videos

图 5. 应用从左到右滤镜后的图像

视频转场是连接两个场景的图像。最有趣的连接效果是图像亮度,因为您可以创建自己的滤镜。以下是连接示例;我们使用了来自 Kino 站点的标准文件。

Kino Tips: Installing from Scratch and Exporting MPEG Videos

图 6. 一种连接效果

Kino Tips: Installing from Scratch and Exporting MPEG Videos

图 7. 应用于模糊 = 1 的图像

Kino Tips: Installing from Scratch and Exporting MPEG Videos

图 8. 应用于模糊 = 0 的图像

其他转场选项包括淡入淡出、推入擦除、条形门擦除和差异。尝试所有这些选项,直到找到您喜欢的选项。

技巧:导出电影

虽然可以使用数码摄像机在电视屏幕上播放导出的电影,但我们不建议浪费有限的摄像机资源。将全质量版本的电影保留在 DV 磁带上,以便您以后可以使用它。

因为在电视屏幕上显示时,人眼几乎无法检测到 MPEG 2 压缩电影和原始 DV 格式之间的差异,因此制作 DVD 以供一般观看更有用。

DVD 的结构并不简单。一般来说,可以制作包含电影、其他照片等的 DVD,但这又是另一篇文章的主题。使用 Kino,您可以构建一个简单的 DVD 结构,以便与独立 DVD 播放器一起使用。

从“导出”选项卡开始。选择“DV 管道”,然后选择工具“FFMPEG DVD-Video 导出”。在“配置文件”中,选择“输出标准 DVD-Video 目录(仅全部)”;在宽屏源的情况下,使用宽屏输出。接下来,键入不带任何文件扩展名的输出文件名。此名称将成为 DVD 目录树上的顶级名称。按“导出”。

导出可能需要数小时。我们喜欢在睡觉前开始这个过程。导出完成后,您将获得生成的 DVD 目录树(VIDEO_TS 和 AUDIO_TS),根据您的输入命名。然后,您可以使用 mplayer 或 xine 检查结果。

在刻录最终 DVD 之前,您应该制作图像。我们更喜欢使用以下命令,假设名称为 movie_dvd

 mkisofs -dvd-video -o movie dvd.iso movie dvd

您必须刻录此图像;我们通常使用 growisofs 来完成此任务

growisofs -dvd-compat -Z /dev/dvd=movie dvd.iso

选项 -dvd-compat 用于提供最大的媒体兼容性。

然后,您可以为 DVD 标签设计自己的图像,打印出来并将此新 DVD 放入真实的 DVD 盒中。

技巧:从 DV 文件制作 MPEG 4

如果您已将电影保存为 .dv 文件,则可以轻松地将其转换为 MPEG 4 视频并刻录到 CD。因为并非我们所有的朋友都是 Linux 用户,所以我们更喜欢导出为 .avi MPEG 4 文件。

为了提高视频质量,我们建议使用两步编码过程。对于第一步,使用

ffmpeg -i foo.dv -f dv -pass 1 -passlogfile foo -vcodec mpeg4 -g 
250 -qscale 2 -bf 2 -acodec mp3 foo.avi

对于第二步,使用

ffmpeg -f dv -i foo.dv -s 640x480 -4mv -part -strict strictness -pass 2  
-passlogfile foo -vcodec mpeg4 -g 250 -hq -bf 2 -b 1500  -acodec mp3 -ab 128
foo.avi

这两个步骤中的输入文件、输出文件和日志文件必须相同。此外,您必须在第二步中指定所需的比特率。您设置的比特率越大,您将获得的电影质量就越好。但是,我们无法建议一个值;它通常基于请求文件的大小。但是,您可以重复编码几次。从高比特率开始,如果您对大小不满意,请降低速率并重复。不要忘记随时检查质量。

处理文件需要一些时间。根据电影的大小,一个步骤可能需要五个多小时。在上面的示例中,我们使用了 PAL 源。如果您有 NTCS 而不是 PAL,请使用-g 300而不是-g 250。玩转这些选项,尽情享受吧!

Olexiy Tykhomyrov (tiger@ff.dsu.dp.ua) 自 1994 年以来一直使用 Linux。他在第聂伯罗彼得罗夫斯克国立大学实验物理系工作,教授物理和通信。他爱他的儿子米沙,米沙叫他老虎,因为他的一些学生害怕他。老虎喜欢游泳和旅行。

Denis Tonkonog,老虎的前学生,也在第聂伯罗彼得罗夫斯克国立大学工作,喜欢旅行和持枪钓鱼。朋友们叫他黑猫,但没有人解释为什么。可以通过电子邮件 denis@ff.dsu.dp.ua 与他联系。

加载 Disqus 评论