1 of 63

TimVideos.us

and WebRTC

The HDMI2USB.tv project...

2 of 63

3 of 63

4 of 63

The goal

Enable every

user group and conference to

record and livestream

5 of 63

The goal

Enable every

user group and conference to

record and livestream

6 of 63

7 of 63

8 of 63

9 of 63

10 of 63

Why live stream?

Best way to

produce videos

is to do

live streaming

LCA2012 Talk

youtu.be/rCoCRmcrPlM

11 of 63

How do you record and live stream

a conference?

12 of 63

Need 3 things

  • Capture

  • Mixing + Recording

  • Streaming + Display

13 of 63

Capture

Mixing + Recording

Streaming +

Display

Capture

14 of 63

What is TimVideos?

  • HDMI2USB.tv

  • gst-switch

  • Streaming System

Three primary projects;

15 of 63

Need 3 things

  • Capture

  • Mixing + Recording

  • Streaming + Display

16 of 63

What is TimVideos?

  • HDMI2USB.tv

Capture

  • gst-switch

Mixing + Recording

  • Streaming System

Streaming + Display

Three primary projects;

17 of 63

Capture

Mixing + Recording

Streaming +

Display

Capture

18 of 63

19 of 63

Need 3 things

  • Capture

  • Mixing + Recording

  • Streaming + Display

20 of 63

What is TimVideos?

  • HDMI2USB.tv

Capture

  • gst-switch

Mixing + Recording

  • Streaming System

Streaming + Display

21 of 63

FOSS Hardware for HDMI / DVI capture

22 of 63

23 of 63

24 of 63

FPGA based!

Make hardware problems software…

25 of 63

Created FOSS firmware for FPGA

26 of 63

Firmware creates USB capture solution

  • Pass through device, sits between presenter's laptop and projector
  • Appears as a WebCam + Serial Port�No special drivers needed for �Linux, MacOS X or Windows!�

27 of 63

28 of 63

HDMI2USB.tv

Emulates:

  • UVC WebCam
  • CDC Serial Port

29 of 63

WebCam == WebRTC

Emulates as:

  • UVC WebCam
  • CDC Serial Port

30 of 63

Serial Port == Debug

Emulates:

  • UVC WebCam
  • CDC Serial Port

31 of 63

Working FOSS firmware for capture

for Digilent Atlys board...

32 of 63

Prototype not open...

Working FOSS firmware for capture

for Digilent Atlys board...

33 of 63

New FOSS hardware...

So created some open hardware…..

34 of 63

35 of 63

Numato Opsis

  • 2 x HDMI Input
  • 2 x HDMI Output
  • 1 x DisplayPort Input
  • 1 x DisplayPort Output
  • 2 x USB Ports
  • 1 x Gigabit Ethernet
  • 1 x Expansion Port

36 of 63

Prototype not open...

Working FOSS firmware for capture

for both boards!

37 of 63

WebRTC

  • Capture screen into WebRTC
  • Presenter's laptop NOT involved
  • 30fps capture

38 of 63

Hardware Mixing

  • Currently a WIP
  • Working: Hard switching
  • In development:
    • Soft fades
    • Combined modes (PIP, Side b Side)
    • Manipulation

39 of 63

Hardware Mixing

  • Transparent to WebRTC
  • Controllable via Serial Port
  • GUI Tool in progress

40 of 63

Other features coming...

  • Streaming via 1Gig Ethernet
  • DisplayPort on Opsis
  • Expansion Boards:
    • VGA, SDI, MIDI/DMX, etc
  • Connect multiple Opsis together

41 of 63

DisplayPort - 4k!

42 of 63

Daisy Chaining…

43 of 63

PCI Express Capture...

44 of 63

Other features coming...

  • Streaming via 1Gig Ethernet
  • DisplayPort on Opsis
  • Expansion Boards:
    • VGA, SDI, MIDI/DMX, etc
  • Connect multiple Opsis together

45 of 63

Conference Adapter Kit

46 of 63

47 of 63

Other Projects

Quick summary of other projects….

48 of 63

Mixing + Recording

49 of 63

gst-switch

  • Software Video Switcher
  • Written in C
  • Python API

50 of 63

voctomix

  • C3VOC's "rewrite" in pure python

  • Might replace� gst-switch

  • Pluggable!!!!

51 of 63

Streaming

&

Viewing

52 of 63

"streaming system"

53 of 63

Connecting streaming users

  • Twitter
  • Chat
  • WebRTC?

Realtime chat

Video

Twitter

54 of 63

How do you make

the content better?

55 of 63

56 of 63

Command Line

$ slidelint slidelint.pdf

No config file found, using default configuration

********************** Slide Deck slide-lint.pdf

C:Slide 4: Too close to edges: Text should not appear closer than 1/16.0th of the page size to the edges. (too-close-to-edges)

C:Slide 5: Low text color to background contrast. (text-readability)

C:Slide 3: Font is to small: Text should take up a minimum of 1/6.0th the page. (font-to-small)

C:Slide 1: typographical - This sentence does not start with an uppercase letter (UPPERCASE_SENTENCE_START)

C:Slide 1: misspelling - Possible spelling mistake found (MORFOLOGIK_RULE_EN_US)

Previous Talk

57 of 63

Website version

Previous Talk

58 of 63

Website version

Previous Talk

59 of 63

But people still need to know about your event…….

60 of 63

Events Everywhere

https://github.com/events-everywhere

Command line tools for�event data on social networks

  • Facebook
  • Google+
  • EventBrite
  • Meetup
  • Create
  • Update
  • Attendees

61 of 63

TimVideos

FOSS recording + streaming

Make your slides better

FOSS video capture

gst-switch

Software video mixing

streaming-system

Streaming web interface

events-everywhere

Publish your event everywhere

62 of 63

63 of 63

Numato Opsis

  • 2 x HDMI Input
  • 2 x HDMI Output
  • 1 x DisplayPort Input
  • 1 x DisplayPort Output
  • 2 x USB Ports
  • 1 x Gigabit Ethernet
  • 1 x Expansion Port