[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Debconf-video] Streaming Setup - RTMP & acceleration? (was Re: Report from last week-end's single-user single-day DebConf Video sprint)



Streaming setup
---------------

I had a very productive chat with markvandenborre, member of the FOSDEM team.
They use nginx with the RTMP module to get the feeds out of the rooms into HLS,
then a bunch of nginx caching frontends to back video.fosdem.org. I think
that's a setup that we will be able to easily replicate.

I adapted the Debian nginx package to build the RTMP module, and then set that
up to get video from the encoder cube and stream to YouTube (and locally). The
result is what you get on the link above, i.e. 8.5 hours of uninterrupted
streaming. CPU usage was pretty low, I think thanks to hardware acceleration of
H264 on the i7 of the cube. nginx-rtmp-module does the multiplexing, so we can
stream to our own CDN and to YouTube in parallel if we wish to.

The behavior is miles ahead from icecast: the most egregious example is :
clients will not drop out when the stream fails to push to nginx, while icecast
would hang up on people.

There's still a bunch of things to figure out (most notably, what CDN we use to
deliver to users), but it seems that the way forward is clear.

How are you streaming to rtmp? Using gstreamer I assume?

xfxf (Ryan) at LCA2017, thaytan had a pipeline which was using Intel's VA-API / VDPAU for acceleration which seem to drastically improve encode performance.

 * https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-vaapi-plugins/html/ch01.html
 * https://github.com/GStreamer/gst-plugins-bad/tree/master/sys/vdpau

Tim 'mithro' Ansell

Reply to: