prototype of live channels

Issue #14 on hold
David Riccitelli created an issue

No description provided.

Comments (76)

  1. David Riccitelli reporter

    In order not to collide with the current definition of a channel, we'll talk about broadcasts.

  2. David Riccitelli reporter

    When a broadcast is created, a message should be sent to RabbitMQ in order to have the Wowza modules pick it up and create the related stream in Wowza.

  3. David Riccitelli reporter

    The exchange name is going to be called helixware.fanout as it appears also to be the best practice (according to the default exchanges available with a fresh install of RabbitMQ).

  4. David Riccitelli reporter

    see #14: make models serializable to be sent via AMQP; prepare a BroadcastMessage to reduce the amount of data being sent via AMQP

    → <<cset 21259a6f4df1>>

  5. David Riccitelli reporter

    The following command can be used to create a broadcast:

    curl -X POST http://admin:password@cloud.helixware.localhost/4/broadcast \
      -d '{"path":"test006", "title":"test title", "username": "admin", "loop": true}' \
      -H "Content-Type: application/json"
    

    The expected response is:

    {
     "id":20,
     "title":"test title",
     "description":"",
     "relativePath":"test006",
     "ratio":null,
     "isLive":true,
     "applicationRelativePath":"System/admin/test006",
     "username":"admin",
     "account":"System"
    }
    

    The message is being sent to AMQP, we can move now onto the Wowza module to see to get this message and create an (empty) stream.

  6. David Riccitelli reporter

    The broadcast should have a collection of clips each representing a different bitrate of the same broadcast. For the time being we'll work with the path provided by the broadcast instance.

  7. David Riccitelli reporter

    A preliminary communication test proved succesful: BroadcastListener: I just received a broadcast :: test009

  8. David Riccitelli reporter

    Now we want a BroadcastMessageService to handle the incoming BroadcastMessage and create a stream (and related thread) accordingly. Future message related to this broadcast should be handled in order to set the current stream.

  9. David Riccitelli reporter

    Posting the broadcast JSON now yields the following in Wowza (which is a success):

    PublisherService: A publisher has been created [ name :: _definst_ ][ stream :: System/admin/test011 ]
    BroadcastMessageService: A broadcast thread has been created [ path :: System/admin/test011 ]
    
  10. David Riccitelli reporter

    This is the list of tests that we need to perform:

    1. Start Channel 1-3 (for SETTOPBOX: MPEG-TS and for OTT/VLC:MP4) via Script/URL
    2. Play Channels with more than 3 video on demand files in loop
    3. Switching Playlist of a Channel (with different video files) via Script/URL
    4. Re-Starting Channels
    5. Playing Channels with corrupt assets (broken or missing files)
    6. Optional: Channel(s) with Live Signal
    7. Optional: Simulated Networkloss/Disconnetion
    8. Re-Starting Playout Server
  11. David Riccitelli reporter

    First ever queue broadcast message received by the Wowza module: QueueAssetCommandExecutor: QueueAssetCommand{broadcast=tv.helixware.model.Broadcast@501ae8ea, asset=io.insideout.helixware.data.model.OnDemandAsset@626b2c3d, position=-1, play=false, start=0, end=-1}

  12. David Riccitelli reporter

    see #14: separate the Queues; set the routing key to the command class name; bind the RabbitListener to queues according to the commands

    → <<cset fa28e1483425>>

  13. Log in to comment