J'écris actuellement un simple encodeur vidéo Theora, qui utilise libogg, libvorbis et libtheora. Actuellement, je peux soumettre des images au codeur Theora, et des échantillons PCM au codeur Vorbis, passer les paquets résultants aux flux Ogg (un pour Theora et un pour Vorbis) et extraire les pages. Lorsque le programme démarre, il rince d'abord les en-têtes du codeur Theora, puis du codeur Vorbis vers le fichier de sortie (les deux flux ont évidemment des numéros de série uniques). Ensuite, j'écris des pages entrelacées dans le fichier à partir des deux flux.Comment multiplexer les flux Vorbis et Theora en utilisant libogg
Lors de l'écriture juste la vidéo, ou tout simplement l'audio, je suis capable de lire la sortie dans mplayer très bien, mais lorsque je tente d'écrire à la fois, je reçois le texte suivant:
Ogg error demuxer: nous rencontré un flux inconnu
Je devine que je fais le multiplexage mal. J'ai lu la documentation pour les flux de multiplexage sur Xiph.org, et je ne vois pas où je diffère. Je ne peux pas trouver d'exemple de code pour le faire, à moins de passer par la source d'un encodeur open-source (que j'ai du mal à comprendre). Serait-il possible d'expliquer comment multiplexer correctement les flux en utilisant libogg? J'essaye de faire cela en C sur Ubuntu 10.04, en utilisant les librairies du dépôt Ubuntu.
Merci beaucoup d'avance!
Tom