-
Notifications
You must be signed in to change notification settings - Fork 24
FOSDEM 2019 VOC manual draft
- (done) Check backround.raw in ansible has been updated for the current edition.
- 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.
- 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)
- Make sure you have run
update-privatefiles.sh
before running ansible. See https://github.com/FOSDEM/infrastructure/blob/master/ansible/docs/video.md#video-boxes-video-box-role
- Install mpvwrap from https://raw.githubusercontent.com/FOSDEM/video/master/software/mpvwrap/mpvwrap into $PATH (/usr/bin ?). Don't forget to chmod a+x it.
- 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 asks for an application to handle this with.
- Registers mpvwrap as the application to deal with tcp:// links and starts the video.
- read general video manual: https://github.com/FOSDEM/video/blob/master/instructions/FOSDEM_AV_manual.pdf
- read up on ansible (see below)
- 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
- 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 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}'
- video-box:
Enable dumps on streamdump0.video.fosdem.org, streamdump-external0.video.fosdem.org .
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
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:
-
https://control.video.fosdem.org/all.html : all cams, slides, composites
-
https://control.video.fosdem.org/cams.html : cams only
-
https://control.video.fosdem.org/aw.html : aw only
-
https://control.video.fosdem.org/ua.html : ua only
-
https://control.video.fosdem.org/ud.html : ud only
-
TODO redeploy control.video.fosdem.org
-
?TODO redeploy a contro.video.fosdem.org cold spare
-
TODO grafana with all audio monitoring, again on a big screen
- url? who?
-
switch on dumpers: TODO how? anything to do?
- local dumper
- remote dumper
-
TODO restart the ingestion service on a specific video box?
-
watch the pre-mixing mp4 stream from a specific video box
-
port 8898 = to voctop? (starts slower, no point)
-
port 8899 = to dumper? (starts immediately)
-
Watch a specific cam box with the least delay possible:
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
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)