Skip to content

FOSDEM 2019 VOC manual draft

Vasil Kolev edited this page Jan 26, 2019 · 35 revisions

FOSDEM 2019 VOC manual

PRE-FOSDEM

Preparation for VOC admins

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)

Firefox configuration for handling tcp links

  • Start Firefox and open about:config
  • Right-click -> New -> Boolean -> Name: network.protocol-handler.expose.tcp -> Value -> false
  • Create a mpegts tcp video stream. This will create one locally on port 8899 (hardcoded):
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 registers mpv 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(es?)
    • Switch: 1x48port, last year was the Juniper from the office
  • 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

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

Control.video.fosdem.org

mpv tcp://{{ config.room }}-cam.local:8899/?timeout=2000000
  • Watch a specific slides box with the least delay possible:
mpv tcp://{{ config.room }}-slides.local:8899/?timeout=2000000
  • Watch a specific voctop output stream with the least delay possible: TODO check
    mpv tcp://ud2120-voctop.video.fosdem.org:8899
  • ip to (m)dns mappings?
    • BOXNAME.local, just make sure you have avahi running
    • tcp://ud2120-voctop.local.... should work

• react to irc calls this is old, what should it do? ->• ffmpeg -i ~/video/varia/how_not_to_launch_a_rocket.mp4 -c copy -f mpegts 'udp://227.0.0.2:9000&overrun_nonfatal=1&buffer_size=81921024&fifo_size=178481'

TODO troubleshooting physical boxes returned (we have only 1 spare per type!) -> Mark?

TODO how to deploy a different room config to a spare box running the latest box config for another room (ansible) as quickly as possible

  • edit hosts in your local checkout, set ansible_host to the IP of the target box
  • ansible-playbook playbooks/site.yml -i hosts.vk --limit BOXNAME.video.fosdem.org
  • update dhcp config with new MAC
  • DONE

TODO how to deploy a different room config to a spare voctop running the latest voctop config for another room (TODO would require a spare voctop to be deployed)

[test](mpv tcp://ud2220-cam.local:8899/?timeout=2000000)

Clone this wiki locally