summaryrefslogtreecommitdiff
path: root/tech.mdwn
blob: c790bbac95bd561dbbdf11c581f711c6f97b1b35 (plain)

Technical details

Performance

Webinars are performed on location in front of a live audience.

Stage

The stage for the webinars is the trunk of a van.

The van is parked during the performances, at select places in Ã…rhus and Copenhagen.

Recording

During each webinar, audio and video is captured and mixed. The live-mixed recording is presented on location as part of the webinar, and also broadcast live to remote spectators,

Capture

Mix

Stream

[[!template id=alert context=danger content=<<ALERT

  • Must save recording to disk, before compression and streaming
  • Must survive exceeding bandwith (fixed or varying) towards broadcast host ALERT]]

[[!template id=alert context=warning content=<<ALERT

  • Should log telemetri of streaming host
    • Machine temperature
    • Machine speed
    • Processing (speed, utilization)
    • Disk (read speed, write speed, space available)
    • Network (bandwidth consumption, data loss, response time, radio signal quality)
    • Compression (input format, output format, output size, latency)
  • Should handle varying bandwith towards broadcast host
  • Should optimize compression
  • Should configure and test fallback radio link
  • Should measure archival storage needs ALERT]]

[[!template id=alert context=info content=<<ALERT

  • Maybe embed countdown into video image
  • Maybe embed logo as watermark into video image
  • Maybe dynamically adjust compression to match varying bandwith towards broadcast host
  • Maybe test analog video input (for emergency fallback) ALERT]]

Broadcast

[[!template id=alert context=warning content=<<ALERT

  • Should log dynamic IP of streaming host
  • Should log telemetri of broadcasting host
    • Machine temperature
    • Machine speed
    • Processing (speed, utilization)
    • Disk (read speed, write speed, space available)
    • Network (bandwidth consumption, data loss)
    • Distribution (open sessions, latency) ALERT]]

[[!template id=alert context=info content=<<ALERT

  • Maybe log geolocation of streaming host
  • Maybe gracefully handle varying bandwith towards users ALERT]]

Play

[[!template id=alert context=danger content=<<ALERT

  • Must keep audio and video syncronized (lipsync) ALERT]]

[[!template id=alert context=warning content=<<ALERT

  • Should test dedicated (non-web) players
    • mpv
    • vlc
    • bowser
    • Default player on Windows
    • Default player on Windows Phone
    • Default player on OSX
    • Default player on IOS
    • Default player on Android ALERT]]

Website

The website https://omni-presence.dk/ documents the work.

Styling

User interface and user experience is done mobile-first using the Bootstrap framework, with an aim of creating a conventional modern business feel.

[[!template id=alert context=warning content=<<ALERT

  • Should warn user if browser does not support live code (javascript)
  • Should suggest driver install when browser does not support live media (WebRTC)
  • Should warn user if browser fails to activate live media (WebRTC)
  • Should document use of dedicated (non-web) players on webinar page
  • Should hide notes on tech page by default, showing only when pushing a button "Display internal notes" at bottom ALERT]]

[[!template id=alert context=info content=<<ALERT

  • More than one testimonial (where exactly?)
  • Maybe fixate footer at bottom
  • Maybe better match footer with other styling
  • Maybe place countdown on top of video image
  • Maybe place front page webinar teaser at top for all devices (not only large ones)
  • Maybe add animation (e.g. slide in from right) for front page webinar teaser
  • Maybe have front page top intro fill whole width and without space at top
  • Maybe use carousel for front page top intro
  • Maybe add countdown to front page webinar teaser
  • Maybe add space above contact form
  • Maybe show geolocation of streaming host on webinar page ALERT]]

Interaction

Fedback form is provided.

[[!template id=alert context=info content=<<ALERT

  • Maybe send contact form data as email
  • Maybe extend contact form (expanded during fill-out of the form)
  • Confirmation message when comment sent with human confirmation
  • Error message when comment sent without human confirmation
  • Where does the comment emails go?
  • What is the interaction from there?
  • CGI @xayide or mail @morla
  • data security
  • form.omnipresence.dk? ALERT]]