On Tue, 27 Aug 2019, Andreas Håkon wrote:

Hi Marton,


‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, 27 de August de 2019 9:34, Marton Balint <c...@passwd.hu> wrote:

Fixes DTS < PCR errors with this command line:

./ffmpeg -loglevel verbose -y -f lavfi -i \
"testsrc=s=64x64:d=20,split=2[out0][tmp1];[tmp1]vflip[out1];sine=d=20,asetnsamples=1000[out2]"
 \
-flags +bitexact -fflags +bitexact -sws_flags +accurate_rnd+bitexact \
-codec:v libx264 -codec:a mp2 -b:a 32k -pix_fmt yuv420p \
-map '0:v:0' \
-map '0:v:1' \
-map '0:a:0' \
-muxrate 800000 \
-program st=0:st=2 -program st=1:st=2 -program st=2 -program st=0 -f mpegts 
out1.ts

diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index 047961cdea..0678657d09 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
[...]

This change breaks my interleaved patch (waiting for your review).

It will require some changes. I will respond in the proper thread.


Please, note that the main problem at time with the mpegts muxer is that all 
PES packets are
written sequentially. And this generates a lot of problems when the video PES 
packets are large,
or when the audio packets aren't flushed at regular intervals. If you prefer to 
improve the
current sequential mode before you do anything with the interleaved mode, then 
I give this
suggestion: Use a PES SIZE INTERVAL for audio packets instead of calculating a 
TIME DELAY. With
CBR audio steams, every audio PES packet has the same payload size.

I am not sure what you mean when you say PES size interval, but if you are referring to the size of the PES packet - that is exactly what we had in the very beginning, and it was not sufficent because for low bitrate streams when combining small audio packets to a PES packet it took too long time, and in order to generate a proper TS we have to make sure that we don't delay the audio packets too much, becuase if we do, then it will arrive at the destination later then the PCR which makes presentation impossible.

So that is why timestamp based checks were added, but those checks were not sufficent.

This is a completely different issue from interleaving. Interleaving is basically ticket #912.

Regards,
Marton
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Reply via email to