You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After a couple or tests with different inputs and outputs, I just realized there was always some frozen frames, (no matter what the input/output combination was). Digging a bit on the code, I figured out that if I set the timeout to 0 in outputs/output.py like this:
def _video_pipeline_start(self):
'''
The standard start to the pipeline string for video.
It starts with intervideosrc, which accepts video from the source.
'''
# The large timeout holds any stuck frame for 24 hours (basically, a very long time)
# This is optional, but prevents it from going black when it's better to show the last frame.
#timeout = Gst.SECOND * 60 * 60 * 24
timeout = 0
return ('intervideosrc name=intervideosrc timeout=%d ! videoconvert ! videoscale ! '
'videorate ! capsfilter name=capsfilter ! ' % timeout)
The output stream is always having some black frames (Can be more or less depending on the video caps, but they're always there). Example with this config file:
Thanks for the information. It is something we have noticed. Your very detailed analysis does show that over time due to the way inter elements split the stream that it could cause black frames. We using brave this results in overtime the A/V will drift out of sync.
As for this repo, we have a version that has not been yet merged into here that replaces the intervideo(sink/src) with the interpipe(sink/src) available from here: https://github.com/RidgeRun/gst-interpipe
I will be looking forward to see that version with interpipe, in fact was one of the ideas to possibly solve the issue from my side. Just so you know, later checks with non virtualized and more powerful machine, showed a far better performance, but still black frames from time to time (similar to the basic pipeline on my example).
Thank you very much for your work and Happy New Year!
Hi there, congrats for the project!
After a couple or tests with different inputs and outputs, I just realized there was always some frozen frames, (no matter what the input/output combination was). Digging a bit on the code, I figured out that if I set the timeout to 0 in outputs/output.py like this:
The output stream is always having some black frames (Can be more or less depending on the video caps, but they're always there). Example with this config file:
Output of:
ffmpeg -i tcp://127.0.1.1:7000 -vf "blackdetect=d=0:pix_th=0.00" -an -f null -
I tested separately an example pipleline with Gstreamer like this:
gst-launch-1.0 videotestsrc is-live=1 ! video/x-raw,width=1280,height=720,framerate=30/1 ! videoconvert ! intervideosink name=psink intervideosrc name=psrc timeout=0 ! video/x-raw,width=1280,height=720,framerate=30/1 ! videoconvert ! autovideosink
And, although its not behaving "perfect" (1 or 2 black/hour), it seems to be "loosing" less data than Brave.
Im running my tests in different computers, with/whithout virtual machines and with/without Docker, with minimal differences
Now my question is, Are you aware of this behave? Did you manage to solve or mitigate it?
Best Regards and thank you very much
The text was updated successfully, but these errors were encountered: