Stream interference
  • I have been using airtime very successfully for about two years and I am very happy with it. Thank you so much for making this program opensource!

    However I have a problem with a new installation.

    We have one live feed coming from a microphone to the icecast server, at mountpoint /kaplica.mp3 using the program butt.

    The other mountpoint on icecast is the airtime stream, at /radio.mp3.

    Normally one can easily listen to either stream using VLC. However now there is a problem.

    From time to time we have a live stream on the scheduled program, thatis to say we simply add to the media library the mountpoint for
    /kaplica.mp3 as a stream and put it into the schedule. When the program starts, it streams this to the /radio.mp3 without any problems, or at least in the beginning.

    Everything seems to work well, but now for some reason /radio.mp3 is always written over by /kaplica.mp3 whenever the live stream is turned on. I have to shut down the source client to /kaplica.mp3 or it simply overwrites the airtime program.

    When I turn on the stream from butt, I see this in the pyro log. It is obvious that it is switching to the stream as it has a TRANSITION to live. However I never set up this transition. How to turn it off?  I don't want to transition especially when a program is already running.

    2015/02/02 13:07:02 [server:3] New client: localhost.  2015/02/02
    13:07:02 [server:3] Client localhost disconnected.  2015/02/02
    13:07:05 [decoder:3] Method "MAD" accepted "audio/mpeg".  2015/02/02
    13:07:05 [http:3] Decoding...  2015/02/02 13:07:05 [http:3] New
    metadata chunk: ? -- .  2015/02/02 13:07:09 [lang:3]
    /usr/lib/airtime/pypo/bin/liquidsoap_scripts/notify.sh -- webstream='{
    "source_url": "http://fsspx.pl:8000/kaplica.mp3" }' --media-id=11040 &
    2015/02/02 13:07:09 [lang:3] URL now http://fsspx.pl:8000/kaplica.mp3
    (change: true) 2015/02/02 13:07:09 [lang:3] New track inside HTTP
    stream 2015/02/02 13:07:09 [lang:3] status: connected
    http://fsspx.pl:8000/kaplica.mp3 2015/02/02 13:07:09 [lang:3] need to
    cross: false 2015/02/02 13:07:09 [lang:3] remaining inf sec before,
    inf sec after 2015/02/02 13:07:09 [switch_5592:3] Switch to cross_5586
    with transition.  2015/02/02 13:07:09 [lang:3] TRANSITION to live
    2015/02/02 13:07:09 [map_metadata_5594:3] Inserting missing metadata.
    2015/02/02 13:07:09 [lang:3] Using stream_format 2 2015/02/02 13:07:09
    [stdout:3] 2015/02/02 13:07:09 [stdout:3]
    ######################################### 2015/02/02 13:07:09
    [stdout:3] # *** pypo *** # 2015/02/02 13:07:09 [stdout:3] # pypo
    notification gateway # 2015/02/02 13:07:09 [stdout:3]
    ######################################### 2015/02/02 13:07:10 [lang:3]
    /usr/lib/airtime/pypo/bin/liquidsoap_scripts/notify.sh -- webstream='{
    "source_url": "http://fsspx.pl:8000/kaplica.mp3", "title": "" }'
    --media-id=11040 & 2015/02/02 13:07:10 [lang:3] URL now
    http://fsspx.pl:8000/kaplica.mp3 (change: false) 2015/02/02 13:07:10
    [lang:3] Using stream_format 2 2015/02/02 13:07:10 [stdout:3]
    2015/02/02 13:07:10 [stdout:3]
    ######################################### 2015/02/02 13:07:10
    [stdout:3] # *** pypo *** # 2015/02/02 13:07:10 [stdout:3] # pypo
    notification gateway # 2015/02/02 13:07:10 [stdout:3]
    ######################################### 2015/02/02 13:07:12
    [server:3] New client: localhost.  2015/02/02 13:07:12 [server:3]
    Client localhost disconnected.  2015/02/02 13:07:22 [server:3] New
    client: localhost.

    HEre is what I get when I turn off butt. It goes back to STATIC or what actually 
    should be on /radio.mp3.

    How to stop this behavior?

    2015/02/02 13:09:12 [server:3] New client: localhost.  2015/02/02
    13:09:12 [server:3] Client localhost disconnected.  2015/02/02
    13:09:18 [http:2] Feeding stopped: Mad.End_of_stream 2015/02/02
    13:09:20 [cross_5586:3] No next track ready yet.  2015/02/02 13:09:20
    [lang:3] /usr/lib/airtime/pypo/bin/liquidsoap_scripts/notify.sh
    --webstream='{ "source_url": "http://fsspx.pl:8000/kaplica.mp3" }'
    --media-id=11040 & 2015/02/02 13:09:20 [lang:3] URL now
    http://fsspx.pl:8000/kaplica.mp3 (change: false) 2015/02/02 13:09:20
    [lang:3] New track inside HTTP stream 2015/02/02 13:09:20 [lang:3]
    status: polling 2015/02/02 13:09:20 [lang:3] need to cross: false
    2015/02/02 13:09:20 [lang:3] remaining inf sec before, 0. sec after
    2015/02/02 13:09:20 [stdout:3] 2015/02/02 13:09:20 [stdout:3]
    ######################################### 2015/02/02 13:09:20
    [stdout:3] # *** pypo *** # 2015/02/02 13:09:20 [stdout:3] # pypo
    notification gateway # 2015/02/02 13:09:20 [stdout:3]
    ######################################### 2015/02/02 13:09:21
    [switch_5592:3] Switch to insert_metadata_5578 with transition.
    2015/02/02 13:09:21 [lang:3] TRANSITION to static 2015/02/02 13:09:21
    [map_metadata_5594:3] Inserting missing metadata.  2015/02/02 13:09:21
    [lang:3] Using stream_format 2 2015/02/02 13:09:22 [server:3] New
    client: localhost.  2015/02/02 13:09:22 [server:3] Client localhost
    disconnected.  2015/02/02 13:09:23 [dummy:3] Source failed (no more
    tracks) stopping output...  2015/02/02 13:09:23 [lang:3] Using
    stream_format 2 2015/02/02 13:09:32 [server:3] New client: localhost.
    2015/02/02 13:09:32 [server:3] Client localhost disconnected.
  • 7 Comments sorted by
  • Soon Comment

    But you seem to send the same stream twice

    Logs look Normal

    VOISSES
    Anyone reading this a find it funny about my grammar , I make no apology ,Go get a translator.
    "The Problem with education today is that it takes a university degree to switch on a light bulb"
    "You learn from your mistakes but wise people learn from others mistakes avoid Making mistakes there is not sufficient rooms to make them"
    "Innuendo","If's","Assumptions" and "Fear" are for politician.Who,What,where,When and How are for those seeking knowledge and care about Humanity.
    "I might be in Mud but that does not Make me a Wild Hog(pig)"
    “Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage to move in the opposite direction.”
    "The only thing that remains constant is change itself"
    May the force be with you,until our path or destiny bring us in tandem.
  • Actually sending the stream is not a problem, it works. WHY does it change to LIVE ? Why the live transition as I never asked for it? It just picks up the stream even though its not in the program.
  • New installation? Which version did you use?
  • Here is the output of airtime-check-system. Version is 2.5.1

    AIRTIME_SERVER_RESPONDING      = OK
    KERNEL_VERSION                 = 3.2.0-4-486
    MACHINE_ARCHITECTURE           = i686
    TOTAL_MEMORY_MBYTES            = 1034588
    TOTAL_SWAP_MBYTES              = 0
    AIRTIME_VERSION                = 2.5.1
    OS                             = Debian GNU/Linux 7.8 (wheezy) i686
    CPU                            = Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
    WEB_SERVER                     = Apache/2.2.22 (Debian)
    PLAYOUT_ENGINE_PROCESS_ID      = 2782
    PLAYOUT_ENGINE_RUNNING_SECONDS = 41006
    PLAYOUT_ENGINE_MEM_PERC        = 1.2%
    PLAYOUT_ENGINE_CPU_PERC        = 0.0%
    LIQUIDSOAP_PROCESS_ID          = 16887
    LIQUIDSOAP_RUNNING_SECONDS     = 18720
    LIQUIDSOAP_MEM_PERC            = 3.4%
    LIQUIDSOAP_CPU_PERC            = 5.9%
    MEDIA_MONITOR_PROCESS_ID       = 2776
    MEDIA_MONITOR_RUNNING_SECONDS  = 41006
    MEDIA_MONITOR_MEM_PERC         = 1.3%
    MEDIA_MONITOR_CPU_PERC         = 0.0%
  • OOps stuck

    I have a Girfriend name

    Debian Whats-so-Ever at times we get stuck

    Here is the solution

    https://forum.sourcefabric.org/discussion/comment/31910#Comment_31910

    Stop Double Post

    I retreat to my naughty corner for time out

    with my little Keg

    VOISSES
    is it what said

    Anyone reading this a find it funny about my grammar , I make no apology ,Go get a translator.
    "The Problem with education today is that it takes a university degree to switch on a light bulb"
    "You learn from your mistakes but wise people learn from others mistakes avoid Making mistakes there is not sufficient rooms to make them"
    "Innuendo","If's","Assumptions" and "Fear" are for politician.Who,What,where,When and How are for those seeking knowledge and care about Humanity.
    "I might be in Mud but that does not Make me a Wild Hog(pig)"
    “Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage to move in the opposite direction.”
    "The only thing that remains constant is change itself"
    May the force be with you,until our path or destiny bring us in tandem.
  • Can i use the Mad hatter as My profile Pic

    Or maybe JOKER


    Anyone reading this a find it funny about my grammar , I make no apology ,Go get a translator.
    "The Problem with education today is that it takes a university degree to switch on a light bulb"
    "You learn from your mistakes but wise people learn from others mistakes avoid Making mistakes there is not sufficient rooms to make them"
    "Innuendo","If's","Assumptions" and "Fear" are for politician.Who,What,where,When and How are for those seeking knowledge and care about Humanity.
    "I might be in Mud but that does not Make me a Wild Hog(pig)"
    “Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage to move in the opposite direction.”
    "The only thing that remains constant is change itself"
    May the force be with you,until our path or destiny bring us in tandem.
  • This is a duplicate Post
    Please refrain from writing duplicate post
    But your Answer lies in either

    1. Two Separate Mounts which you stated you have done
    2. Three Seperate Mounts  with fallback in this order 
    /radio fallback to /live fallback to /kaplica to /stream
    • your listeners will listen to the at /radio  ie. http://localhost:port1/radio.m3u 
    • if a live feed (say an outside) ,they are send to /live the listener will now hear that live dj but will still connected to radio (you can preview the dj at http://localhost:port1/live.m3u )
    • If you are using the microphone you are send to /kaplica the listener will now hear that studio but will still
      connected to radio (you can preview the dj at
      http://localhost:port1/kaplica.m3u )
    • If you have no live dj (/live is nearer to the listener so once its connected it will take precedent) and not using the studio you are send to the /stream ie airtime

    Notice that the order of the mounts take precedent and so if a live dj is connected,you hear them over all previous fallback (studio and airtime)

    This effect is best serve by using the master and show of Airtime

    Where the studio is connected to the master and all dj are schedule through show and can only be heard when they are schedule

    Good Luck

    Voisses

    See my previous Analysis




    Set up  If this is not your  setup outline the other scenario

    ********************************************************************************
    Client /Harbor
    mount A: butt client  (push to /kaplica)  This is an harbor
    mount B: airtime/harbour  (/radio).I correct this because Airtime is technically an harbor  


    Icecast Server

    mount A (/kaplica) http://localhost:port1/kaplica.m3u

    mount B (/radio)  http://localhost:port1/radio.m3u
    *****************************************************************
    Lets take you decisions base on a case by case basis

    Your conditions start at Case1 through Case 3 but Case 0 is ideal


    Case 0  the ideal case to listen both as I recommended

    mount B  and  mount A == will works well if treated seperately,

    When  Client A is connected to Server A (/kaplica) and Client B (/radio)  is connected to
    mount A (/kaplica) http://localhost:port1/kaplica.m3u and mount B (/radio)  http://localhost:port1/radio.m3u respectively
     
    Both are connected to a Separate Server Mount (A & B respectively) both are Available (condition True)

    listeners will hear both [(/kaplica) http://localhost:port1/kaplica.m3u] and [mount B (/radio)  http://localhost:port1/radio.m3u] using their media player like VLC

    Case 1 - mount B without A == works well, but no mount a  [This is basically  Client B by itself

    Client B  is connected to Server B (/radio) and Client A is not connected
    both are not connected (condition False)  

    listeners will hear only [mount B (/radio)  http://localhost:port1/radio.m3u] using their media player like VLC
    mount A (/kaplica) http://localhost:port1/kaplica.m3u is not connected nothing to be heard

    Case 2 - mount A by itself == works well

    Client A  is connected to Server A (/radio) and Client B is not connected
    both are not connected (condition False)  

    listeners will hear only mount A (/kaplica) http://localhost:port1/kaplica.m3u using their media player like VLC

    [mount B (/radio)  http://localhost:port1/radio.m3u]  is not connected nothing to be heard

    If Listener are hearing [mount B (/radio)  http://localhost:port1/radio.m3u] its either a nasty loop you have created or you have a fallback mount which you have not indicated see also below


    Case 3 mount A with B --> airtime takes audio from butt

    When  Client A is connected to Client B (Airtime)  and Client B (Airtime) is connected to Server B (/radio)

    Only One mount [mount B (/radio)] are in Play here. Server mount B (/radio) is responsible for both clients/harbor (condition False)

    Anybody listen on mount B (/radio)  http://localhost:port1/radio.m3u will hear using their media player like VLC
    Anybody listen on mount A (/kaplica) will here nothing (narda) its being routed by Airtime it result in the false condition

    mount A (/kaplica) http://localhost:port1/kaplica.m3u is not connected

    Now  the harbor will be Available to the listen based on the order of connection to Airtime

    If client A is connected to Airtime master you will only hear Client A at mount B (/radio)  http://localhost:port1/radio.m3u

    Client A cannot be put in as a webstream its an harbor it needs a Sever hence you nee something like this http://localhost:port1/kaplica.m3u

    So even if you put http://localhost:port1/kaplica.m3u in the webstream (media library) you have just created a loop of the same server mount

    mount A (/kaplica) http://localhost:port1/kaplica.m3u will be routed through mount B (/radio)  http://localhost:port1/radio.m3u

    and I guess this is what is happening to you


    Now solutions put mount A and mount B  on separate Mounts icecast can listen on multiple ports (see listening directives)

    mount A (/kaplica) http://localhost:port1/kaplica.m3u

    mount B (/radio)  http://localhost:port2/radio.m3u

    At no time should you either schedule mount A as a webstream in the media it will loop
    Yes you can preview it by listening to the little speaker icon beside the web stream  but once you schedule it ,http://localhost:port1/kaplica.m3u, you have just created a nasty loop and prepare for the consequences
    But do I need to mention putting it through the master/show in fact,you must see that you are repeating your self and that is not the real purpose of master/show

    Please note this has nothing to do with Airtime Logs You Logs Are Perfectly 100% correct Leave it alone and focus on your Configuration

    The Logs are just showing you the symptoms of your folly

    Get Dia and put your configuration and a flow chart you will see this

    I hope I have even put you on the right road,when you get to the next Gas station Ask for directions or you be lost(just some gibberrish,)
    Post edited by Voisses Tech at 2015-02-03 09:58:19
    Anyone reading this a find it funny about my grammar , I make no apology ,Go get a translator.
    "The Problem with education today is that it takes a university degree to switch on a light bulb"
    "You learn from your mistakes but wise people learn from others mistakes avoid Making mistakes there is not sufficient rooms to make them"
    "Innuendo","If's","Assumptions" and "Fear" are for politician.Who,What,where,When and How are for those seeking knowledge and care about Humanity.
    "I might be in Mud but that does not Make me a Wild Hog(pig)"
    “Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage to move in the opposite direction.”
    "The only thing that remains constant is change itself"
    May the force be with you,until our path or destiny bring us in tandem.