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

Develop minimum rate stream #11

Closed
wants to merge 13 commits into from
Closed

Develop minimum rate stream #11

wants to merge 13 commits into from

Conversation

psoetens
Copy link

@psoetens psoetens commented Mar 6, 2015

This is a series of patches to fix #7 but to also support streaming images of nodes that only publish an image once in a while. If nodes don't republish an image, the web_video_server and/or browser get lost and no longer update the video element in the browser.

Finally, it was necessary to modify some of the encoding parameters in order to get a clean video stream at the browser. Some lag seems to be added, it's not clear if this could be improved again.

Peter Soetens and others added 12 commits February 5, 2015 09:42
This is mainly useful for image topics which are published
occasionally and which would end up in some buffer if not
streamed at a minimum rate. Defaults to off.

Signed-off-by: Peter Soetens <[email protected]>
Disconnection could happen during a restreamFrame or application cleanup.

Signed-off-by: Peter Soetens <[email protected]>
cleanup_inactive_streams() misinterpreted the API of remove_if, which
returns a new end iterator, but anything past that iterator is unspecified.
In fact, it erased the wrong image_subscribers in most cases.

Signed-off-by: Peter Soetens <[email protected]>
… can work

A classical C++ error, the delete was done on an ImageStreamer,
which has a non-virtual destructor, leading to the subclasses
destructor never being called, leading to memleaks.

Signed-off-by: Peter Soetens <[email protected]>
The constructor could lead to multiple calls to the setup
functions of avformat. It's now put in a static function.

Signed-off-by: Bert Willaert <[email protected]>
These settings are equally responsive and don't lead to the
'churning down' in the webbrower or vlc. Especially the time_Base
parameter had a big influence on this.

Signed-off-by: Peter Soetens <[email protected]>
…te-stream

Conflicts:
	include/web_video_server/web_video_server.h
	src/web_video_server.cpp
@rctoris
Copy link
Contributor

rctoris commented Mar 9, 2015

@mitchellwills can you take a look at this when you get a chance?

@mitchellwills
Copy link

While this performs fine when the browser is running on the same machine as the server it runs significantly slower when streaming over wifi (less than 50%). I think this has to do with the modified time_base.den

@psoetens
Copy link
Author

psoetens commented Mar 9, 2015

We only tested this over LAN streaming from a fanless/embedded core i7 CPU. With slower, are you pointing at lag, or dropped frames? The main issue was that the stream just got choppy within 5-10 seconds anyway in any browser, so what are you comparing then ?

@mitchellwills
Copy link

I'm not sure if it was dropping frames, but the video was playing back at a rate slower than real time. This caused the video to lag further and further behind as time progressed (not a fixed lag). I do not see any lag, choppy video, etc, when streaming on the same machine. (NOTE these were for the mjpeg streaming)

When using vp8 I see it freeze every few seconds and then catch up when streaming locally. I see similar results when streaming over wifi, but with a little more lag (but the lag time seems to be fixed).

…eb tools.

Also removed some deprecated/unused flags

Signed-off-by: Peter Soetens <[email protected]>
@rctoris
Copy link
Contributor

rctoris commented Jul 7, 2015

Merge failure due to out-of-date code. Please re-open with up-to-date code if still valid.

@rctoris rctoris closed this Jul 7, 2015
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

Successfully merging this pull request may close these issues.

vp8 encoding is flakey in browsers and in vlc
4 participants