Skip to content
Tim Williams edited this page Nov 1, 2017 · 2 revisions

PyCon Capture

PyCon UK is a community and volunteer run conference. This extends to the videoing and uploading of videos of all the main conference sessions. In order to make life easier for the volunteers who have to record, process and upload the videos to YouTube we would like to write a tool which will automate much of the work involved in getting a raw conference video recorded using one of our vision mixers onto YouTube. Furthermore, having a recording system with an awareness of the conference schedule means that there will be less likelihood of a session not being recorded because somebody forgot to press record.

The basic functions we'll need are:

  • Manage the live recording of conference videos, there will be a single laptop (or equivalent) per room which will be configured so that it "knows" which room it is in.
  • Automatic start up of the recording 10 minutes before the scheduled session start time if the recording isn't already running.
  • Have multiple recording profiles for different types of input (see the recording constraints below).
  • Import the conference schedule so that it is displayed on the recording laptop.
  • Provide a control so that the person operating the vision mixer can mark the actual start and end time of each talk.
  • Provide an interface which allows retrospective setting of start and stop times if they aren't recorded and testing of the times if they are.
  • Automatically cut each video based on the above start and end time.
  • Upload the cut video to the conference YouTube channel, with appropriate metadata from the imported schedule.

In addition the "Nice to haves" are:

  • The ability to re-stream the live recording to a remote display, either in the same building or elsewhere if there is sufficient guaranteed bandwidth.
  • Ability to run the code on a Raspberry Pi so we can take advantage of the hardware AVC/H264 encoder.
  • Ability to transfer videos and metadata between copies of the software via resume-able upload or physical devices so that the YouTube upload process doesn't have to rely potentially intermittent venue network capabilities.
  • Scripts to automatically re-start connections to public wifi services which repeatedly disconnect for random reasons.
  • Vision Mixer Operator "check in" so that the software knows when somebody is present to manage the recording, with an alert being sent to a "manager" (Text message? Slack?) if nobody is there.

To keep processing to a minimum, the raw video stream will need to be recorded with the following constraints:

  • A format suitable for upload to YouTube. MP4/AVC/AAC is preferred.
  • Ability to cut the video with an accuracy of 1 second without re-encoding. This will require control of the I frame frequency in the encoded video.
  • The current vision mixers record at 576p, but YouTube always downscales this to 480p, so the recording profile for vision mixers should upscale 576p video to 720p so that we can retain the maximum quality possible from our recording equipment in the final video.
  • A profile to record native 1080p if the input is of this quality. We record some rooms with "stand alone" HD cameras pointed in roughly the right direction, these will be 1080p. If we can connect an RPi to one of these, the this could form a "lightweight" version of the full recording rig for use in small rooms, with the session chair marking the start and stop point of each presentation.
Clone this wiki locally