[theora] Ripping theora stream

Stefano Luceri stefano.luceri at agilex.it
Fri Aug 19 03:45:18 PDT 2011


The problem of fast playing was a fault in writing down the packets. I set
up granulepos = 0 for all packets, most players didn't even open the file,
only mplayer open/play the file ad maximum speed.

I solved the problem checking if a packet is a keyframe using:

th_packet_iskeyframe(&op)

and adjusting consequently granulepos.

Such solution is not very fast but the ogg file produced seems to be ok and
seekable.

Stefano


>> Now I've the following problem, playing the ogg file is very fast, is 
>> there a way in theora to 'control' frame rate?

>The frame rate is written in the setup header.  You should check that frame
rate and see if it is correct.  One possibility is that the transmitter is
lying to >you about the frame rate.  Another possibility is that some frames
are getting lost (RTP is a lossy protocol).  When a frame is lost, you
should probably insert >an empty (size 0) packet in the Ogg stream so that
you don't lose temporal synchronization.

>> Moreover my next step consists in muxing audio/video (I can save it as 
>> a separate WAV for now), what tool or library do you suggest for muxing?

>You can do the muxing using liboggz (it's not much more code than you have
already).



More information about the theora mailing list