>From: BIGLER Don (Framatome)
>Sent: 27 February 2019 14:55
>To: libav-user@ffmpeg.org
>Subject: [Libav-user] Multithreaded Asynchronous Encoding/Muxing
>
>All,
>
>I am writing an application that displays, encodes, and muxes live video using 
>libav as the backend.  The audio and video encoding occurs asynchronously in 
>the background, each in its own thread, such that the encoded packets arrive 
>to the 
>av_interleaved_write_frame() function call at different times.  H.264 video 
>encoding by itself works fine.  However when I add audio, the audio is out of 
>sync from the video even though the audio and video pts are in sync (from 
>avdevice 
>using >the matroska muxer).  The cause of the problem is not clear to me.  
>Specifically, here are my questions:
>
>1.     Can the av_interleaved_write_frame() function handle multithreaded 
>asynchronous calls for audio and video streams?  
>2.     The transcoding example uses a filter graph using buffer/abuffer 
>filters.  My current implementation does not use the buffer/abuffer filters 
>because I am not applying any filters before encoding.  Are they required for 
>my situation?
>3.     The encoding happens randomly within the stream such that the first pts 
>received by the muxer is not zero.  Is this required?
>
>I will greatly appreciate any assistance!
>
>Regards,
>Don Bigler

Hi Don,

I don’t think that av_interleaved_write_frame() is thread safe. What you could 
do is gather video and audio in a thread safe queue, possibly order the 
packets, and then in separate thread send from that queue to the 
av_interleaved_write_frame(). For me this works fine. 

Kind regards,
Strahinja 
_______________________________________________
Libav-user mailing list
Libav-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/libav-user

To unsubscribe, visit link above, or email
libav-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to