Transcode RTMP Live stream to multiple clients

1

I regularly follow livestreams on the website picarto.tv. The website uses RTMP for streaming, and therefore requires flash to show the video source. Many (mobile/embedded) devices don't have flash though so I want to have the video in a format like MP4.

I have a dualcore VPS running Ubuntu 14.04 with 2GB of RAM that I want to use to transcode the video in real time. The VPS has an 1Gbps network link so bandwidth isn't a real issue, though it's limited to 500GB per month.

What I want is to be able to do is:

  • Watch the stream on my phone/tablet/smart tv/non-flash device
  • Allow up to at least 10-15 devices to watch the video at the same time
  • Therefore, I want to prevent spawning a transcoding thread for each client device
  • Using an MP4 streaming output seems like the best idea, because most devices support it

I tried ffmpeg to convert the RTMP to MP4, but that only allows for one client. All cvlc commands I have found either are too intensive for my server or don't produce any video output at all.

ffserver kind of worked, but it was too unstable and it is no longer maintained. It gave me vague errors that couldn't be traced to any real cause and sometimes it gave me no output at all without anything in the logs.

Is there any tool (like ffserver but maintained) or some other method for me to provide an MP4 version of an RTMP stream, in a decode-once, stream-to-many kind of way?

gertmenkel

Posted 2015-08-21T01:06:38.337

Reputation: 143

Answers

2

Try the openvcx openvsx stream processor component from github.com/openvcx/openvcx

A command line like this would ingest the RTMP stream and output it for Chrome, Safari, iOS, Android.

bin/vsx -v --capture=rtmp://x.x.x.x/bla/lalala --live=8080 --mkvlive --httplive --rtsp --flvlive

You may also need to transcode it with --xcode=... command line. More info on that here http://openvcx.com/vsxuserguide.php

LiveStreamer

Posted 2015-08-21T01:06:38.337

Reputation: 36