Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Continue after stream interruption #62

Open
glennolsen opened this issue Jul 11, 2015 · 8 comments
Open

Continue after stream interruption #62

glennolsen opened this issue Jul 11, 2015 · 8 comments

Comments

@glennolsen
Copy link

glennolsen commented Jul 11, 2015

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

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/24156690-continue-after-stream-interruption?utm_campaign=plugin&utm_content=tracker%2F256764&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F256764&utm_medium=issues&utm_source=github).
@lu-zero
Copy link
Owner

lu-zero commented Jul 12, 2015

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

@felixdreinulldrei
Copy link

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

@mfnahmed
Copy link

mfnahmed commented Jul 4, 2017

Hi lu-zero,
Is this behavior still the same.
I also got this issue, do we have a solution for this behavior.
Thanks.

@lu-zero
Copy link
Owner

lu-zero commented Jul 4, 2017

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 :).

@ggnull35
Copy link

ggnull35 commented Jul 4, 2017

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.

@lu-zero
Copy link
Owner

lu-zero commented Jul 4, 2017

You can provide the patches to Libav as well : P

@ggnull35
Copy link

ggnull35 commented Jul 4, 2017

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

@mfnahmed
Copy link

mfnahmed commented Jul 5, 2017

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants