探索 DirectShow 视频混合渲染器的强大功能
1. DES 剪辑与 DirectShow 基础
DESClip 虽不能在短代码中涵盖 DES 的所有内容,但它覆盖了 DES 的基本要素。理论上,我们能够借助 DES 构建类似 Adobe Premiere 的丰富编辑程序,二者的差异主要体现在用户界面上。Adobe Premiere 让时间线管理变得直观,便于用户更改源剪辑、过渡效果等。不过,真正让电影编辑成为可能的并非这些界面元素,而是 DirectShow。掌握了 DirectShow,我们就能构建自己的复杂编辑应用程序。
2. 视频混合渲染器(VMR)概述
视频渲染在很大程度上依赖图形硬件,随着硬件的发展,DirectShow 不断引入新的视频渲染器。其中,视频混合渲染器(VMR)是一个重要的存在。VMR 最早随 Windows XP 推出,如今作为 DirectX 9 的一部分,在所有支持 DirectX 9 的操作系统上都能使用。这里主要探讨 VMR 9,它是 DirectX 9 中的版本,而 VMR 7 仅适用于基于 Windows XP 的系统。
VMR 的基本功能是将多个视频流混合成一个视频流并进行显示。它为程序员提供了一系列接口,能对每个输入视频流的显示进行精细控制,包括控制透明度实现淡入淡出效果,以及控制视频流在输出中的位置。此外,VMR 还能将静态图像混合到视频流中,或者将输出发送到 3D 模型上。同时,它还能逐流交互式地改变视频流的色调、饱和度、亮度和对比度。
不过,VMR 虽然功能强大,但对系统资源要求较高,在非顶级计算机上,同时混合多个视频流可能会占用近 100% 的 CPU。