Enable/Disable Transcoder Plugin during Livestream
we are developing a live streaming platform that will allow several publishers to livestream to a broad audience. Our current version is running on Wowza without the transcoder plugin. Since we now like to allow dynamic bitrate streaming (and other features like thumbnails of the streams) we are evaluating the requirements to transrate multiple streams.
One optimization we are very interested in is to only use the transcoder plugin based on certain conditions (at least 1 person is watching the stream, the streams quality is sufficiently high, etc.). So my question is:
Is it possible to enable/ disable transcoding for a livestream while the publisher is streaming?
* The publisher does not need to reconnect / republish his stream when transcoding is switched.
* The clients connect to wowza via rtmp. At this time we test if we should enable transcoding for the stream. After the connection is established the client request whether the stream features multiple bitrates and either subscribes to the source-stream or the transcoded ones ( we already have this last part implemented ).
* If transcoding is disabled while clients are still watching the stream it is okay if they get disconnected. (Switching clients to the source stream dynamically is preferred and should be possible by notifying the clients flashplayer to switch before they get disconnected)
Is it possible to get the requested behaviour using Wowza, the Transcoder plugin, a custom server-side plugin to manage the streams and a custom flash player?
We know that it is possible to enable / disable transcoding per stream with an own implementation for ILiveStreamTranscoderControl but this only works when publishing a new stream so it wont help us for the stated problem.
It is still the case that transcoding starts and stops with the live stream. So there is not a straightforward way to do what you describe. A work-around would be to use Stream class streams to create a new live stream that is just a wrapper of the source, and transcode that stream. I'm not sure how practical this will prove to be, however. Keep in mind that you will be publishing a new live stream when you do this, and the number of live streams is limited by CPU and memory (for playback bandwidth is usually the limiting factor). Take a look at this
example as a starting point