Skip to content

FOSDEM 2019 VOC manual draft

Ben Kochie edited this page Feb 3, 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)

VOC software setup

  • Start up the control laptop.
  • Set up the big screen with the streams from control. Don't forget to set up irssi at the bottom right of the screen!

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
  • Restart the ingestion service on a specific video box: TODO CHECK IF VALID
    ansible --user=root -a "service bmd-receiver restart" video-box --limit aw1120-slides*

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

Status monitoring

Some Grafana dashboards for video system status:

Audio monitoring

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

Alerts

VideoRecorderFailed The video-recorder.service is marked as failed on a cam/slide box.

  • systemctl status video-recorder.service
  • journalctl -u video-recorder.service

Troubleshooting physical boxes

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

There is a box with video repair tools and spare parts. Currently box 69. See https://etherpad.fosdem.org/p/inventory . Ask Mark, Luc "libv" Verhaegen, Vasil or Gerry for more info if needed.

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

check the resolution of a camera

ssh [email protected] 'grep display /mnt/ssd/bmd-streamer.log|tail -n1' 

or

ffprobe tcp://k3201-cam.video.fosdem.org:8899/
Clone this wiki locally