我目前正在写一个简单的Theora视频编码器,它使用libogg,libvorbis和libtheora复Vorbis和Theora格式流。目前,我可以提交帧的编码器Theora格式,以及PCM样品的Vorbis编码器,通过所产生的数据包的Ogg流(一个用于Theora格式和一个用于Vorbis格式),并得到了页面。如何使用libogg
程序启动时,它首先刷新从Theora格式编码器头,然后从Vorbis编码器输出文件(显然,两个流具有唯一的序列号)。然后,我将交错页面从两个流写入文件。
当写只是视频,或只是声音,我能播放在mplayer的输出就好了,但是当我试图写这两个,我得到如下:
奥格分路器的错误:我们遇见未知的流
我猜我做的是错的复用。我已经阅读了Xiph.org上的多路复用流的文档,并且我看不到我有什么不同。我似乎无法找到任何的示例代码这样做的,短的,通过一个开源编码器的源(这是我遇到一些麻烦了解)去。任何人都可以解释如何使用libogg正确地复用流?我正在尝试在Ubuntu 10.04的C上使用Ubuntu存储库中的库进行此操作。
非常感谢提前!
汤姆