A tips for the live broadcast feature
  • When and if the live broadcast feature will be avaliable, I thinked about a soultion for broadcasting from different computers.

    Let's say you have AIrtime installed on a computer at your home, and then you are going to for example a sports event with your laptop. I thinked about an option to let the user choose from the stationary computers soundcard at home or in some way the laptops (remote computers) soundcard at the event for the microphone input.

    An alternative maybe would be to have the option, like in flash applications when it asks for permission to use the microphone and camera. I don't know anything else in this moment except one last thing, and that is if it would be possible in someway to have Airtime installed in the laptop as well and connect to the home computer Airtime installation and pass the live sound there for Broadcast.

    Another good feature maybe, if you have multiple installations would be some sync option if you for example have added some new songs to the stationary computer and you want to have them on your other computer on that locally installed Airtime.

    Hope you see the points in the text :)
  • 19 Comments sorted by
  • We have freeswitch, tied to skype, telephone numbers, and x-lite sip clients running on server with airtime 1.9.4, using the fallback mounts.   So host can call in a number of ways, and interview live hosts..  It's in beta development but basically running at http://a2zen.fm, did first live 2 hour show yesterday.   The shows are rebroadcasted and available for podcasts using a mediacore server.

    We modified liquidsoap to play random show from folder if nothing is scheduled,  Im looking to have our switch code detect live events direct from airtime schedule shortly.

    Airtime is great app...


  • Reply to @Boštjan+Jerko:

    with freeswitch integrated,  you can call with standard phone, or use sip-client and speex32k codec to dial into live HD stream from your android cellphone...  also freeswitch allows for multiple call ins to do question, answer talk shows.

  • That's exactly an idea I was playing with, but instead of a laptop I'm more inclined to smart phone.
    I am waiting for guys and gals to do an API and it just might have a service for that.
    If not, we can code it in.
    It's an open source product after all :)
  • I know you guys love keeping everything inside of the browser as much as possible, but i am not a fan of flash, this is a reasonable use for it, but why when use it when there are dedicated applications that are designed for signal computer broadcasting to the web? Couldn't we just use a stream sent from that computer?

    Don't get me wrong i love Airtime, but is there a harm in letting the user decide the program that they would like to use on there local computer?

    I would be interested if it is possible to use a slave icecast server (running in on a different port, or mount point then the airtime server) and then when you want a live stream, make the user select this in the airtime interface, much like selecting a song. i quickly sketched a diagram, Google docs doesn't like to display it so you may need to download it to see the drawing (sorry i don't know why it hates me). here is a link to that image. My thoughts are inspect the incoming stream for the meta data, and record that as it reaches the airtime server for logging songs (may be possible, but i don't know i am still new to the whole airtime bit started in August. ),
  • I've posted my possible solution of live broadcasting here. This one is based on pure Liquidsoap and was used before Airtime was available. It was in production for 1,5 years and showed a stable results.

    Chek this out and tell me what you think.
  • The solutions you posted are very intresting. i have also noticed some problems with flash, and if it could work another way, that's better I think.
  • Vote Up0Vote Down Albert FRAlbert FR
    Posts: 1,978Member, Airtime Moderator
    flash is dead ;)
  • Vote Up0Vote Down Jakub GórnickiJakub Górnicki
    Posts: 134Member, Administrator, Sourcefabric Team
    Wow guys, you are on fire when it comes to new Airtime features these days :)
  • Vote Up0Vote Down Albert FRAlbert FR
    Posts: 1,978Member, Airtime Moderator
    because Christmas is not so far ;)
  • In Bieszczady.FM we are doing this using LiquidSoap, telnet and bash script.

    In ls_script.liq I added line:
    web_stream_source = input.http(id="web_stream", autostart = false, buffer=0.5, max=20., "http://localhost:8000/studio.mp3")

    First. We stream by IDJC to /studio.mp3 (predefined mounpoint in icecast config). After connect we can check if everything is ok by listeing http://play.bieszczady.fm:8000/studio.mp3. Than we are logging to http website (hmtl, php) web which one constain:


    <script language="javascript" type="text/javascript">
    function onair(){
    popup_window = window.open("onair.php");
         function offair(){
             popup_window = window.open("offair.php");
         function test(){
             popup_window = window.open("test.php");

    echo web_stream.start | telnet localhost 1234echo vars.web_stream_enabled true | telnet localhost 1234
    offair.sh echo vars.web_stream_enabled false | telnet localhost 1234

    And it's work really great! IDCJ is very cool and powerfull.Enoy it!
    Post edited by krzakx at 2011-12-05 11:59:08
  • Reply to @krzakx: Good solution, but there're still no user-based and time-based auth for live show. And there're too many steps for bringing live up.

    in my script i used harbor on_connect  and on_disconnect callbacks to invoke system scripts, that indicated is there live or not. + metadata update about the show. Each DJ set its own description in the client and it's updated in stream's metadata
  • Vote Up0Vote Down Albert FRAlbert FR
    Posts: 1,978Member, Airtime Moderator
    @Romeo, your script is the good way, but for end users(but also for lazy people ;) an integration into the web interface and the possibility to record are mandatory/necessary
  • Reply to @Albert+FR: I think it'spossible to integrate it. First there must be a certain group of users for live broadcasting. That users can authenticate only on live harbor input at certain time of a certain show. Therefore, a show must have link to a live user.

    Live startup sequece must be the following: user connects to harbor.input. Auth function checks database for usrname/password and for currently active live show for that user. If everything is ok, the user is granted to start live.

    What does DevTeam think about this approach?
  • Yes there is a way to make it so that harbor.input is activated only when it is scheduled.
    Airtime Pro Hosting: http://airtime.pro
  • Reply to @Martin+Konecny: The main idea is not only to disable harbor when there's no live show, but also make time-based auth. Imaginie the situation when there's several studios broadcasting live shows based on complex timetable. It's easy to mix up the time and wrong show will be on air. If we are talking about full automation of broadcast, time-based (or better say show-based) auth on harbor input should be present
  • Vote Up0Vote Down Paul BaranowskiPaul Baranowski
    Posts: 389Member, Administrator, Sourcefabric Team
    You would need some way to handle the dead air that would result from
    this approach because the DJ will not be able to login to input.harbor
    at the exact right moment.  One solution might be to allow the user to
    schedule content during this time that would play until the DJ connects.

  • Reply to @Paul+Baranowski: The show can still be filled with some content by station manager. If the DJ doesn't start his broadcast, airtime continues to playout scheduled show
  • Reply to @Boštjan+Jerko:

    With our freeswitch/airtime integration, any android smartphone can broadcast live with speex36 directly in to live feed using voip, or call the standard telephone network and connect.


  • Vote Up0Vote Down Albert FRAlbert FR
    Posts: 1,978Member, Airtime Moderator
    And, where we can find this great feature ? Stephen ?