Open glennolsen opened 9 years ago
bmdplay is really simple and I'm adding complexity as the need arises, I never had this problem though if no data is fed normally bmdplay would just quit (so you can put it on a simple loop).
Hi Glennolsen, maybe you should consider to instruct avconv to exit if errors occur and restart (simple while/do loop). -xerror option should handle this if I'm not wrong
Hi lu-zero, Is this behavior still the same. I also got this issue, do we have a solution for this behavior. Thanks.
If the stream is interrupted the chain of programs should be terminated and then restarted.
Exactly how are you causing this condition? Could you make a sample file to reproduce the issue in a predictable way?
I have plans to rewrite some of the bmdplay to rely less on avconv (and not die because piping 4K content makes memcpying the buffers too wasteful), but I'm currently a bit busy with my paying job :).
Hi,
This is not an issue of bmdplay. I use "another" project than avconv and I use librtmp with that. I modified librtmp to resume after net interrupts in meanwhile making sender side buffer and push the delayed packets. Using bmdplay with a suitable buffer works like a arq protocol.
You can provide the patches to Libav as well : P
I released on the "other" project, they didnt like the coding :) Maybe I send you, you can review it. (BTW, it is really dirty coding - as I am capable of :D -, but does the job.)
Thanks for quick response. It's an HLS stream that I make source to avconv and pipe to the bmdplay. when there is a fluctuation in the network bandwidth or some other reason the input video gets stuck. Then suddenly the video output from the bmdplay freezes. Normally the source quickly get recovers and the start steaming but what I can see a frozen frame from the The memory usage of bmdplay increases and at some point. Following message appears. "Queue size **** problems ahead" In the meantime the RAM usage of bmdplay increases until it reaches near 100% and it get killed automatically. The glitch of video source makes the bmdplay to hold two to three minutes to get resumed when I use a infinite loop to make it run again.
Using avconv to pull an RTMP stream off of the rtmp Nginx module and sent it to bmdplay for output on a Blackmagic SDI card. If the RTMP stream is interrupted at all avconv will display non monotnic DTS errors (makes sense) and eventually settles down and is happy again, but it appears that bmdplay stop receiving from the pipe and avconv starts to buffer. I am starting to look into code, but is bmdplay capable of handling stream interruptions gracefully? Is there an option flag I am missing?
avconv -r 30 -max_delay 1000 -probesize 500000 -analyzeduration 3000000 -fflags nobuffer -i rtmp://localhost:1935/AV2015Local/stream1 -f nut -strict experimental -c:v copy -c:a pcm_s16le - | /home/vidcontrol/Builds/'Blackmagic DeckLink SDK 10.4.1'/Linux/Samples/bmdtools-master/bmdplay -m 13 -C 0 -f pipe:0
Glenn