Results 1 to 9 of 9

Thread: Transcoder / Origin / Edgeservers Network Seup and Adaptive HLS delivery issues

  1. #1

    Default Transcoder / Origin / Edgeservers Network Seup and Adaptive HLS delivery issues

    Hi There,

    I could use some help/advise with a couple issues.

    First to understand how I have things setup right now. My setup is as follows.

    I currently have approximately 30 Sony H.264 IP cameras around the world. On Amazon’s EC2 cloud, I have the following systems setup.

    Loadbalancer / Origin Server – ami-c7184182 - Small Server
    Qty. 10- Edge Servers – ami-c7184182 – Small Servers
    Qty. 3 – Extra Large High CPU Intances – ami-75a8f130 – w/ Monthly WMS License setup to be transcoders.

    The IP cameras typically all have public IP address and I access the web interface via port 80 and the RTSP stream on port 554.

    In two cases now, I am running a Mac Mini Lion Server w/ OSX 10.7.4 and 4GB of Ram. The Lion server sits on the local network where 2 to 4 Sony IP cams reside. The Mac server is running 3.1.4 w/ a monthly license. Streamnamealias AddOn and LiveStreamRecord3.0 AddOn are on the system and an RTSP URL entry is made into the file as follows:


    Using the stream manager, I start the pull of the stream. I also occasionally trigger recording on the local Mac Server where bandwidth to the camera is better and I can pull a higher quality video stream for recording.

    In all other locations, I have the Extra Large CPU Instances running the StreamNameAlias and LiveStreamRecord AddOns. These large instances are setup to transrate the incoming H.264 / G.711 64Kbps audio stream. I have the transrate.xml template setup as follows.

    Source – Video passthru w/ AAC Audio
    942p – H.264 Video and AAC Audio - 942x530 res at 1024Kbps bit rate
    360p – H.264 Video and AAC Audio – 640x360 res at 500Kbps bit rate w/ Overlay enabled
    audio – Video Disabled and AAC Audio at 48Kbps (to pass App store w/ Apple)

    The three transcoder / Large instance machines either pull the feed directly from the camera or from the mac mini servers that are local to the cameras.

    IP Cam URL in file: streamname=rtsp://userassword@<CamIP>:554/media/video1

    URL in file to pull stream from mac server:

    The transcoder machine then generates the following streams which I can view directly from the transcoder…

    streamname_360p, streamname_942p, streamname_source and streamname_audio

    If I point an IOS device directly to the transcoder with a URL as follows:<appname>/ngrp:streamname_all/playlist.m3u8

    The adaptive delivery works and I can see the ios switch between the bit rate streams.

    To allow this to scale, I have an orgin server setup which is also running the load balancer and 10 edge servers that pull the feeds from from the origin/load server.

    On the origin server, I have StreamNameAlias AddOn running and use the streammanager / StartupStreams.xml file to pull the streams from the Transcoders. In two cases, I have the origin server pulling the feed directly from the IP camera.

    The origin server is (CURRENTLY) setup in the file with URLs/entries as follows:


    I just recently setup the ngrp:streamname_all and adaptive delivery to the IOS devises. And it works when I pull from the transcoder directly.

    Now for my issues:

    1. I’m not sure if this is the best way to setup such a network. I have issues with many streams timing out, Buffer Full, Buffer Empty, the recording stops on the transcoders as a result.. …. And most recently with IP cameras behind a monowall firewall with port forwarding to the IP camera on a private IP and port 80 and port 554… Seems that the stream has a really tough time staying stable… Not sure if the firewall can handle the traffic or what the issue is.

    With that said, do I have things setup properly? Should the mac mini servers be setup as liverepeater origin servers and the transcoders be both a liverepeater origin and edge server?? I saw an article noting RTP streaming over UDP and how that works well on EC2.

    2. I’ve tried a few different ways to enter the stream name into the file on the origin serer and I’ve tried to pull the ngrp:streamname_all adaptive HLS feed from the transcoder into / thru the origin server to be delivered via the edge servers and I can’t figure out how to do it. I’m unable to find a thread or article that talks about feeding the adaptive feed through the origin / edge servers cluster.

    Your pointers / assistance would be much appreciated.

    Thank you,


  2. #2
    Join Date
    Dec 2007



    First, I would make Transcoder the origin, not have this other origin in between. Just make sure you keep CPU usage to about 50% or less with Transcoding so there is room for origin functions.

    Then, take a look at this article:


  3. #3


    Hi Richard,

    Than you for the reply. I will take a look at that article regarding the multi bit rate.....

    Regarding making the Transcoder the origin,... Will that work if....

    I have Qty. 4 transcoders each with about 4 to 6 unique stream/streamnames and currently 12 Edge Servers configured with the <OriginURL>rtmp://|rtmp://</OriginURL> [Added another load balancer and more Horsepower origin this morning - HUGE Improvement]

    How would I configure the edge servers to find the streams from 4 different Transcoding machines? Would doing the following in each Edge Application work?? Will the edge servers just search all OriginURLs until it finds the stream it is looking for? Do I need to create another application on the transcoders? The same app that is on the current Origin servers but also turn on the transcoder in the app?


    Thank you in advance,


  4. #4
    Join Date
    Dec 2007



    I would not use the built-in failover system. If you have several origin servers like this you should try to keep track of where things are, it is a layer you will have to build-in to your system. so clients connect to edge servers that re-stream the correct origin.


  5. #5


    Hi Richard,

    Unfortunately, the usage on each of the streams goes up and down during the day and by days of the week. Have a separate edge cluster for each origin server would be expensive and leave lots of servers sitting idle quite often.

    Using a central Origin server feeding one cluster of edge servers seems to work. I bumped up the origin today from a small to a large ec2 instance. Huge difference.. Question is, is it better to pull the streams from the transcoders via streamname=rtmp:// or via rtsp:// or does it not make a difference..

    What about setting up each transcoder as an orgin server and each edge server having a different edge repeater app for each transcoder/orgin server?

    Thanks again,


  6. #6


    We have each transcoder as an origin and then each transcoder has its own app on the edge server and it's been perfectly reliable for us We just make sure our application knows which edge application each stream is on.

  7. #7
    Join Date
    Dec 2007


    You can repeat an RTSP stream from an origin in the edge, but generally RTMP is used.


  8. #8


    Hi Richard,

    So it seems that I have two ways to use the transcoders as origin servers and remove the origin as the middle man between the Transcoding servers and the Edge Servers...

    1. Setup the transcoder apps as LiveRepeater-Origins

    Then,... Either setup different apps on each edge server for each Transcoder and put the OriginURL into the Edge Application.xml file


    Not put the OriginURL into the Edge application and setup StreamName aliases on each server with the RTMP URL to point to the correct Transcoder(originserver). This can be done with One App on the Edge server... I assume that the edge server is smart enough to realize if it is already pulling XYZStream from Transcoder/Origin1, it will not pull it again?

    Thanks again for your help,


  9. #9
    Join Date
    Dec 2007



    Yes, using StreamNameAlias on the edge is a good solution, and it is more flexible than involving Application.xml /originURL.


Similar Threads

  1. HTTP Live Origin - No HLS pull when Transcoder addon enabled
    By BargainsBeyond in forum General Forum
    Replies: 1
    Last Post: 08-28-2014, 12:12 AM
  2. Adaptive bitrate streaming base bandwidth network?
    By trandung410 in forum On-Demand Streaming
    Replies: 1
    Last Post: 08-19-2014, 07:29 AM
  3. HLS delivery to IOS/Android native player
    By QuangNguyen018 in forum General Forum
    Replies: 3
    Last Post: 04-07-2014, 06:43 AM
  4. Replies: 3
    Last Post: 01-10-2014, 10:46 AM
  5. RTMP Adaptive with HLS Adaptive Fallback
    By Speegs in forum Media Players and Devices Discussion
    Replies: 5
    Last Post: 11-06-2013, 09:03 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts