Skip to content

FOSDEM 2019 VOC manual draft

Mark Van den Borre edited this page Jan 27, 2019 · 35 revisions

FOSDEM 2019 VOC manual

PRE-FOSDEM

Check artwork

  • (done) Check backround.raw in ansible has been updated for the current edition.

Preparation for VOC admins

Network preparations

  • Ask the video team to allow access to the video network from streamdump-external0.video.fosdem.org. For 2019, the ip's are: 176.9.123.213 / 2a01:4f8:151:82d0::2.

Install packages on your machine:

  • ansible 2.7 (debian stable backports or debian buster)
  • avahi-daemon avahi-discover
  • mpv
  • parallel-ssh
  • sproxy (git clone from https://github.com/FOSDEM/video-sproxy , make static binary, drop in $PATH)

Ansible configuration

Firefox configuration for handling tcp links

while true; do ffmpeg -re -i foo.mp4 -c copy -f mpegts - | sproxy; done
  • Create a html file with a link to tcp://localhost:8899.
  • Click the tcp://localhost:8899 link from Firefox. This asks for an application to handle this with.
  • Registers mpvwrap as the application to deal with tcp:// links and starts the video.

Study

Friday buildup

Physical buildup: server room

  • set up metal racks
    • in K1105, move to server room when ready
    • video team and/or general volunteers
  • unpack laptops, switch
    • Juniper ex2200 (48 ports)
    • attention: ports 44-47 are bond/trunk with 4x1g config!!, cable accordingly
  • power & network cabling
    • switch, voctops, streamdumper-local, control
    • take pictures of the physical setup for future documentation
    • TODO who? only trusted people in the server room

Physical buildup: VOC

  • boxes with video related gear:
    • specific corner?
    • stack on tables?
    • remove lids
  • tables, chairs
  • power strip
  • big screen:
    • straps
    • x240 laptop
    • mini dp to hdmi adapter
  • video vlan:
    • 24 port switch (dumb, supplied by network team)

Erase stale data

  • Erase stale data from videoboxes, streamdumps, stream backends. See https://github.com/FOSDEM/infrastructure/blob/master/ansible/docs/video.md#erasing-all-data .
    • video-box: ansible-playbook playbooks/site.yml --user root --limit video-box --extra-vars '{"destroy_all_videobox_data": True}'
    • video-streamer-backend: ansible-playbook playbooks/site.yml --user root --limit video-streamer-backend --extra-vars '{"destroy_all_streambackend_data": True}'
    • video-stream-dump: ansible-playbook playbooks/site.yml --user root --limit video-stream-dump --extra-vars '{"destroy_all_streamdump_data": True}'

During the conference

Enable stream dumps

Enable dumps on streamdump0.video.fosdem.org, streamdump-external0.video.fosdem.org:

  • TODO check if right
    ansible --user=root -a "service video-streamdump-* start" video-stream-dump*

Ansible

Some ad-hoc commands:

  • ansible --user=root -a "" 
  • Start the video recording on all video boxes:
    ansible --user=root -a "service video-recorder start" video-box
  • Check uptime on all video related boxes:
    ansible --user=root -a "uptime" video-*
  • You can spawn a shell before executing the command. This allows you to use pipes, chain multiple commands etc:
    ansible --user=root -m shell -a "ip link | grep eth0" video-streamer-*
  • Check if all boxes respond:
    ansible --user=root -m ping video-box
  • TODO Restart the ingestion service on a specific video box:
    TODO

Control.video.fosdem.org

As a VOC admin, you can use this web based control center to manage the raw video streams. You can control the scenes in the stream the general public will see, and you get one-click access to all underlying raw tcp video streams.

Devroom video managers use one page each on this platform to switch scenes.

Important urls:

Raw streams

A few important things to know when trying to directly watch the internal mpegts streams:

  • All video vlan boxes are mdns addressable: $ROOM_NAME-slides.local, $ROOM_NAME-cam.local, $ROOM_NAME-voctop.local .
  • All of them expose their mpegts video stream on port 8899. There is also a stream on port 8898 for slides and cams, but that is slower to respond because of buffering.

To watch a specific box with the least delay possible:

mpv tcp://{{ config.room }}-cam.local:8899/?timeout=2000000
mpv tcp://{{ config.room }}-slides.local:8899/?timeout=2000000
mpv tcp://ud2120-voctop.video.fosdem.org:8899

Audio monitoring

An visual overview of audio in all rooms will be available at:

Troubleshooting physical boxes

We have only 1 spare per type, so we'll have to be creative here.

Deploy a new room to a spare cam, slides or voctop box

To quickly deploy a different room config to a spare box running the latest box config for another room:

  • Update the hosts file entry for the cam, slides or voctop box you want to replace in the root of your local ansible checkout:
sed -i 's/\(ROOMNAME-BOXTYPE.video.fosdem.org\)/\1 ansible_host=CURRENT_IP_OF_REPLACEMENT_BOX/g' hosts
  • Deploy to the box from ansible:
ansible-playbook playbooks/site.yml  -i hosts --limit ROOMNAME-BOXTYPE.video.fosdem.org
  • Update dhcp config with replacement box mac address & reload dhcp server. TODO
  • Don't forget to revert ansible to the canonical hosts file:
git checkout -- hosts
Clone this wiki locally