我目前正在寫一個簡單的Theora視頻編碼器,它使用libogg,libvorbis和libtheora復Vorbis和Theora格式流。目前,我可以提交幀的編碼器Theora格式,以及PCM樣品的Vorbis編碼器,通過所產生的數據包的Ogg流(一個用於Theora格式和一個用於Vorbis格式),並得到了頁面。如何使用libogg
程序啓動時,它首先刷新從Theora格式編碼器頭,然後從Vorbis編碼器輸出文件(顯然,兩個流具有唯一的序列號)。然後,我將交錯頁面從兩個流寫入文件。
當寫只是視頻,或只是聲音,我能播放在mplayer的輸出就好了,但是當我試圖寫這兩個,我得到如下:
奧格分路器的錯誤:我們遇見未知的流
我猜我做的是錯的複用。我已經閱讀了Xiph.org上的多路複用流的文檔,並且我看不到我有什麼不同。我似乎無法找到任何的示例代碼這樣做的,短的,通過一個開源編碼器的源(這是我遇到一些麻煩了解)去。任何人都可以解釋如何使用libogg正確地複用流?我正在嘗試在Ubuntu 10.04的C上使用Ubuntu存儲庫中的庫進行此操作。
非常感謝提前!
湯姆