Realtime transcode on Linux

Hello everyone,

I think what I’m trying to is a fairly common scenario. I’m hoping someone has already done the leg work and can point me in the right direction.

I will have Axis cameras at many remote locations that all deliver H.264. I would like to transcode the feeds before sending them off to Wowza. I would like to use dynamic bandwidth checking and deliver high, medium, or low quality streams to viewers.

So basically, I want this:

  1. receive the rtsp stream from the camera

  2. transcode it to resize, change the bit rates, etc. (in realtime, or close)

  3. give the streams to wowza and let it do its thing

I initially tried vlc to transcode but found that it is very resource intensive. I had one instance running and it was killing my linode.

I’m thinking about openRTSP piped to ffmpeg to transcode, then to one of the encoders listed in this forum. Any suggestions? If never heard of most of them and I’m not averse to paying for a quality decoder/encoder.

As a last resort, I could use some kind of hardware transcoder at each site, but I would like to avoid this because of the bandwidth overhead.

Has anyone put something like this together? Any input will be greatly appreciated.

Thanks,

mike

Alex,

Axis IP cameras that support h.264 do not require transcoding. You can setup stream profiles using the camera’s admin interface to produce lower bitrate streams, and Wowza StreamManager to start them up, and the streams can be played in IPhone, Silverlight, rtsp devices and Flash.

Getting multi bit rate functionality with Axis IP camera source is going to be a challenge… possibly if you setup multiple profiles in the camera and start them up in StreamManager, and reference them in server-side SMIL for live HTTP Streaming, and client-side SMIL or playlist… it might work.

See this post to start:

http://community.wowza.com/t/-/53

And this for multi-bitrate with server-side smil (mult-bitrate section):

https://www.wowza.com/docs/how-to-set-up-live-streaming-using-an-rtmp-based-encoder

And this is JW Player tutorial for Flash player based dynamic switching:

http://www.longtailvideo.com/support/jw-player/jw-flv-player-v4/27/bitrate-switching

Richard

Checking your post, I over read it, correction: using Bandwidth checking shouldn’t be too hard. Forget about the smil and dynamic streaming links. Just setup multiple profiles and start in StreamManager.

Richard

It’s as easy as that, huh. The people that were working on the this project before me, assured my client that this was impossible. The went as far as buying multiple cameras for each location. Thanks for saving me a lot of headaches. I should have went the Axis site before messing with all this transcoding business.

I can see why those Axis cameras are so expensive.

Thanks again for the quick reply and steering me in the right direction.

Mike