Linux 机器上制作电影?不可能!
多年前,大学计算机实验室的后面有这些 HPUX、IRIX 和 AIX 机器,它们除了基本的计算机基础设施任务之外什么也不做:文件服务、数据库管理、数字处理,也许还有一些视觉效果。如果您想要所有有趣的东西,您必须重启几次 Windows PC,并等待速度慢得可怕的 75Mhz 奔腾芯片。
但是 UNIX 机器比当时的 PC 快得多、效率高得多,一台 UNIX 机器编辑声音和视频似乎将超越所有速度概念。然而,没有这样的软件存在。没有任何东西可以将所有这些高效的实用程序和系统驱动程序统一到一个单一用途中。编写一个 C 程序,可以在系统中处理千兆字节的采样音频和视频数据,并在数千种 UNIX 变体上从头开始编译,这似乎是完美的计划。
Windows 和 Mac 广告不断宣传将您的 Windows 和 Mac 工作站变成电影工作室的方法。与此同时,Linux 仍然主要被采纳为计算机基础设施粘合剂。但是,如果您在互联网上搜索,您可能会看到一些人将电影工作室放入 Linux 机器中。
Broadcast 2000 是 2000 年主流计算中 Linux 电影制作的分支。Broadcast 2000 所做的是将您的 Linux 机器变成 iMac,这是一个能够捕获、编辑和渲染高质量多媒体内容的系统。该软件将您 catapult 到通常为那些靠重启 WinNT 谋生的人保留的内容感官狂潮中。
Broadcast 2000 软件允许您即时剪切和粘贴数小时的全动态、全分辨率电影和 DVD 质量的声音。该软件像烤面包片一样吐出 2 千兆字节的电影文件。它发挥了 Linux 的全部潜力,最重要的是,它跨越了从纯粹的计算基础设施到生产力应用程序的障碍,这类似于人类登陆火星的挑战。
1998 年之前的预告片可以通过 xanim(导出版本)转码为未压缩的 Quiktime。由于只有视频轨道有播放图标,因此只有视频播放。由于每个轨道都有录制图标,因此每个轨道都受到选择的影响。
让那些因为 Linux 对基本计算机科学的严格实现而选择 Linux 的程序员专注于电影工作室程序是很困难的。让公司支持 Linux 中的生产力应用程序甚至更难。像这样的不可能完成的任务通常需要蛮力:赞助商、风险投资和传统的全职编程。
但是,如果有足够的蛮力,就可以找到 Linux 机器来录制电视节目、编辑广告、编辑家庭电影、整理音频 CD、在格式之间转码电影、录制延时电影、存档 VHS 磁带和播放装满 MP3 的目录。那么,哪项活动最能让您着迷呢?可能是安装,对吧?
安装 Broadcast 2000 的首选方法是下载 RPM 并调用
rpm -U --nodeps --force <filename>
您需要担心的只是将以下库与点版本匹配
XFree86 4.0.1<\n> Linux Kernel version 2.2.17.大多数问题发生在 RPM 命令用法上。这三个选项是强制性的,因为 RPM 无法应对操作系统中的点版本碎片。
发送给 Broadcast 2000 支持人员的电子邮件通常处理的是 Linux 机器上是否安装了 RPM 系统或是否没有 root 访问权限。有一个名为 rpm2cpio 的古老实用程序可以代替这些系统上的 RPM。您按以下顺序调用它
rpm2cpio <rpm file> | cpio -i --make-directories
这将在当前目录中创建一个迷你 usr 树,其中包含完整的安装。调用 ls -lR usr 以查看完整的目录树。
如果您具有 root 权限,请务必将安装位置重新定位到真实的 /usr 目录。如果您不熟悉运行时库,则在没有 root 权限的情况下尝试安装 Broadcast 2000 可能会非常困难。购买您自己的 Linux 机器以便您可以摆脱这些问题是值得的。
脚本文件 usr/local/bcast/bcast2000.sh 包含正确的运行时库路径。如果您重新定位了 /usr/local/bcast,则必须将 BCASTDIR 更改为 /usr/local/bcast/ 的新位置。
尽管存在二进制文件,但从 heroinewarrior.com 下载 Broadcast 2000 的三分之一是源代码。造成这种情况的原因有很多:您可以通过传递不同的编译器标志来了解优化策略;您还可以通过尽可能多地重新制定软件开发过程来获得更大的独立性。
从头开始构建非常困难且耗时。可执行文件中需要的大多数库都由主 Makefile 静态构建,以大大简化编译。然而,近年来,出现了许多新的点版本,加剧了家庭编译的前景。您需要以下点版本的头文件
XFree86 4.0.1. Linux Kernel version 2.2.17.
这可以通过发出
./configure<\n> make make install在顶层目录中完成。毫无疑问,在更新的 Linux 衍生产品中将会出现我们尚未见过的问题——您可能需要进行一些手工编码。如果它没有构建点版本,则很可能是不匹配的原因。
发出命令 /usr/local/bcast/bcast2000.sh 以启动 Broadcast 2000。
安装完成后,Broadcast 2000 可以执行许多操作,每个操作都有无数种配置。这些操作包括视频捕获和音频捕获的许多替代方案。该系统旨在从基本音频扩展到高带宽视频,但这使用户需要进行极其详细的自定义。
配置选项在 /usr/local/bcast/docs 目录中描述。最大的帮助将是反复试验,直到开发出配置文件。
让我们看一下 Broadcast 2000 会话的三个阶段:获取素材、编辑素材和保存节目。
通常,发送给支持部门的电子邮件抱怨无法加载电影文件。大多数用户想要加载压缩的互联网预告片,但在 1998 年,Linux 世界迎来了一个残酷的现实。新的压缩格式都无法在 Linux 上运行。从那时起,我们经历了 Windows 平台上的三代视频,但没有一个获得 Linux 使用许可。
您可能播放的唯一视频是 MPEG-1、未压缩的 Quicktime 和 DV。Quicktime 不是单一的压缩格式。它实际上是许多不同视频格式的包装器。其中一些格式用于专业工作室,其中一些格式在 Linux 中得到完全支持。还支持加载高分辨率照片、平移和缩放。
当然,您可以通过视频捕获接口导入素材。实际上,互联网上没有任何您想在节目中使用的素材,并且压缩永远不会用作中间格式。当您离开纯播放域时,所有素材都是未压缩的,并且是从一些深奥的设备捕获的。
Broadcast 2000 支持 Video4Linux、Video4Linux 2、Firewire、LML33 和屏幕捕获接口,这些接口可以从半双工音频录制自定义为全双工视频录制。这些硬件应用程序的安装难度各不相同。视频捕获通常在内核中通过补丁、单独的源代码发行版、编译和手工编码来实现。
在获取素材之后,人们面临的最大问题是编辑界面。与当前 GUI 设计的大多数趋势不同,Broadcast 2000 使用剪切和粘贴策略。这种机制多年来实现了精确编辑,但似乎已经过时了。
选择视频的最佳方法是通过擦洗:快进、倒带和插入标签。然后,您通过双击时间栏来选择标签之间的区域。选择音频可以通过查看波形和突出显示来完成。Broadcast 2000 成功的关键是标签的使用。老手可能还记得名为“Soundedit 16”的东西,它使用了相同的标签范例。在这里,我们将其应用于视频。
我们在支持方面经常收到的另一封电子邮件通常是“无法隔离轨道进行编辑”。音频范例再次应用于视频。在老式的 24 轨音频卡座上,您有 24 个“输入/重放”开关。这允许选定的轨道播放,同时允许在不同的轨道上录制。在 Broadcast 2000 中,通过播放和录制切换来提供隔离轨道以进行编辑和播放的功能。
在每个轨道上都有一个播放和录制切换,它允许只有单个轨道受到光标选择的影响。因此,编辑是纯粹自由式的,音频轨道可以与视频轨道互换。
最棒的是,编辑时,更改永远不会影响源文件。这使得在瞬间重新定位数小时的素材成为可能,并且撤消命令的限制高达 500 次。
Linux 圈中很少讨论的持久存储技术之一是保存指向磁盘上已有资源的指针列表的概念。Broadcast 2000 有两种持久存储机制:指针存储和渲染。“另存为”功能保存一个文本文件,其中包含文件名和位置。专业人士将文本文件称为“编辑决定列表”。许多学生为了让编辑决定列表在他们室友的计算机上播放而大学不及格。
EDL 仅存储足够的信息以从磁盘上的资源重建节目,但不足以跨计算机传输。要跨计算机传输节目,您需要渲染。渲染会生成可在平台上播放的二进制文件。
对于渲染后的电影,最后阶段是为互联网压缩。事实证明,互联网预告片和剪辑中 90% 的制作都始于渲染为未压缩 RGB 母版的未压缩 RGB,并使用任何流行的专有压缩器进行压缩。在 Linux 中,最后阶段将是 RealVideo、Mpeg2Movie 或 LAME。虽然不如专有压缩器流行,但这些 Linux 压缩器实际上可以产生相当的质量。
因此,您刚刚从麻省理工学院毕业,并且非常聪明。您的可支配收入远远超过您的同龄人,并且您想做不可能的事情。您想构建一台可以制作电视节目的 Linux 机器。
理想的目标系统应该能够进行未压缩、全分辨率的视频播放。即使缩小到互联网,性能较低的系统也会产生质量较低的节目。
这自然会导致 45MB/秒的硬盘驱动器要求和 50MB/秒的显卡要求。这些可以通过在 RAID 控制器卡上串联多个 7,200RPM 硬盘驱动器来实现。在办公室,我们通过 SCSI 控制器上的两个 10,000RPM 驱动器实现了 75MB/秒的速度。Promise 的 RAID 控制器使用 IDE 驱动器实现了 70MB/秒的速度。
根据节目时长,您将需要 80GB 到 200GB 的空间。200GB IDE RAID 可以提供 107 分钟的播放时间,价格不到 700 美元。但是,如果您像我在 Micron 的朋友一样,您将构建一台带有千兆以太网的独立视频服务器。持久存储的成本正在迅速下降。
Broadcast 2000 使用软件来产生效果。颜色校正和合成每小时 100,000 帧的电影需要蛮力。Linux 软件的评级往往基于它运行的最低 CPU 和屏幕尺寸。然而,在视频世界中,放纵是有回报的。建议使用运行频率高于 700MHz 的双 CPU。Broadcast 2000 非常积极地征用第二个 CPU,以至于您在看到双 CPU 的实际效果后将无法使用单处理器机器。
尽管有这些硬件要求,但 RAM 建议仅为 256MB 的 133MHz RAM。RAM 仅在您录制视频时才有利。当您录制视频时,Broadcast 2000 会在内存中缓冲无限数量的帧,从而消除硬盘驱动器延迟。然而,对于大型 RAM 系统,操作系统会尝试缓存每个磁盘操作。在我们的 768MB 测试系统上,未压缩的视频捕获偶尔会冻结几秒钟,而操作系统会刷新 700 兆的磁盘写入。当然,也要避免使用交换空间。视频捕获有很多选项。
捕获 |硬件 |推荐驱动程序<\n> 选项 | |--------------------------------------------------------------------------------------------------------未压缩 |haupauge |Video4Linux 2模拟 |WinTV 模拟 |----------------------------------------------------火线 |通用 |ieee1394.sourceforge.net----------------------------------------------------压缩 |LML 33 |linuxmedialabs.com模拟 | |
使用 LML33 硬件可以实现向 VCR 的视频播放。
每个驱动程序都有一个小故障。您会发现,火线驱动程序在不重新加载模块集几次的情况下无法检测到便携式摄像机。Video4Linux 1 驱动程序会丢帧。Video4Linux 2 驱动程序会丢失同步。LML33 会交换字段顺序。但总的来说,可以使用上面列出的任何解决方案经济地使 Linux 系统生成专业质量的视频。
大多数模拟视频捕获驱动程序都是逆向工程、坚持不懈和延迟毕业的结果。曾经有人认为,公司最终会资助他们自己的 Linux 驱动程序,或者至少记录芯片组。但这从未发生过。这与视频硬件的高成本相结合,将阻止 Broadcast 2000 与大多数视频 I/O 卡一起工作。
好消息是,新的数字电视标准消除了板卡之间质量的差异,并且不再需要许多具有不同编码约定的驱动程序。当前驱动程序规范中的每个成员都使用自己的编码约定,这需要大约三个月的时间来测试和符合。当前的驱动程序使用从 DMA、FIFO、读/写原语、stdio 原语、select 调用、函数覆盖和回调的所有内容。这是因为每张卡的模拟视频质量都会发生变化。在数字系统下,程序员可以通过希望仅使用一种编码约定来访问最高质量的视频。
Broadcast 2000 的下一步发展是根据未来的 GUI 趋势更新界面,随着新的内核和 C 库约定出现而更新函数原型,资助之前的开发,并希望提供新功能。
安装不会变得更容易。安装困难的原因在于任何给定时间都有许多不同的库点版本在流通。虽然激进的配置脚本和 #ifdef 可以暂时赶上碎片,但真正的解决方案是整合许多库和子库,整合许多内核选项(如“如果检测到则使用内存”)并预配置系统。在 2000 年 10 月,几家公司出售了用于电影制作的预配置 Linux 机器。其中一家是 Linux Media Arts。其他人可能会加入 Linux 平台上媒体创作的艺术。
现在的趋势是将 Linux 界面与用户交互隔离,方法是将其嵌入到微控制器、设备和计算机基础设施中。Broadcast 2000 的部分理由是为 Linux 发明以前从未梦想过的角色。这一切都与播放电影的网络服务器和播放混响的路由器有关。正如一位同事曾经在关于 Linux 机器的 3D 网络摄像头的话题上所说,“这听起来像是只有微软才会做的事情。”
