Hi everyone,

I have a problem when I used av_write_frame() or av_interleaved_write_frame() 
for TS muxer.  The sequence of video and audio is not what I wanted to have.

I was trying to output a video frame, and then an audio frame which has similar 
dts or pts with that video frame. Loop this process, if their dts are different 
too much, then output a video or audio frame which is slower than the other. 
However, I can not control the output frame sequence when I used the 
av_write_frame() or av_interleaved_write_frame().

For example, for my situation, video rate:128kbps, audio:32kbps, then the final 
output frame sequence I got was: 10-12 video frames and then 10 audio frames(16 
188-ts-packets). Then, when I use VLC to play this stream, it always said that 
like "buffer too early (-40364), down-sampling". After 10 hours, the audio and 
video is in-synchronized, and audio is about 5 seconds earlier than video.

I have tried let VLC to transcode the same stream and output stream with the 
same parameters. I check VLC'S output stream sequence: video frame-> audio 
frame->video frame->audio->frame->video frame-> audio frame->video frame->video 
frame... ....

So I am wondering how to control the muxer in ffmpeg to get an output stream 
with the correct sequence which I want to have.

Thanks in advance.


Best regards,

Li
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to