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".