新项目 - 来自实验室的新鲜成果
本月首先介绍 Bombono:一款简单易用的 DVD 制作软件,它不像同领域的其他软件那样具有陡峭的学习曲线。根据其网站介绍:“Bombono DVD 是一款 Linux 平台的 DVD 制作程序。它易于使用,并拥有美观且简洁的图形用户界面 (GUI)。”
同样来自该网站,Bombono DVD 的主要功能包括:
出色的 MPEG 查看器:时间线和监视器。
真正的 WYSIWYG 菜单编辑器,带有实时缩略图。
便捷的拖放支持。
您可以制作到文件夹、创建 ISO 镜像或直接刻录到 DVD。
重新制作:您可以从 DVD 光盘导入视频。
安装
Ubuntu、SUSE、ALT Linux 和 Arch Linux 提供了二进制文件,以及常用的源代码 tarball。对于那些从源代码编译的用户,有一些相当严格的库要求。文档列出了以下内容:
gtk+ >= 2.8 (www.gtk.org)
gtkmm >= 2.4 (www.gtkmm.org)
SCons >= 0.96.1 (www.scons.org)
GraphicsMagick >= 1.1.7 (www.graphicsmagick.org)
mjpegtools >= 1.8.0 (mjpeg.sourceforge.net)
libdvdread (www.dtek.chalmers.se/groups/dvd)
dvdauthor (dvdauthor.sourceforge.net)
dvd+rw-tools (fy.chalmers.se/~appro/linux/DVD+RW)
toolame (sourceforge.net/projects/toolame)
libxml++ (libxmlplusplus.sourceforge.net)
就我需要在 Kubuntu 系统上安装的软件包而言(显然有些已经安装到位),我需要:scons、libglibmm-2.4-dev、libxml++2.6-dev、libmjpegtools-dev、graphicsmagick、libgraphicsmagick1、libgraphicsmagick++1、libgraphicsmagick++1-dev 和 libgtkmm-2.4-dev。
访问网站,获取最新的 tarball,解压并打开新文件夹中的终端。输入
$ scons
如果您的发行版使用 sudo,请输入
$ sudo scons install
否则,请输入
$ su # scons install
编译完成后,您将在菜单中找到它,或者可以使用以下命令启动 Bombono:
$ bombono-dvd
用法
在我们深入之前,请注意:您只能使用 MPEG-2 .vob 文件。我知道这很遗憾,所以如果您有 DivX 等文件想要包含,您必须先转换它们。希望未来的版本将支持 DivX、Xvid、MPEG-4 等格式,但目前,您只能使用 .vob 支持。
一旦您有了 .vob 文件,启动程序,点击“Source(源)”选项卡,并查看左侧的文件浏览器。找到您要使用的文件,然后将它们拖到“Media List(媒体列表)”窗格中,或者点击蓝色的“+”号。当我们在源部分时,当视频被高亮显示时,点击“Edit(编辑)”按钮,您可以利用下方的时间线将文件分割成章节(稍后详细介绍)。
现在,让我们转到菜单选项卡。点击“Menu List(菜单列表)”窗格中的“+”号以创建一个新菜单。然后,您可以添加一个菜单对象以链接到视频以及一些附带文本。要添加菜单对象,请选择您要添加的对象的形状,然后点击它旁边的“+”号。创建对象后,您可以将其在屏幕上移动或调整大小。现在,让我们创建一个链接,将菜单对象链接到您要运行的视频。
右键单击对象并选择“Link(链接)”→“(视频名称)”。请注意,如果您已编辑视频以包含章节,这些章节也可以链接,但我没有空间在这里介绍它。
现在,让我们添加一些文本。您将处于操作菜单对象的标准模式,由高亮显示的光标指示,但按下 T 键(T 代表文本),您就可以开始了。点击对象旁边,您将看到一个闪烁的光标,准备好让您开始输入。如果您不喜欢字体大小或颜色,您可以在上面的菜单中更改它们。
完成菜单后,让我们回到编辑——更具体地说,制作章节。返回到“Source(源)”选项卡,并返回到“Media List(媒体列表)”窗格。选择您要添加章节的文件,然后点击绿色的“Edit(编辑)”按钮。您的文件现在将加载到下方的大时间线中。
似乎当您编辑章节时,如果屏幕上的静止图像不明显您在哪里,您需要在一个单独的播放器中播放视频并记下每个点的时间,因为视频似乎不会在窗口本身中播放(尽管我可能是错的,并且遗漏了一些显而易见的东西)。但是,我发现这并不是一项艰巨的任务,所以不应该太担心。
在时间线部分,顶部的滑块用于在视频内部浏览,屏幕上的图像将根据时间位置更新。如果您向左看,强大的蓝色数字读数将为您提供滑块所在的确切时间。要标记章节,请点击时间读数下方的蓝色按钮(我将其称为“章节标记”),章节点将在滑块下方创建,并标记有与章节标记相同的图标。如果您想微调此位置,您也可以滑动章节点,如果您不小心制作了一个,您可以右键单击并选择“Delete Chapter Point(删除章节点)”。
当您对即将制作的 DVD 感到满意时,请前往“Output(输出)”选项卡。在这里,您可以选择写入 DVD 文件夹或在硬盘驱动器上制作光盘映像,或者您可以直接将项目刻录到 DVD。
当然,这个项目在真正为主流做好准备之前,还有一些障碍需要克服。最紧迫的问题是,目前您只能使用 .vob 文件。这已经足够合理了,但是当考虑到转换文件这个经常棘手的任务时,像我这样的大多数懒人都会把整个工作扔进“太难”的篮子里,然后回去玩 半条命。只有当您可以添加几乎任何视频文件时,它才会真正准备就绪。当然,这需要对设计和编码进行一些可能的结构性更改——也许在刻录之前添加一个视频转换阶段——但这仍然是必要的。
尽管如此,作者们采取了一种我尊重的良好方法——一开始保持紧凑和简单,并使用他们确实拥有的元素正常工作,而不是创建一个具有大量功能的不稳定的混乱局面。这个项目是简单而令人非常满意的,一旦它成熟,它可能会成为发行版的主流。我期待着最终的成品。
根据 BuGLe 的网站介绍:“BuGLe 是一款用于 OpenGL 调试的工具,它以包装库的形式实现,位于您的程序和 OpenGL 之间。” 虽然它仍处于开发阶段,但该网站声明它已经可以执行以下操作:
转储所有 GL 调用的文本日志。
截取屏幕截图或捕获视频。
在每次调用后调用 glGetError 以检查错误,并包装 glGetError,以便此检查对您的程序透明。
捕获和显示统计信息(例如帧率)。
强制线框模式。
从驱动程序内部的段错误中恢复回溯,即使驱动程序是在没有符号的情况下编译的。
“此外,还有一个调试器 (gldb-gui) 可以让您设置断点并检查回溯。它还可以让您检查 OpenGL 状态、着色器、纹理、缓冲区等,并进入 gdb 以查看哪里出了问题。”
安装
BuGLe 目前仅提供源代码,因此请访问网站并获取最新的 tarball。至于要求,该网站表示您需要以下内容:
GCC 3.2 或更高版本(4.0 已损坏,但 4.1 可以工作)。
FFmpeg 用于视频捕获。
建议使用 GNU readline 用于 gldb 中的历史记录编辑。
gldb-gui 需要 GTK+。
强烈建议 gldb-gui 使用 GtkGLExt 和 GLEW(没有它们,纹理显示将无法工作)。
我发现我还必须获取 libgtkglext1-dev 以及 libreadline5-dev 才能访问一些相当重要的功能。我无法让我的系统识别 libavcodec,这可能在稍后给我带来一些问题。
至于编译,文档说您只需运行make开始,但我发现我必须首先运行configure脚本,否则make将返回错误。如果我是对的,那么您需要运行以下命令:
$ ./configure $ make
如果您的发行版使用 sudo
$ sudo make install
如果您的发行版不使用 sudo
$ su # make install
我将直接引用文档的下一部分:“接下来,您需要为将运行 bugle 的用户安装一些文件。创建一个目录 $HOME/.bugle,并将 doc/examples/filters 和 doc/examples/statistics 复制到其中。”
用法
好吧,我必须向您坦白,我没有让 BuGLe 按照我想要的方式运行(例如截取屏幕截图、视频等)。也许是 configure 脚本的问题,也许是 libavcodec 没有检测到,或者也许我只是太笨了,错过了界面中的某些东西。我不知道。那么我为什么要仍然突出显示这个程序呢?我在这里看到了一些巨大的潜力,以及未来对于 IT 行业的任何人来说都可能非常强大的东西。
我真正能做的就是将您指向 BuGLe 的方向,并希望您比我更幸运。我确实让一些功能工作了,包括一些调试,所以我至少会向您展示一些像我这样的渺小凡人设法掌握的基础知识。
要在命令行运行 BuGLe,请使用以下语法:
$ LD_PRELOAD=libbugle.so your-program [plus any arguments]
要使用 GUI 版本(更容易),请使用以下语法:
$ gldb-gui your-program [plus any arguments]
最后一个命令启动 BuGLe 的 GUI,但您的程序尚未运行。在运行任何程序之前,您可以应用某些参数,例如在指定的 OpenGL 函数上设置断点。有关此信息,请查看网站的文档(尽管在撰写本文时,它似乎更适合其他开发人员而不是用户)。
要实际运行您的程序,只需点击“Run(运行)”→“Run(运行)”即可。您可以通过点击“Run(运行)”→“Stop(停止)”手动停止程序。程序可以通过“Run(运行)”→“Continue(继续)”继续,或者通过“Run(运行)”→“Step(步进)”继续到下一个 OpenGL 函数调用,并通过“Run(运行)”→“Kill(终止)”终止。同样值得一看的是调试控制台,位于“Run(运行)”→“Attach GDB(附加 GDB)”下,它有自己独特的功能和命令集。
虽然我自己无法弄清楚如何让这些运行,但在在线文档中,我找到了以下使用屏幕截图/视频捕获过滤器集的说明。
对于直接屏幕截图:
filterset screenshot { filename "screenshot.ppm" key_screenshot "C-A-S-S" }
对于捕获的视频:
filterset screenshot C-V inactive { video "yes" filename "video.avi" codec "mpeg4" bitrate "1000000" allframes "no" }
我可能在 BuGLe 的更大功能方面不太走运,但这是早期阶段的软件。当这个项目成熟时,编码及其产生的可能性无疑将非常强大——无论您是测试最新驱动程序的图形开发人员,还是像我这样的记者,希望从程序内部截取屏幕截图。当这种情况发生时,可能会有人出现第二个 GUI,以另一种方式使用其功能,例如家庭用户拍摄他们正在运行的任何程序的视频。无论哪种方式,这个项目的潜在用途都是巨大的。
正在酝酿新鲜、创新或令人脑洞大开的东西吗?发送电子邮件至 newprojects@linuxjournal.com。
John Knight 是一位 25 岁的鼓手和攀岩狂热爱好者,来自世界上最偏远的城市——澳大利亚珀斯。他通常要么埋头于 Audacity 屏幕中,要么猛敲底鼓,敲到无法辨认。