[Libav-user] Synchronization of audio and video streams during muxing
Michael IV
explomaster at gmail.com
Sat Mar 17 18:34:03 EET 2018
Hi, I am rewriting some messy FFMPEG code I wrote a while ago.
My reference is muxing.c
The difference I have is that my audio stream comes from file (AAC) ,while
video packets
come from generated pixel frame.
I mostly have it working,but my problem is interleaved packets write.If I
do it like the example,that's
:
int cc = av_compare_ts(mVideoOutStream.next_pts,
mVideoOutStream.enc->time_base,
mAudioOutStream.next_pts, mAudioOutStream.enc->time_base);
if (mAudioOutStream.st == NULL || cc <= 0)
{
//write video
}
else
{
//write audo.
}
I am not getting correct results.
The only way it looks fine is if I do it like this:
//Write video frame first ,always!
Then:
if(cc > 0)
{
//write audio packets.
}
I don't understand why it works only in this case. From what I
understood av_interleaved_write_frame() should take care of the correct
interleaving. But I see that I must write video frames always,and audio
packets only when av_compare_ts is greater than zero.
Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20180317/a5a31ff0/attachment.html>
More information about the Libav-user
mailing list