开发指南
中的 和 库是访问大多数视频文件格式的一
个很好的方法。不幸的是,在开发您自己的程序时,这套库基本上没有提供什
么实际的文档可以用来作为参考(至少我没有找到任何文档),并且它的例程
也并没有太多的帮助。
这种情况意味着,当我在最近某个项目中需要用到
库时,需要作很多试验来搞清楚怎样使用它们。这里是我所学习的--希望我
做的这些能够帮助一些人,以免他们重蹈我的覆辙,作同样的试验,遇到同样
的错误。你还可以从这里下载一个 程序。我将要公开的这部分代码需要
版本的 库中的 的支持(我正在写最
新版本)。如果您发现以后的版本与我写的程序不能兼容,请告知我。
在这个文档里,我仅仅涉及到如何从文件中读入视频流;音频流使用几乎同
样的方法可以工作的很好,不过,我并没有实际使用过它们,所以,我没于办
法提供任何示例代码。
或许您会觉得奇怪,为什么需要两个库文件 和 :
许多视频文件格式( 就是一个最好的例子)实际上并没有明确指出应该使
用哪种编码来解析音频和视频数据;它们只是定义了音频流和视频流(或者,
有可能是多个音频视频流)如何被绑定在一个文件里面。这就是为什么有时候,
当你打开了一个 文件时,你只能听到声音,却不能看到图象--因为你的
系统没有安装合适的视频解码器。所以, 用来处理解析视频文件
并将包含在其中的流分离出来, 而 则处理原始音频和视频流的解
码。
打开视频文件:
首先第一件事情--让我们来看看怎样打开一个视频文件并从中得到流。我们
要做的第一件事情就是初始化
!
这一步注册库中含有的所有可用的文件格式和编码器,这样当打开一个文件时,
它们才能够自动选择相应的文件格式和编码器。要注意你只需调用一次
,所以,尽可能的在你的初始代码中使用它。如果你愿意,
你可以仅仅注册个人的文件格式和编码,不过,通常你不得不这么做却没有什
么原因。
下一步,打开文件:
"#$%&"#%!
$'&($)*+*!
打开视频文件
$$,(-"#%.($./0../0 1)
'$ !不能打开此文件