[Live-devel] .m4v / .mp3 Synchronization

Michael Russell mrussell at frontiernet.net
Thu Jul 2 16:26:07 PDT 2009


Hi Ross -

I am prototyping a streaming application using an MPEG-1, Layer 3 (.mp3) 
audio file and an MPEG-4 video elementary stream (.m4v) file as inputs.  
I am doing this to simulate our actual encoder outputs since they are 
not yet available.  I recorded these files from two different physical 
sources on two different days.  When I wrap them into an MPEG-2 
transport stream, I experience synchronization issues.  I seem to be 
dropping a lot of audio packets, making it sound like the audio is 
"jumping ahead" to catch up to the video (VLC client).

Here is a depiction of what I am doing:


       |ByteStream|  |MPEG4   |  |          |
.m4v ->|FileSource|->|Video   |->|          |
file                 |Stream  |  |          |
                     |Framer  |  |MPEG2     |  |MPEG2     |  |      |
                                 |Transport |->|Transport |  |Simple|
                                 |Stream    |  |Stream    |->|RTP   |
                     |MPEG1or2|  |From      |  |Framer    |  |Sink  |
       |ByteStream|  |Audio   |  |ESSource  |                |      |
.mp3 ->|FileSource|->|Stream  |->|          |
file                 |Framer  |  |          |


(I didn't show the RTCP Instance associated with my RTP Sink)

Am I doing something wrong here?  How does Live555 ensure synchronization?

Note that if I "disconnect" one of the inputs, the resulting transport 
stream (audio or video) plays fine in my VLC client.

Thanks a ton,
Mike.





More information about the live-devel mailing list