WEBVTT

1
00:00:17.735 --> 00:00:19.165
<00:00:17.735>Thank <00:00:18.056>you <00:00:18.378>so <00:00:18.700>much, <00:00:19.022>Stefan.

2
00:00:19.345 --> 00:00:20.965
<00:00:19.345>Really, <00:00:19.811>really <00:00:20.278>appreciate <00:00:20.744>it.

3
00:00:21.105 --> 00:00:24.725
<00:00:21.105>Um, <00:00:21.245>thank <00:00:21.385>you <00:00:21.525>so <00:00:21.665>much <00:00:21.805>for <00:00:21.945>the, <00:00:22.085>uh, <00:00:22.225>really <00:00:22.365>warm <00:00:22.505>welcome

4
00:00:24.825 --> 00:00:26.325
<00:00:24.825>and <00:00:25.017>thank <00:00:25.210>you <00:00:25.403>so <00:00:25.596>much <00:00:25.789>for <00:00:25.982>the <00:00:26.175>work.

5
00:00:26.325 --> 00:00:29.485
<00:00:26.325>Obviously <00:00:26.480>putting <00:00:26.636>together <00:00:26.791>these <00:00:26.947>events <00:00:27.102>I've <00:00:27.258>been <00:00:27.413>to, <00:00:27.569>to <00:00:27.724>one

6
00:00:29.485 --> 00:00:30.965
<00:00:29.485>or <00:00:29.675>two <00:00:29.865>of <00:00:30.055>them <00:00:30.246>and <00:00:30.436>really <00:00:30.626>enjoyed <00:00:30.817>them.

7
00:00:31.345 --> 00:00:33.085
<00:00:31.345>I'm <00:00:31.625>really <00:00:31.904>hopeful, <00:00:32.185>uh, <00:00:32.464>you <00:00:32.744>guys

8
00:00:33.225 --> 00:00:37.325
<00:00:33.225>and <00:00:33.365>everyone <00:00:33.505>in <00:00:33.645>the <00:00:33.785>chat, <00:00:33.925>uh, <00:00:34.065>are <00:00:34.205>going <00:00:34.345>to <00:00:34.485>enjoy, <00:00:34.625>um,

9
00:00:37.625 --> 00:00:39.245
<00:00:37.625>my <00:00:37.825>session <00:00:38.025>as <00:00:38.225>much <00:00:38.425>as <00:00:38.625>I <00:00:38.825>enjoyed <00:00:39.025>some

10
00:00:39.245 --> 00:00:41.445
<00:00:39.245>of <00:00:39.478>the <00:00:39.711>other <00:00:39.945>sessions <00:00:40.178>I've <00:00:40.411>been <00:00:40.644>at.

11
00:00:41.585 --> 00:00:43.205
<00:00:41.585>So <00:00:41.818>I'm <00:00:42.051>gonna <00:00:42.285>hit <00:00:42.518>screen <00:00:42.751>share <00:00:42.985>button.

12
00:00:43.785 --> 00:00:48.445
<00:00:43.785>Uh, <00:00:43.912>it's <00:00:44.039>gonna <00:00:44.166>be <00:00:44.294>that <00:00:44.421>one. <00:00:44.548>I'm <00:00:44.675>gonna <00:00:44.803>hit <00:00:44.930>the <00:00:45.057>play <00:00:45.184>button.

13
00:00:49.305 --> 00:00:52.365
<00:00:49.305>So <00:00:49.460>again, <00:00:49.616>so <00:00:49.771>thank <00:00:49.927>you <00:00:50.082>everyone <00:00:50.238>for, <00:00:50.393>uh, <00:00:50.549>tuning <00:00:50.705>in.

14
00:00:52.505 --> 00:00:55.205
<00:00:52.505>Uh, <00:00:52.705>my <00:00:52.905>name's <00:00:53.105>Phil. <00:00:53.305>Uh, <00:00:53.505>I'm <00:00:53.705>in <00:00:53.905>London.

15
00:00:55.625 --> 00:00:58.325
<00:00:55.625>Uh, <00:00:55.741>I <00:00:55.858>did <00:00:55.975>say <00:00:56.091>it <00:00:56.208>in <00:00:56.325>chat <00:00:56.441>as <00:00:56.558>well. <00:00:56.675>Um, <00:00:56.791>lots <00:00:56.908>of <00:00:57.025>people.

16
00:00:58.385 --> 00:01:02.085
<00:00:58.385>We <00:00:58.665>got, <00:00:58.945>uh, <00:00:59.224>Ingham, <00:00:59.504>uh, <00:00:59.785>Hungary,

17
00:01:02.265 --> 00:01:03.605
<00:01:02.265>Vienna, <00:01:02.868>Stuttgart, <00:01:03.471>fantastic.

18
00:01:03.735 --> 00:01:06.285
<00:01:03.735>Loads <00:01:03.935>of <00:01:04.135>places. <00:01:04.334>San <00:01:04.535>Francisco, <00:01:04.735>Bonnie, <00:01:04.935>uh, <00:01:05.135>well

19
00:01:06.285 --> 00:01:08.765
<00:01:06.285>that <00:01:06.425>would <00:01:06.565>be <00:01:06.705>Bonnie <00:01:06.845>who <00:01:06.985>works <00:01:07.125>with <00:01:07.265>me <00:01:07.405>in <00:01:07.545>San <00:01:07.685>Francisco.

20
00:01:09.225 --> 00:01:12.565
<00:01:09.225>Bit <00:01:09.365>of <00:01:09.505>a <00:01:09.645>surprise, <00:01:09.785>but, <00:01:09.925>so, <00:01:10.065>yeah, <00:01:10.205>uh, <00:01:10.345>we're <00:01:10.485>gonna <00:01:10.625>talk

21
00:01:13.505 --> 00:01:15.685
<00:01:13.505>the <00:01:13.785>fundamentals <00:01:14.065>of <00:01:14.345>online <00:01:14.625>video <00:01:14.905>streaming

22
00:01:15.685 --> 00:01:18.565
<00:01:15.685>and <00:01:15.860>how <00:01:16.035>you <00:01:16.210>can <00:01:16.385>get <00:01:16.560>started <00:01:16.735>with <00:01:16.910>video <00:01:17.085>streaming.

23
00:01:18.705 --> 00:01:20.725
<00:01:18.705>So, <00:01:18.938>um, <00:01:19.171>like <00:01:19.405>I <00:01:19.638>said, <00:01:19.871>I'm <00:01:20.105>Phil.

24
00:01:21.065 --> 00:01:23.045
<00:01:21.065>Uh, <00:01:21.298>I'm <00:01:21.531>a <00:01:21.765>streaming <00:01:21.998>architect <00:01:22.231>at <00:01:22.465>MOCs.

25
00:01:23.195 --> 00:01:27.005
<00:01:23.195>I've <00:01:23.322>been <00:01:23.449>in <00:01:23.576>the <00:01:23.704>video <00:01:23.831>industry <00:01:23.958>for, <00:01:24.085>uh, <00:01:24.213>about <00:01:24.340>10 <00:01:24.467>years <00:01:24.595>now.

26
00:01:27.785 --> 00:01:29.005
<00:01:27.785>Um, <00:01:28.004>I <00:01:28.224>previously <00:01:28.443>worked <00:01:28.663>at <00:01:28.883>one

27
00:01:29.005 --> 00:01:30.165
<00:01:29.005>of <00:01:29.265>the <00:01:29.526>largest <00:01:29.788>video <00:01:30.048>platforms,

28
00:01:30.385 --> 00:01:32.845
<00:01:30.385>and <00:01:30.525>also <00:01:30.665>at <00:01:30.805>this <00:01:30.945>little <00:01:31.085>broadcast <00:01:31.225>you <00:01:31.365>might <00:01:31.505>have <00:01:31.645>heard <00:01:31.785>of,

29
00:01:32.845 --> 00:01:34.045
<00:01:32.845>called <00:01:33.385>the <00:01:33.925>BBC.

30
00:01:34.505 --> 00:01:38.005
<00:01:34.505>Um, <00:01:34.645>but <00:01:34.785>I <00:01:34.925>also <00:01:35.065>do <00:01:35.205>a <00:01:35.345>lot <00:01:35.485>of <00:01:35.625>video <00:01:35.765>stuff <00:01:35.905>outside

31
00:01:38.005 --> 00:01:39.165
<00:01:38.005>of <00:01:38.353>my, <00:01:38.701>uh, <00:01:39.048>work.

32
00:01:39.405 --> 00:01:42.645
<00:01:39.405>I <00:01:39.560>also <00:01:39.716>organize <00:01:39.871>the <00:01:40.027>London <00:01:40.182>Video <00:01:40.338>Technology <00:01:40.493>Meetup <00:01:40.649>as <00:01:40.805>well

33
00:01:42.645 --> 00:01:45.565
<00:01:42.645>as <00:01:42.845>co <00:01:43.045>organizing <00:01:43.245>mux, <00:01:43.445>which <00:01:43.645>is <00:01:43.845>a <00:01:44.045>conference

34
00:01:45.565 --> 00:01:46.685
<00:01:45.565>for <00:01:46.069>video <00:01:46.573>engineers.

35
00:01:47.145 --> 00:01:49.325
<00:01:47.145>Um, <00:01:47.261>so <00:01:47.378>I, <00:01:47.495>I <00:01:47.611>like <00:01:47.728>to <00:01:47.845>think <00:01:47.961>I <00:01:48.078>know <00:01:48.195>a <00:01:48.311>bit <00:01:48.428>about <00:01:48.545>video

36
00:01:49.505 --> 00:01:51.445
<00:01:49.505>by <00:01:49.738>this <00:01:49.971>stage, <00:01:50.205>but <00:01:50.438>in <00:01:50.671>realism, <00:01:50.905>I,

37
00:01:51.925 --> 00:01:54.645
<00:01:51.925>I <00:01:52.100>still <00:01:52.274>don't <00:01:52.450>know <00:01:52.625>anywhere <00:01:52.800>near <00:01:52.975>everything <00:01:53.149>about <00:01:53.325>video.

38
00:01:54.985 --> 00:01:57.325
<00:01:54.985>Uh, <00:01:55.125>and <00:01:55.265>I <00:01:55.405>get <00:01:55.545>reminded <00:01:55.685>of <00:01:55.825>that <00:01:55.965>every <00:01:56.105>day <00:01:56.245>by <00:01:56.385>some

39
00:01:57.325 --> 00:01:59.085
<00:01:57.325>of <00:01:57.525>the <00:01:57.725>other <00:01:57.925>people <00:01:58.125>that <00:01:58.325>I <00:01:58.525>work <00:01:58.725>with.

40
00:02:00.185 --> 00:02:03.365
<00:02:00.185>Uh, <00:02:00.325>today <00:02:00.465>we're <00:02:00.605>gonna <00:02:00.745>do, <00:02:00.885>uh, <00:02:01.025>a <00:02:01.165>combination <00:02:01.305>of <00:02:01.445>some <00:02:01.585>slides

41
00:02:03.465 --> 00:02:05.565
<00:02:03.465>and <00:02:03.745>some <00:02:04.025>learning <00:02:04.305>and <00:02:04.585>some <00:02:04.865>demos

42
00:02:05.565 --> 00:02:06.805
<00:02:05.565>and <00:02:05.788>some <00:02:06.011>time <00:02:06.234>writing <00:02:06.457>some <00:02:06.681>code.

43
00:02:06.945 --> 00:02:10.365
<00:02:06.945>So <00:02:07.100>first <00:02:07.256>things <00:02:07.411>we're <00:02:07.567>gonna <00:02:07.722>explore <00:02:07.878>the <00:02:08.033>live <00:02:08.189>streaming <00:02:08.345>use

44
00:02:10.565 --> 00:02:14.005
<00:02:10.565>cases, <00:02:10.720>and <00:02:10.876>we're <00:02:11.031>really <00:02:11.187>gonna <00:02:11.342>focus <00:02:11.498>in <00:02:11.653>on <00:02:11.809>what's <00:02:11.965>changed,

45
00:02:14.265 --> 00:02:15.965
<00:02:14.265>uh, <00:02:14.545>with <00:02:14.825>the <00:02:15.105>impact <00:02:15.385>of <00:02:15.665>COVID-19.

46
00:02:16.165 --> 00:02:18.965
<00:02:16.165>'cause <00:02:16.340>it <00:02:16.515>obviously <00:02:16.690>has <00:02:16.864>been, <00:02:17.040>uh, <00:02:17.215>as <00:02:17.390>Stefan <00:02:17.565>mentioned,

47
00:02:18.965 --> 00:02:20.765
<00:02:18.965>quite <00:02:19.315>disruptive <00:02:19.665>to <00:02:20.015>our <00:02:20.365>industry.

48
00:02:21.265 --> 00:02:23.765
<00:02:21.265>Um, <00:02:21.404>we're <00:02:21.545>gonna <00:02:21.684>examine <00:02:21.825>kind <00:02:21.964>of <00:02:22.105>the <00:02:22.244>building <00:02:22.385>blocks <00:02:22.524>you <00:02:22.665>need

49
00:02:23.765 --> 00:02:25.125
<00:02:23.765>to <00:02:24.009>build <00:02:24.254>a <00:02:24.499>live <00:02:24.744>streaming <00:02:24.989>experience.

50
00:02:25.625 --> 00:02:26.645
<00:02:25.625>And <00:02:25.808>then <00:02:25.992>we're <00:02:26.175>gonna <00:02:26.359>talk <00:02:26.543>about

51
00:02:26.645 --> 00:02:29.725
<00:02:26.645>how <00:02:26.820>internet <00:02:26.995>in <00:02:27.170>general <00:02:27.345>has <00:02:27.520>live <00:02:27.695>streaming <00:02:27.870>on <00:02:28.045>it

52
00:02:29.785 --> 00:02:31.445
<00:02:29.785>and <00:02:30.251>generalized <00:02:30.718>video <00:02:31.185>streaming

53
00:02:31.585 --> 00:02:33.085
<00:02:31.585>and <00:02:31.810>how <00:02:32.035>just <00:02:32.260>that <00:02:32.485>works <00:02:32.710>in <00:02:32.935>general.

54
00:02:33.345 --> 00:02:35.885
<00:02:33.345>And <00:02:33.484>we'll <00:02:33.625>do <00:02:33.765>that <00:02:33.905>for <00:02:34.045>a <00:02:34.185>combination <00:02:34.325>of <00:02:34.465>couple <00:02:34.605>of <00:02:34.745>slides,

55
00:02:36.225 --> 00:02:38.485
<00:02:36.225>but <00:02:36.424>also, <00:02:36.625>uh, <00:02:36.825>a <00:02:37.025>bit <00:02:37.225>of, <00:02:37.424>uh, <00:02:37.625>demo

56
00:02:38.785 --> 00:02:40.925
<00:02:38.785>and <00:02:39.065>digging <00:02:39.345>into <00:02:39.625>what <00:02:39.905>happens, <00:02:40.185>uh,

57
00:02:40.925 --> 00:02:42.325
<00:02:40.925>in <00:02:41.105>the <00:02:41.285>browser <00:02:41.465>when <00:02:41.645>a <00:02:41.825>live <00:02:42.005>stream's <00:02:42.185>running.

58
00:02:43.195 --> 00:02:44.285
<00:02:43.195>Then <00:02:43.391>we're <00:02:43.587>going <00:02:43.783>to <00:02:43.979>go <00:02:44.176>ahead

59
00:02:44.285 --> 00:02:47.485
<00:02:44.285>and <00:02:44.460>create <00:02:44.635>our <00:02:44.810>own <00:02:44.984>live <00:02:45.160>streaming <00:02:45.335>platform, <00:02:45.510>uh, <00:02:45.685>configure

60
00:02:48.005 --> 00:02:49.725
<00:02:48.005>and <00:02:48.238>encoder <00:02:48.471>and <00:02:48.704>get <00:02:48.938>a <00:02:49.171>stream <00:02:49.405>running.

61
00:02:50.145 --> 00:02:51.805
<00:02:50.145>And <00:02:50.425>then <00:02:50.705>we're <00:02:50.985>going <00:02:51.265>to <00:02:51.545>experiment

62
00:02:51.805 --> 00:02:54.725
<00:02:51.805>with <00:02:51.960>playing <00:02:52.116>back <00:02:52.271>our <00:02:52.427>live <00:02:52.582>stream <00:02:52.738>on <00:02:52.893>our <00:02:53.049>own <00:02:53.205>website.

63
00:02:55.465 --> 00:02:57.525
<00:02:55.465>Uh, <00:02:55.640>a <00:02:55.815>little <00:02:55.990>bit <00:02:56.165>about <00:02:56.340>us <00:02:56.515>as <00:02:56.690>a <00:02:56.865>company.

64
00:02:57.865 --> 00:02:58.885
<00:02:57.865>Uh, <00:02:58.094>m <00:02:58.324>is <00:02:58.553>coming <00:02:58.783>up

65
00:02:58.885 --> 00:03:01.485
<00:02:58.885>for <00:02:59.040>its <00:02:59.196>fifth <00:02:59.351>birthday <00:02:59.507>this <00:02:59.662>year, <00:02:59.818>believe <00:02:59.973>it <00:03:00.129>or <00:03:00.285>not.

66
00:03:01.905 --> 00:03:04.645
<00:03:01.905>Um, <00:03:02.105>we're <00:03:02.305>San <00:03:02.505>Francisco <00:03:02.705>based <00:03:02.905>series <00:03:03.105>C <00:03:03.305>startup.

67
00:03:05.305 --> 00:03:09.005
<00:03:05.305>Um, <00:03:05.460>we <00:03:05.616>started <00:03:05.771>out <00:03:05.927>by <00:03:06.082>building <00:03:06.238>a <00:03:06.393>product <00:03:06.549>that, <00:03:06.705>uh,

68
00:03:09.125 --> 00:03:12.205
<00:03:09.125>analyzes <00:03:09.300>the <00:03:09.475>experience <00:03:09.650>view, <00:03:09.825>uh, <00:03:10.000>video <00:03:10.175>viewers <00:03:10.350>are <00:03:10.525>having.

69
00:03:12.705 --> 00:03:15.085
<00:03:12.705>So <00:03:12.860>this <00:03:13.016>is <00:03:13.171>a <00:03:13.327>tool <00:03:13.482>used <00:03:13.638>by <00:03:13.793>people <00:03:13.949>like <00:03:14.105>Fox

70
00:03:15.105 --> 00:03:18.365
<00:03:15.105>and <00:03:15.280>CBS <00:03:15.454>on <00:03:15.630>the <00:03:15.804>Super <00:03:15.980>Bowl <00:03:16.155>to <00:03:16.329>understand, <00:03:16.505>uh,

71
00:03:18.425 --> 00:03:20.725
<00:03:18.425>if <00:03:18.625>their <00:03:18.825>users <00:03:19.025>are <00:03:19.225>experience <00:03:19.425>is <00:03:19.625>buffering, <00:03:19.825>playback,

72
00:03:20.725 --> 00:03:22.325
<00:03:20.725>failures, <00:03:21.075>those <00:03:21.424>sorts <00:03:21.775>of <00:03:22.125>things.

73
00:03:22.425 --> 00:03:24.645
<00:03:22.425>All <00:03:22.625>those <00:03:22.825>horrible <00:03:23.025>things <00:03:23.225>when <00:03:23.425>you're <00:03:23.625>watching, <00:03:23.825>uh,

74
00:03:24.715 --> 00:03:25.925
<00:03:24.715>live <00:03:25.078>or <00:03:25.441>on-demand <00:03:25.804>video.

75
00:03:26.975 --> 00:03:30.035
<00:03:26.975>And <00:03:27.091>then <00:03:27.208>we <00:03:27.325>take <00:03:27.441>the <00:03:27.558>data, <00:03:27.674>we <00:03:27.791>learn <00:03:27.908>from <00:03:28.025>that <00:03:28.141>to <00:03:28.258>build, <00:03:28.375>uh,

76
00:03:30.275 --> 00:03:31.475
<00:03:30.275>a <00:03:30.815>video, <00:03:31.355>API.

77
00:03:31.475 --> 00:03:33.915
<00:03:31.475>So <00:03:31.602>we <00:03:31.729>call <00:03:31.856>this <00:03:31.984>mix <00:03:32.111>video, <00:03:32.238>and <00:03:32.365>it <00:03:32.493>really <00:03:32.620>is <00:03:32.747>an <00:03:32.875>API

78
00:03:33.915 --> 00:03:35.555
<00:03:33.915>that <00:03:34.381>enables <00:03:34.848>any <00:03:35.315>developer

79
00:03:35.775 --> 00:03:37.795
<00:03:35.775>to <00:03:36.055>build <00:03:36.335>a <00:03:36.615>video <00:03:36.895>streaming <00:03:37.175>experience.

80
00:03:38.825 --> 00:03:40.315
<00:03:38.825>We'd <00:03:39.093>like <00:03:39.361>to <00:03:39.629>summarize <00:03:39.897>it <00:03:40.166>as

81
00:03:40.865 --> 00:03:42.395
<00:03:40.865>uhms <00:03:41.324>existed, <00:03:41.783>democratize <00:03:42.242>video.

82
00:03:42.615 --> 00:03:45.915
<00:03:42.615>We <00:03:42.755>want <00:03:42.895>any <00:03:43.035>developer <00:03:43.175>to <00:03:43.315>be <00:03:43.455>able <00:03:43.595>to <00:03:43.735>build <00:03:43.875>video <00:03:44.015>experiences.

83
00:03:46.575 --> 00:03:48.595
<00:03:46.575>Now, <00:03:46.855>when <00:03:47.135>we <00:03:47.415>first <00:03:47.695>started <00:03:47.975>mucks

84
00:03:48.595 --> 00:03:50.755
<00:03:48.595>and <00:03:48.795>particularly <00:03:48.995>first <00:03:49.195>started <00:03:49.395>building <00:03:49.595>the <00:03:49.795>video <00:03:49.995>product,

85
00:03:51.175 --> 00:03:53.395
<00:03:51.175>we <00:03:51.330>thought <00:03:51.486>this <00:03:51.641>would <00:03:51.797>go <00:03:51.952>in <00:03:52.108>one <00:03:52.263>of <00:03:52.419>two <00:03:52.575>directions.

86
00:03:53.895 --> 00:03:57.115
<00:03:53.895>Um, <00:03:54.050>the <00:03:54.206>first <00:03:54.361>would <00:03:54.517>be <00:03:54.672>to <00:03:54.828>augment <00:03:54.983>your <00:03:55.139>existing <00:03:55.295>service

87
00:03:57.145 --> 00:03:59.395
<00:03:57.145>with, <00:03:57.378>uh, <00:03:57.611>live <00:03:57.845>streaming <00:03:58.078>or <00:03:58.311>on-demand <00:03:58.545>video.

88
00:03:59.415 --> 00:04:00.875
<00:03:59.415>And <00:03:59.743>we've <00:04:00.072>seen <00:04:00.400>a <00:04:00.728>lot

89
00:04:00.875 --> 00:04:02.875
<00:04:00.875>of <00:04:01.050>this <00:04:01.225>in <00:04:01.400>the <00:04:01.575>early <00:04:01.750>years <00:04:01.925>of <00:04:02.100>M'S <00:04:02.275>video.

90
00:04:03.135 --> 00:04:06.355
<00:04:03.135>So, <00:04:03.274>for <00:04:03.415>example, <00:04:03.554>we <00:04:03.695>work <00:04:03.834>with <00:04:03.975>a <00:04:04.114>social <00:04:04.255>network <00:04:04.394>called <00:04:04.535>Visco,

91
00:04:06.655 --> 00:04:08.195
<00:04:06.655>and <00:04:07.001>we <00:04:07.347>work <00:04:07.694>with, <00:04:08.041>um,

92
00:04:08.795 --> 00:04:10.715
<00:04:08.795>a <00:04:09.028>very <00:04:09.261>large <00:04:09.494>trading <00:04:09.728>platform <00:04:09.961>called <00:04:10.195>Robinhood,

93
00:04:10.715 --> 00:04:12.515
<00:04:10.715>you <00:04:10.915>might <00:04:11.115>have <00:04:11.315>heard <00:04:11.515>of, <00:04:11.715>to <00:04:11.915>augment <00:04:12.115>their

94
00:04:12.835 --> 00:04:13.875
<00:04:12.835>experiences <00:04:13.303>with <00:04:13.771>video.

95
00:04:15.105 --> 00:04:16.605
<00:04:15.105>But <00:04:15.442>we <00:04:15.780>also <00:04:16.117>expected <00:04:16.455>people

96
00:04:16.865 --> 00:04:19.565
<00:04:16.865>to <00:04:17.020>start <00:04:17.176>building <00:04:17.331>their <00:04:17.487>own <00:04:17.642>twitch <00:04:17.798>of <00:04:17.953>their <00:04:18.109>own <00:04:18.265>YouTube,

97
00:04:19.565 --> 00:04:21.125
<00:04:19.565>like <00:04:19.844>the, <00:04:20.125>the <00:04:20.404>Twitch <00:04:20.685>for <00:04:20.964>dogs

98
00:04:21.145 --> 00:04:22.965
<00:04:21.144>or <00:04:21.378>the <00:04:21.611>YouTube <00:04:21.844>for <00:04:22.078>cats, <00:04:22.311>for <00:04:22.544>example.

99
00:04:24.385 --> 00:04:27.385
<00:04:24.385>I <00:04:24.525>now <00:04:24.664>realize <00:04:24.805>that <00:04:24.945>YouTube <00:04:25.085>actually <00:04:25.224>is <00:04:25.365>for <00:04:25.505>YouTube <00:04:25.645>for <00:04:25.784>cats.

100
00:04:27.725 --> 00:04:29.345
<00:04:27.725>So <00:04:28.005>maybe <00:04:28.285>I, <00:04:28.565>I <00:04:28.845>should <00:04:29.125>change

101
00:04:29.345 --> 00:04:30.665
<00:04:29.345>that <00:04:29.514>slide <00:04:29.684>for <00:04:29.854>next <00:04:30.023>time <00:04:30.193>I <00:04:30.363>do <00:04:30.533>this.

102
00:04:31.085 --> 00:04:33.505
<00:04:31.085>But <00:04:31.364>if <00:04:31.645>you <00:04:31.924>hadn't <00:04:32.205>noticed, <00:04:32.484>uh,

103
00:04:33.645 --> 00:04:36.145
<00:04:33.645>things <00:04:33.820>have <00:04:33.995>changed <00:04:34.169>in <00:04:34.344>the <00:04:34.520>last <00:04:34.695>eight <00:04:34.870>months, <00:04:35.044>right?

104
00:04:36.285 --> 00:04:40.465
<00:04:36.284>Um, <00:04:36.440>some <00:04:36.596>sectors <00:04:36.751>haven't <00:04:36.907>chosen <00:04:37.062>to <00:04:37.218>go <00:04:37.373>into <00:04:37.529>streaming <00:04:37.684>video.

105
00:04:40.535 --> 00:04:42.825
<00:04:40.534>They've <00:04:40.814>been <00:04:41.094>forced <00:04:41.374>into <00:04:41.655>streaming <00:04:41.934>video.

106
00:04:43.245 --> 00:04:45.105
<00:04:43.245>Um, <00:04:43.478>things <00:04:43.711>like <00:04:43.945>the <00:04:44.178>fitness <00:04:44.411>sector, <00:04:44.645>right?

107
00:04:45.135 --> 00:04:47.745
<00:04:45.135>It's, <00:04:45.275>it's, <00:04:45.414>it's <00:04:45.555>not <00:04:45.695>necessary <00:04:45.835>safe <00:04:45.974>to <00:04:46.115>go <00:04:46.255>to <00:04:46.395>a <00:04:46.534>gym

108
00:04:47.765 --> 00:04:49.345
<00:04:47.765>for <00:04:48.044>your <00:04:48.325>personal <00:04:48.604>trainer <00:04:48.885>right <00:04:49.164>now.

109
00:04:49.805 --> 00:04:51.985
<00:04:49.805>Um, <00:04:49.945>e-learning, <00:04:50.085>it <00:04:50.225>may <00:04:50.365>not <00:04:50.505>be <00:04:50.645>safe <00:04:50.785>to <00:04:50.925>go <00:04:51.065>to <00:04:51.205>school.

110
00:04:52.045 --> 00:04:53.785
<00:04:52.045>You <00:04:52.200>may <00:04:52.356>only <00:04:52.511>be <00:04:52.667>able <00:04:52.822>to <00:04:52.978>go <00:04:53.133>in <00:04:53.289>limited <00:04:53.445>numbers,

111
00:04:54.765 --> 00:04:57.305
<00:04:54.765>but <00:04:55.044>also <00:04:55.325>private <00:04:55.604>self-driven <00:04:55.885>learning <00:04:56.164>things

112
00:04:57.305 --> 00:04:58.785
<00:04:57.305>like <00:04:57.571>Udemy, <00:04:57.837>that <00:04:58.104>sort <00:04:58.370>of <00:04:58.636>thing.

113
00:04:59.245 --> 00:05:00.465
<00:04:59.245>And <00:04:59.519>then <00:04:59.794>there's <00:05:00.068>virtual <00:05:00.342>events

114
00:05:00.525 --> 00:05:02.825
<00:05:00.525>as <00:05:00.758>well <00:05:00.991>have <00:05:01.224>been <00:05:01.458>forced <00:05:01.691>entirely <00:05:01.924>online.

115
00:05:02.965 --> 00:05:03.985
<00:05:02.965>Now, <00:05:03.424>um, <00:05:03.883>working

116
00:05:03.985 --> 00:05:06.625
<00:05:03.985>with <00:05:04.125>this <00:05:04.265>great <00:05:04.405>startup <00:05:04.545>in <00:05:04.685>London <00:05:04.825>at <00:05:04.965>the <00:05:05.105>moment, <00:05:05.245>um, <00:05:05.385>hopin

117
00:05:07.215 --> 00:05:09.985
<00:05:07.215>attracted <00:05:07.390>a <00:05:07.565>huge <00:05:07.739>amount <00:05:07.914>of <00:05:08.090>attention <00:05:08.265>and <00:05:08.440>funding <00:05:08.614>recently

118
00:05:09.985 --> 00:05:13.345
<00:05:09.985>because <00:05:10.160>they're, <00:05:10.335>uh, <00:05:10.510>a <00:05:10.685>premier <00:05:10.860>platform <00:05:11.035>now <00:05:11.210>for <00:05:11.385>building,

119
00:05:13.565 --> 00:05:15.105
<00:05:13.565>uh, <00:05:14.027>conference <00:05:14.489>experiences <00:05:14.951>online.

120
00:05:15.105 --> 00:05:18.345
<00:05:15.105>Everything <00:05:15.280>from, <00:05:15.455>you <00:05:15.630>know, <00:05:15.805>a <00:05:15.980>chat <00:05:16.155>roulette <00:05:16.330>style <00:05:16.505>experience

121
00:05:18.345 --> 00:05:19.865
<00:05:18.345>through <00:05:18.801>to <00:05:19.257>sponsor <00:05:19.713>booth

122
00:05:19.865 --> 00:05:21.545
<00:05:19.865>and <00:05:20.040>that <00:05:20.215>sort <00:05:20.390>of <00:05:20.565>thing, <00:05:20.740>taking <00:05:20.915>the <00:05:21.090>best <00:05:21.265>part

123
00:05:21.805 --> 00:05:24.745
<00:05:21.805>of <00:05:21.980>an <00:05:22.155>online <00:05:22.330>event <00:05:22.505>and <00:05:22.680>a, <00:05:22.855>uh, <00:05:23.030>in-person <00:05:23.205>event.

124
00:05:25.205 --> 00:05:28.225
<00:05:25.205>But <00:05:25.380>also <00:05:25.555>we've <00:05:25.729>seen <00:05:25.905>people <00:05:26.080>like <00:05:26.255>DJs <00:05:26.430>and <00:05:26.604>concerts

125
00:05:28.225 --> 00:05:30.185
<00:05:28.225>and <00:05:28.575>standup <00:05:28.925>comedy <00:05:29.275>all <00:05:29.625>transition

126
00:05:30.205 --> 00:05:32.425
<00:05:30.205>to <00:05:30.438>being <00:05:30.671>forced <00:05:30.905>into <00:05:31.138>this <00:05:31.371>streaming <00:05:31.604>model.

127
00:05:32.965 --> 00:05:35.065
<00:05:32.965>And <00:05:33.165>traditionally, <00:05:33.365>the <00:05:33.565>challenge <00:05:33.765>with <00:05:33.965>that <00:05:34.165>has <00:05:34.365>been

128
00:05:35.065 --> 00:05:37.825
<00:05:35.065>that <00:05:35.298>video <00:05:35.531>over <00:05:35.765>the <00:05:35.998>internet <00:05:36.231>is <00:05:36.465>hard

129
00:05:38.405 --> 00:05:41.665
<00:05:38.405>and <00:05:38.560>live <00:05:38.716>video <00:05:38.871>over <00:05:39.027>the <00:05:39.182>internet <00:05:39.338>is, <00:05:39.493>is <00:05:39.649>even <00:05:39.804>harder.

130
00:05:42.245 --> 00:05:43.945
<00:05:42.245>And <00:05:42.445>hopefully <00:05:42.645>what <00:05:42.845>I'll, <00:05:43.045>I'll <00:05:43.245>show <00:05:43.445>you <00:05:43.645>kind

131
00:05:43.945 --> 00:05:46.825
<00:05:43.945>of <00:05:44.085>over <00:05:44.224>the <00:05:44.365>next, <00:05:44.505>what <00:05:44.645>are <00:05:44.784>we <00:05:44.925>now, <00:05:45.065>50 <00:05:45.205>minutes <00:05:45.344>is,

132
00:05:47.165 --> 00:05:49.465
<00:05:47.165>it <00:05:47.365>doesn't <00:05:47.565>necessarily <00:05:47.765>have <00:05:47.965>to <00:05:48.165>be <00:05:48.365>that <00:05:48.565>hard.

133
00:05:50.655 --> 00:05:53.925
<00:05:50.655>There <00:05:50.794>are, <00:05:50.934>of <00:05:51.075>course, <00:05:51.215>as <00:05:51.354>developers, <00:05:51.494>a <00:05:51.635>a <00:05:51.775>bunch <00:05:51.914>of <00:05:52.054>ways

134
00:05:54.545 --> 00:05:55.965
<00:05:54.545>we <00:05:54.971>could <00:05:55.397>put <00:05:55.823>live

135
00:05:56.065 --> 00:05:58.885
<00:05:56.065>or <00:05:56.298>on-demand <00:05:56.531>video <00:05:56.765>streams <00:05:56.998>into <00:05:57.231>our <00:05:57.465>application

136
00:05:58.985 --> 00:06:00.005
<00:05:58.985>or <00:05:59.444>website, <00:05:59.903>right?

137
00:06:00.345 --> 00:06:03.205
<00:06:00.345>We <00:06:00.520>could <00:06:00.695>use <00:06:00.870>the <00:06:01.045>social <00:06:01.220>media <00:06:01.395>platforms, <00:06:01.570>uh, <00:06:01.745>YouTube,

138
00:06:03.565 --> 00:06:05.885
<00:06:03.565>Twitch, <00:06:04.031>Twitter, <00:06:04.498>Facebook, <00:06:04.965>Instagram,

139
00:06:05.885 --> 00:06:07.045
<00:06:05.885>those <00:06:06.233>sorts <00:06:06.581>of <00:06:06.929>platforms.

140
00:06:07.045 --> 00:06:09.765
<00:06:07.045>Now, <00:06:07.200>these <00:06:07.356>are <00:06:07.511>really <00:06:07.667>good <00:06:07.822>if <00:06:07.978>you <00:06:08.133>already <00:06:08.289>have <00:06:08.445>an

141
00:06:09.765 --> 00:06:11.005
<00:06:09.765>established <00:06:10.323>social <00:06:10.881>audience,

142
00:06:11.465 --> 00:06:12.805
<00:06:11.465>but <00:06:11.666>they're <00:06:11.866>really <00:06:12.068>terrible <00:06:12.269>when <00:06:12.470>it <00:06:12.671>comes

143
00:06:12.805 --> 00:06:14.365
<00:06:12.805>to <00:06:13.038>embedding <00:06:13.271>them <00:06:13.505>into <00:06:13.738>your <00:06:13.971>own <00:06:14.205>site,

144
00:06:14.965 --> 00:06:16.365
<00:06:14.965>branding <00:06:15.280>them <00:06:15.594>your <00:06:15.910>own <00:06:16.225>way

145
00:06:16.625 --> 00:06:19.325
<00:06:16.625>and <00:06:16.765>monetizing <00:06:16.905>them <00:06:17.045>in <00:06:17.185>the <00:06:17.325>way <00:06:17.465>that <00:06:17.605>you <00:06:17.745>want <00:06:17.885>to <00:06:18.025>monetize.

146
00:06:19.345 --> 00:06:23.045
<00:06:19.345>You <00:06:19.485>tend <00:06:19.625>to <00:06:19.765>be <00:06:19.905>entirely <00:06:20.045>tied <00:06:20.185>to <00:06:20.325>a <00:06:20.465>monetization <00:06:20.605>strategy, <00:06:20.745>um,

147
00:06:23.275 --> 00:06:24.645
<00:06:23.275>defined <00:06:23.686>by <00:06:24.097>the <00:06:24.508>platform.

148
00:06:25.705 --> 00:06:28.255
<00:06:25.705>There <00:06:25.905>are <00:06:26.104>the <00:06:26.305>traditional <00:06:26.505>online <00:06:26.705>video <00:06:26.905>platforms, <00:06:27.104>uh,

149
00:06:28.275 --> 00:06:29.495
<00:06:28.275>the <00:06:28.640>Wistia, <00:06:29.007>the <00:06:29.373>Vimeos,

150
00:06:29.495 --> 00:06:31.255
<00:06:29.495>the <00:06:29.695>Bright <00:06:29.895>Codes, <00:06:30.095>CALS, <00:06:30.295>that <00:06:30.495>sort <00:06:30.695>of <00:06:30.895>thing.

151
00:06:31.755 --> 00:06:35.415
<00:06:31.755>Um, <00:06:31.895>these <00:06:32.034>tend <00:06:32.175>to <00:06:32.315>be <00:06:32.455>large <00:06:32.594>bundled <00:06:32.735>platforms <00:06:32.875>with, <00:06:33.015>you <00:06:33.155>know,

152
00:06:35.575 --> 00:06:38.335
<00:06:35.575>a <00:06:35.854>notable <00:06:36.135>upfront, <00:06:36.414>uh, <00:06:36.695>contract <00:06:36.974>size.

153
00:06:38.685 --> 00:06:41.095
<00:06:38.685>They <00:06:38.965>include <00:06:39.245>players, <00:06:39.525>content <00:06:39.805>management <00:06:40.085>systems,

154
00:06:41.315 --> 00:06:43.575
<00:06:41.315>and <00:06:41.470>you <00:06:41.626>get <00:06:41.781>a <00:06:41.937>limited <00:06:42.092>flexibility <00:06:42.248>in <00:06:42.403>this <00:06:42.559>as <00:06:42.715>well.

155
00:06:44.355 --> 00:06:46.935
<00:06:44.355>And <00:06:44.482>then <00:06:44.609>there's <00:06:44.736>what <00:06:44.864>we <00:06:44.991>like <00:06:45.118>to <00:06:45.245>think <00:06:45.373>of <00:06:45.500>as <00:06:45.627>next <00:06:45.755>generation

156
00:06:47.035 --> 00:06:49.335
<00:06:47.034>of <00:06:47.268>video <00:06:47.501>streaming, <00:06:47.734>which <00:06:47.968>is <00:06:48.201>video <00:06:48.434>APIs.

157
00:06:49.635 --> 00:06:54.255
<00:06:49.635>And <00:06:49.751>you <00:06:49.868>can <00:06:49.985>think <00:06:50.101>of <00:06:50.218>these <00:06:50.335>as <00:06:50.451>the, <00:06:50.568>uh, <00:06:50.685>the <00:06:50.801>stripes <00:06:50.918>of <00:06:51.034>video.

158
00:06:54.835 --> 00:06:56.695
<00:06:54.835>Um, <00:06:55.301>and <00:06:55.768>that's <00:06:56.234>usms.

159
00:06:56.695 --> 00:06:59.055
<00:06:56.695>Things <00:06:56.928>like <00:06:57.161>CloudFlare <00:06:57.395>Stream <00:06:57.628>or <00:06:57.861>API <00:06:58.094>video.

160
00:06:59.555 --> 00:07:02.215
<00:06:59.555>Um, <00:06:59.755>these <00:06:59.955>are <00:07:00.155>really <00:07:00.355>API <00:07:00.555>driven, <00:07:00.755>uh, <00:07:00.955>designed

161
00:07:02.215 --> 00:07:03.295
<00:07:02.215>for <00:07:02.539>a <00:07:02.863>developer <00:07:03.187>audience

162
00:07:03.355 --> 00:07:06.055
<00:07:03.355>and <00:07:03.482>give <00:07:03.609>you <00:07:03.736>a <00:07:03.864>lot <00:07:03.991>more <00:07:04.118>freedom <00:07:04.245>to <00:07:04.373>pick <00:07:04.500>like <00:07:04.627>a <00:07:04.755>player

163
00:07:06.115 --> 00:07:08.375
<00:07:06.115>or <00:07:06.290>a <00:07:06.465>CMS, <00:07:06.640>customize <00:07:06.815>it <00:07:06.990>any <00:07:07.165>way <00:07:07.340>you <00:07:07.515>want,

164
00:07:08.555 --> 00:07:09.815
<00:07:08.555>but <00:07:08.933>often, <00:07:09.311>most <00:07:09.689>importantly,

165
00:07:09.835 --> 00:07:11.775
<00:07:09.835>to <00:07:10.114>monetize <00:07:10.395>it <00:07:10.674>however <00:07:10.955>you <00:07:11.234>want.

166
00:07:11.775 --> 00:07:14.655
<00:07:11.775>They <00:07:11.974>don't <00:07:12.174>tie <00:07:12.375>you <00:07:12.575>into <00:07:12.775>any <00:07:12.974>particular <00:07:13.174>monetization

167
00:07:15.055 --> 00:07:17.325
<00:07:15.055>strategy, <00:07:16.455>or,

168
00:07:17.585 --> 00:07:20.405
<00:07:17.585>and <00:07:17.712>I <00:07:17.839>always <00:07:17.966>have <00:07:18.094>to <00:07:18.221>highlight <00:07:18.348>this, <00:07:18.475>uh, <00:07:18.603>you <00:07:18.730>could <00:07:18.857>DIY <00:07:18.984>it,

169
00:07:20.545 --> 00:07:21.765
<00:07:20.545>you <00:07:20.819>could <00:07:21.094>build <00:07:21.368>it <00:07:21.643>yourself.

170
00:07:21.905 --> 00:07:23.845
<00:07:21.905>And <00:07:22.255>actually, <00:07:22.604>as <00:07:22.955>a <00:07:23.304>developer,

171
00:07:23.915 --> 00:07:25.565
<00:07:23.915>this <00:07:24.195>is <00:07:24.475>a <00:07:24.755>really <00:07:25.035>cool <00:07:25.315>experience.

172
00:07:25.685 --> 00:07:26.725
<00:07:25.685>A, <00:07:25.997>it's, <00:07:26.309>you <00:07:26.621>learn

173
00:07:26.865 --> 00:07:30.645
<00:07:26.865>so <00:07:27.020>much <00:07:27.176>from <00:07:27.331>actually <00:07:27.487>building <00:07:27.642>your <00:07:27.798>own <00:07:27.953>video <00:07:28.109>platform <00:07:28.265>that,

174
00:07:30.865 --> 00:07:33.165
<00:07:30.865>uh, <00:07:31.040>I <00:07:31.215>actually <00:07:31.390>strongly <00:07:31.565>recommend <00:07:31.740>it <00:07:31.915>as <00:07:32.090>an <00:07:32.265>experience.

175
00:07:33.265 --> 00:07:36.565
<00:07:33.265>Almost <00:07:33.420>everyone <00:07:33.576>in <00:07:33.731>the <00:07:33.887>video <00:07:34.042>industry <00:07:34.198>has <00:07:34.353>done <00:07:34.509>this <00:07:34.664>before.

176
00:07:36.985 --> 00:07:40.285
<00:07:36.985>Um, <00:07:37.140>it's <00:07:37.296>hard, <00:07:37.451>uh, <00:07:37.607>and <00:07:37.762>it's <00:07:37.918>really <00:07:38.073>hard <00:07:38.229>to <00:07:38.385>scale

177
00:07:40.385 --> 00:07:41.725
<00:07:40.385>and <00:07:40.626>really <00:07:40.867>hard <00:07:41.108>to <00:07:41.349>make <00:07:41.591>reliable.

178
00:07:42.105 --> 00:07:43.405
<00:07:42.105>Um, <00:07:42.272>but <00:07:42.439>if <00:07:42.606>you <00:07:42.773>do <00:07:42.940>have <00:07:43.107>the <00:07:43.275>time

179
00:07:43.505 --> 00:07:45.645
<00:07:43.505>and <00:07:43.705>the <00:07:43.905>enthusiasm, <00:07:44.105>it's <00:07:44.305>a <00:07:44.505>really <00:07:44.705>cool <00:07:44.905>experience

180
00:07:45.665 --> 00:07:49.045
<00:07:45.665>and <00:07:45.781>a <00:07:45.898>great <00:07:46.015>way <00:07:46.131>to, <00:07:46.248>uh, <00:07:46.365>get <00:07:46.481>into <00:07:46.598>the <00:07:46.715>video <00:07:46.831>industry <00:07:46.948>as <00:07:47.065>well.

181
00:07:50.335 --> 00:07:52.635
<00:07:50.335>Uh, <00:07:50.510>my <00:07:50.685>colleague <00:07:50.859>Bonnie <00:07:51.034>actually <00:07:51.210>put <00:07:51.385>together <00:07:51.560>this <00:07:51.734>really

182
00:07:52.635 --> 00:07:55.915
<00:07:52.635>cool <00:07:52.790>decision <00:07:52.946>tree <00:07:53.101>about <00:07:53.257>how <00:07:53.412>you <00:07:53.568>can <00:07:53.723>decide, <00:07:53.879>uh, <00:07:54.034>what

183
00:07:56.435 --> 00:07:58.515
<00:07:56.435>platform <00:07:56.715>to <00:07:56.995>livestream <00:07:57.275>your <00:07:57.555>content <00:07:57.835>on.

184
00:07:58.615 --> 00:08:00.515
<00:07:58.615>So <00:07:58.815>if <00:07:59.015>you <00:07:59.215>don't <00:07:59.415>have <00:07:59.615>a <00:07:59.815>budget, <00:08:00.015>yeah,

185
00:08:00.615 --> 00:08:02.435
<00:08:00.615>you <00:08:00.848>probably <00:08:01.081>wanna <00:08:01.315>use <00:08:01.548>the <00:08:01.781>social <00:08:02.015>networks.

186
00:08:02.435 --> 00:08:04.115
<00:08:02.435>It's <00:08:02.562>kind <00:08:02.689>of <00:08:02.816>the <00:08:02.944>only <00:08:03.071>way <00:08:03.198>you're <00:08:03.325>gonna <00:08:03.453>get <00:08:03.580>that <00:08:03.707>for <00:08:03.835>free.

187
00:08:04.895 --> 00:08:07.075
<00:08:04.895>Um, <00:08:05.128>have <00:08:05.361>you <00:08:05.594>got <00:08:05.828>any <00:08:06.061>developer <00:08:06.294>resource?

188
00:08:07.075 --> 00:08:08.875
<00:08:07.075>If <00:08:07.250>not, <00:08:07.425>you <00:08:07.599>might <00:08:07.775>wanna <00:08:07.950>use <00:08:08.125>kind <00:08:08.300>of <00:08:08.474>the,

189
00:08:08.895 --> 00:08:11.595
<00:08:08.895>the <00:08:09.050>higher <00:08:09.206>level <00:08:09.361>AVPs, <00:08:09.517>the <00:08:09.672>Vimeos <00:08:09.828>that <00:08:09.983>have, <00:08:10.139>you <00:08:10.294>know,

190
00:08:11.595 --> 00:08:13.515
<00:08:11.595>comprehensive <00:08:12.061>content <00:08:12.528>management <00:08:12.995>systems

191
00:08:13.735 --> 00:08:15.195
<00:08:13.735>and <00:08:14.173>really <00:08:14.611>simple <00:08:15.049>embeds.

192
00:08:16.325 --> 00:08:19.225
<00:08:16.325>Um, <00:08:16.500>if <00:08:16.675>you <00:08:16.849>need <00:08:17.025>some <00:08:17.200>level <00:08:17.375>of <00:08:17.550>flex <00:08:17.724>flexibility,

193
00:08:19.245 --> 00:08:21.585
<00:08:19.245>but <00:08:19.478>not <00:08:19.711>complete <00:08:19.945>level <00:08:20.178>of <00:08:20.411>flexibility, <00:08:20.645>that's

194
00:08:21.585 --> 00:08:23.625
<00:08:21.585>where <00:08:21.818>more <00:08:22.051>traditional <00:08:22.284>AVPs <00:08:22.518>come <00:08:22.751>into <00:08:22.984>play,

195
00:08:23.625 --> 00:08:25.025
<00:08:23.625>the <00:08:23.940>bright <00:08:24.255>CCOs <00:08:24.570>Calta <00:08:24.885>is.

196
00:08:25.685 --> 00:08:27.625
<00:08:25.685>Um, <00:08:25.885>and <00:08:26.085>then <00:08:26.285>you've <00:08:26.485>really <00:08:26.685>gotta <00:08:26.885>ask <00:08:27.085>yourself,

197
00:08:27.965 --> 00:08:29.785
<00:08:27.965>am <00:08:28.164>I <00:08:28.364>gonna <00:08:28.565>build <00:08:28.765>a <00:08:28.965>video <00:08:29.164>engineering <00:08:29.364>team?

198
00:08:30.125 --> 00:08:33.105
<00:08:30.125>Uh, <00:08:30.252>if <00:08:30.379>not, <00:08:30.506>then <00:08:30.634>you <00:08:30.761>probably <00:08:30.888>wanna <00:08:31.015>use <00:08:31.143>a <00:08:31.270>video, <00:08:31.397>API, <00:08:31.525>uh,

199
00:08:33.205 --> 00:08:34.505
<00:08:33.205>and <00:08:33.439>if <00:08:33.673>so, <00:08:33.907>go <00:08:34.140>for <00:08:34.375>it.

200
00:08:34.515 --> 00:08:36.025
<00:08:34.515>Build <00:08:34.786>your <00:08:35.058>own. <00:08:35.330>It's <00:08:35.602>great <00:08:35.874>fun.

201
00:08:38.095 --> 00:08:39.315
<00:08:38.095>So <00:08:38.314>now <00:08:38.534>let's <00:08:38.753>do <00:08:38.973>a <00:08:39.193>bit

202
00:08:39.315 --> 00:08:41.995
<00:08:39.315>of <00:08:39.490>a <00:08:39.665>crash <00:08:39.840>course <00:08:40.015>on <00:08:40.190>video <00:08:40.365>on <00:08:40.540>the <00:08:40.715>internet.

203
00:08:42.695 --> 00:08:46.235
<00:08:42.695>So <00:08:42.850>in <00:08:43.006>general, <00:08:43.161>I <00:08:43.317>like <00:08:43.472>to <00:08:43.628>break <00:08:43.783>down <00:08:43.939>the <00:08:44.095>components

204
00:08:46.255 --> 00:08:49.595
<00:08:46.255>of <00:08:46.430>a <00:08:46.605>video <00:08:46.780>service <00:08:46.955>into <00:08:47.130>four <00:08:47.305>sections, <00:08:47.480>uh, <00:08:47.655>capture,

205
00:08:50.205 --> 00:08:52.595
<00:08:50.205>processing, <00:08:50.671>delivery, <00:08:51.138>and <00:08:51.605>playback.

206
00:08:52.935 --> 00:08:55.685
<00:08:52.935>Uh, <00:08:53.109>this <00:08:53.285>is <00:08:53.459>a <00:08:53.635>little <00:08:53.810>diagram <00:08:53.984>from <00:08:54.160>how <00:08:54.334>video.works.

207
00:08:55.835 --> 00:08:57.205
<00:08:55.835>It's <00:08:56.081>a <00:08:56.328>website <00:08:56.574>we <00:08:56.821>put <00:08:57.068>together.

208
00:08:57.205 --> 00:08:59.645
<00:08:57.205>It <00:08:57.380>kind <00:08:57.555>of <00:08:57.730>explains <00:08:57.905>these <00:08:58.080>building <00:08:58.255>blocks <00:08:58.430>a <00:08:58.605>bit

209
00:08:59.665 --> 00:09:01.725
<00:08:59.665>and <00:08:59.820>quite <00:08:59.976>a <00:09:00.131>lot <00:09:00.287>more <00:09:00.442>depth <00:09:00.598>than <00:09:00.753>we're <00:09:00.909>gonna <00:09:01.064>have

210
00:09:01.725 --> 00:09:02.845
<00:09:01.725>time <00:09:01.977>to <00:09:02.229>go <00:09:02.481>into <00:09:02.733>today.

211
00:09:03.185 --> 00:09:05.085
<00:09:03.185>Uh, <00:09:03.385>I <00:09:03.584>really <00:09:03.785>like <00:09:03.984>the <00:09:04.185>animations <00:09:04.385>on <00:09:04.584>here.

212
00:09:05.225 --> 00:09:08.245
<00:09:05.225>Uh, <00:09:05.352>I <00:09:05.479>love <00:09:05.606>a <00:09:05.734>guy <00:09:05.861>in <00:09:05.988>the, <00:09:06.115>the <00:09:06.243>dinosaur <00:09:06.370>costume <00:09:06.497>as <00:09:06.625>well.

213
00:09:08.985 --> 00:09:12.565
<00:09:08.985>So, <00:09:09.160>capture, <00:09:09.335>uh, <00:09:09.510>this <00:09:09.685>is <00:09:09.860>everything <00:09:10.035>from <00:09:10.210>the <00:09:10.385>glass

214
00:09:12.565 --> 00:09:13.845
<00:09:12.565>of <00:09:12.853>a <00:09:13.141>camera <00:09:13.429>lens <00:09:13.717>through

215
00:09:13.845 --> 00:09:16.525
<00:09:13.845>to <00:09:14.078>getting <00:09:14.311>a <00:09:14.545>contribution <00:09:14.778>feed, <00:09:15.011>uh, <00:09:15.245>offsite.

216
00:09:16.825 --> 00:09:19.845
<00:09:16.825>Um, <00:09:16.980>generally <00:09:17.136>this <00:09:17.291>pretty <00:09:17.447>much <00:09:17.602>has <00:09:17.758>to <00:09:17.913>include <00:09:18.069>a <00:09:18.225>combination

217
00:09:19.845 --> 00:09:20.885
<00:09:19.845>of <00:09:20.157>hardware <00:09:20.469>and <00:09:20.781>software,

218
00:09:20.885 --> 00:09:23.765
<00:09:20.885>because <00:09:21.118>overwhelmingly <00:09:21.351>you're <00:09:21.585>gonna <00:09:21.818>want <00:09:22.051>some <00:09:22.285>form

219
00:09:23.905 --> 00:09:25.165
<00:09:23.905>of <00:09:24.283>camera <00:09:24.661>to <00:09:25.039>capture.

220
00:09:25.265 --> 00:09:26.725
<00:09:25.265>So <00:09:25.484>that <00:09:25.703>needs <00:09:25.922>some <00:09:26.141>form <00:09:26.360>of <00:09:26.579>hardware

221
00:09:26.795 --> 00:09:28.885
<00:09:26.795>that <00:09:26.995>can <00:09:27.194>totally <00:09:27.395>just <00:09:27.594>be <00:09:27.795>a <00:09:27.995>webcam, <00:09:28.194>obviously,

222
00:09:29.145 --> 00:09:30.605
<00:09:29.145>but <00:09:29.407>it <00:09:29.670>does <00:09:29.933>include <00:09:30.196>that <00:09:30.459>blend.

223
00:09:30.945 --> 00:09:34.205
<00:09:30.945>Um, <00:09:31.145>we're <00:09:31.345>going <00:09:31.545>to <00:09:31.745>go <00:09:31.945>through <00:09:32.145>some <00:09:32.345>examples

224
00:09:34.205 --> 00:09:35.245
<00:09:34.205>of <00:09:34.392>this <00:09:34.579>later <00:09:34.766>on, <00:09:34.953>but <00:09:35.141>one

225
00:09:35.245 --> 00:09:37.525
<00:09:35.245>of <00:09:35.478>the <00:09:35.711>most <00:09:35.945>common <00:09:36.178>platforms <00:09:36.411>is <00:09:36.645>bs.

226
00:09:37.595 --> 00:09:41.005
<00:09:37.595>It's <00:09:37.828>open <00:09:38.061>broadcaster, <00:09:38.295>software <00:09:38.528>free, <00:09:38.761>simple <00:09:38.995>ish,

227
00:09:41.275 --> 00:09:42.965
<00:09:41.275>open <00:09:41.625>source <00:09:41.975>software <00:09:42.324>vision <00:09:42.675>mixer.

228
00:09:43.225 --> 00:09:45.965
<00:09:43.225>Use <00:09:43.352>it <00:09:43.479>with <00:09:43.606>webcams, <00:09:43.734>use <00:09:43.861>it <00:09:43.988>with <00:09:44.115>capture <00:09:44.243>cards, <00:09:44.370>uh, <00:09:44.497>use <00:09:44.625>it

229
00:09:45.965 --> 00:09:47.765
<00:09:45.965>to <00:09:46.120>capture <00:09:46.276>your <00:09:46.431>screen, <00:09:46.587>all <00:09:46.742>sorts <00:09:46.898>of <00:09:47.053>things <00:09:47.209>like <00:09:47.365>that.

230
00:09:48.235 --> 00:09:50.485
<00:09:48.235>There's <00:09:48.410>Wirecast, <00:09:48.585>which <00:09:48.760>is <00:09:48.935>kind <00:09:49.110>of <00:09:49.285>a <00:09:49.460>more <00:09:49.635>commercial,

231
00:09:50.845 --> 00:09:53.005
<00:09:50.845>slightly <00:09:51.078>easier <00:09:51.311>to <00:09:51.545>use <00:09:51.778>offering <00:09:52.011>when <00:09:52.245>you

232
00:09:53.005 --> 00:09:54.045
<00:09:53.005>get <00:09:53.239>into <00:09:53.473>the <00:09:53.707>hardware <00:09:53.940>world.

233
00:09:54.045 --> 00:09:56.205
<00:09:54.045>There's <00:09:54.245>things <00:09:54.444>like <00:09:54.645>Black <00:09:54.844>Magic, <00:09:55.045>which <00:09:55.245>includes <00:09:55.444>a,

234
00:09:56.225 --> 00:09:58.725
<00:09:56.225>an <00:09:56.425>RT <00:09:56.625>MP <00:09:56.825>encoder <00:09:57.025>on <00:09:57.225>the <00:09:57.425>device, <00:09:57.625>um,

235
00:09:58.865 --> 00:10:00.365
<00:09:58.865>but <00:09:59.202>still <00:09:59.540>pretty <00:09:59.877>cost <00:10:00.215>effective.

236
00:10:00.585 --> 00:10:03.045
<00:10:00.585>And <00:10:00.701>then <00:10:00.818>one <00:10:00.935>of <00:10:01.051>the <00:10:01.168>most <00:10:01.285>common <00:10:01.401>ones <00:10:01.518>we <00:10:01.635>see <00:10:01.751>is <00:10:01.868>things <00:10:01.985>like

237
00:10:03.155 --> 00:10:04.725
<00:10:03.155>iPhones <00:10:03.621>and <00:10:04.088>Android <00:10:04.555>phones.

238
00:10:05.145 --> 00:10:07.485
<00:10:05.145>Um, <00:10:05.300>these <00:10:05.456>things <00:10:05.611>have <00:10:05.767>great <00:10:05.922>cameras <00:10:06.078>in <00:10:06.233>them <00:10:06.389>these <00:10:06.545>days,

239
00:10:07.705 --> 00:10:12.285
<00:10:07.705>but <00:10:07.821>also <00:10:07.938>a <00:10:08.055>lot <00:10:08.171>of <00:10:08.288>processing <00:10:08.405>power, <00:10:08.521>um, <00:10:08.638>which <00:10:08.755>is <00:10:08.871>a <00:10:08.988>great <00:10:09.105>way

240
00:10:12.465 --> 00:10:14.045
<00:10:12.465>to, <00:10:12.815>uh, <00:10:13.165>produce <00:10:13.515>a <00:10:13.865>stream.

241
00:10:14.225 --> 00:10:16.525
<00:10:14.225>Um, <00:10:14.400>and <00:10:14.575>there's <00:10:14.750>lots <00:10:14.925>of <00:10:15.100>apps <00:10:15.275>you <00:10:15.450>can <00:10:15.625>get

242
00:10:16.525 --> 00:10:18.405
<00:10:16.525>for <00:10:16.875>under <00:10:17.225>like <00:10:17.574>$5 <00:10:17.925>that'll

243
00:10:18.525 --> 00:10:19.605
<00:10:18.525>actually <00:10:18.687>do <00:10:18.848>a <00:10:19.011>really <00:10:19.173>good <00:10:19.335>live <00:10:19.497>stream.

244
00:10:20.025 --> 00:10:23.605
<00:10:20.025>Um, <00:10:20.165>and <00:10:20.305>you <00:10:20.444>can <00:10:20.584>obviously <00:10:20.725>then <00:10:20.865>build, <00:10:21.005>uh, <00:10:21.145>apps <00:10:21.285>as <00:10:21.425>well

245
00:10:23.635 --> 00:10:25.085
<00:10:23.635>that <00:10:23.852>can <00:10:24.070>live <00:10:24.287>stream <00:10:24.505>off <00:10:24.722>those <00:10:24.940>devices.

246
00:10:26.945 --> 00:10:28.435
<00:10:26.945>Then <00:10:27.392>there's <00:10:27.839>processing, <00:10:28.286>taking

247
00:10:28.475 --> 00:10:30.475
<00:10:28.475>that <00:10:28.755>signal <00:10:29.035>we've <00:10:29.315>just <00:10:29.595>generated, <00:10:29.875>uh,

248
00:10:30.575 --> 00:10:31.875
<00:10:30.575>and <00:10:30.965>turning <00:10:31.355>into <00:10:31.745>something

249
00:10:31.875 --> 00:10:33.875
<00:10:31.875>that <00:10:32.108>could <00:10:32.341>be <00:10:32.575>delivered <00:10:32.808>to <00:10:33.041>end <00:10:33.275>viewers.

250
00:10:34.415 --> 00:10:36.855
<00:10:34.415>So <00:10:34.615>generally <00:10:34.814>this <00:10:35.015>includes <00:10:35.214>a, <00:10:35.415>a <00:10:35.615>few <00:10:35.814>steps.

251
00:10:36.955 --> 00:10:39.775
<00:10:36.955>Uh, <00:10:37.130>transcode <00:10:37.305>packaging <00:10:37.480>and <00:10:37.655>storage <00:10:37.830>are <00:10:38.005>generally <00:10:38.180>the <00:10:38.355>free.

252
00:10:40.155 --> 00:10:42.535
<00:10:40.155>Um, <00:10:40.355>obviously <00:10:40.555>muck <00:10:40.755>bundles <00:10:40.954>always <00:10:41.155>in <00:10:41.355>for <00:10:41.555>you.

253
00:10:42.835 --> 00:10:46.135
<00:10:42.835>Uh, <00:10:43.010>an <00:10:43.185>encoder <00:10:43.360>could <00:10:43.535>be <00:10:43.710>anything <00:10:43.885>ranging <00:10:44.060>from, <00:10:44.235>uh,

254
00:10:46.255 --> 00:10:49.455
<00:10:46.255>FFM <00:10:46.410>Peg <00:10:46.566>running <00:10:46.721>on <00:10:46.877>a <00:10:47.032>digital <00:10:47.188>ocean <00:10:47.343>droplet, <00:10:47.499>uh, <00:10:47.655>through

255
00:10:49.475 --> 00:10:51.735
<00:10:49.475>to <00:10:49.825>AWS's <00:10:50.175>dedicated <00:10:50.525>media <00:10:50.875>services.

256
00:10:52.195 --> 00:10:54.095
<00:10:52.195>Wowzer <00:10:52.545>ENC <00:10:52.895>coding.com, <00:10:53.245>Zen <00:10:53.595>Coder.

257
00:10:54.285 --> 00:10:56.815
<00:10:54.285>Your <00:10:54.459>storage <00:10:54.635>can <00:10:54.810>be <00:10:54.985>anything <00:10:55.160>ranging <00:10:55.334>from <00:10:55.510>your <00:10:55.685>traditional

258
00:10:56.815 --> 00:10:59.855
<00:10:56.815>object <00:10:56.955>stores <00:10:57.095>to <00:10:57.235>just <00:10:57.375>a <00:10:57.515>hard <00:10:57.655>drive <00:10:57.795>on <00:10:57.935>a <00:10:58.075>machine <00:10:58.215>somewhere,

259
00:11:00.165 --> 00:11:02.175
<00:11:00.165>your <00:11:00.398>packages, <00:11:00.631>some <00:11:00.865>great <00:11:01.098>open <00:11:01.331>source <00:11:01.564>ons.

260
00:11:02.175 --> 00:11:03.615
<00:11:02.175>Bentos, <00:11:02.434>one <00:11:02.693>of <00:11:02.952>my <00:11:03.211>personal <00:11:03.471>favorites

261
00:11:03.635 --> 00:11:05.775
<00:11:03.635>or <00:11:04.101>commercial <00:11:04.568>unified <00:11:05.035>streaming.

262
00:11:06.845 --> 00:11:08.175
<00:11:06.845>Once <00:11:07.084>you've <00:11:07.323>got <00:11:07.563>that <00:11:07.802>video <00:11:08.041>though,

263
00:11:08.315 --> 00:11:09.895
<00:11:08.315>you <00:11:08.548>need <00:11:08.781>some <00:11:09.015>way <00:11:09.248>of <00:11:09.481>delivering <00:11:09.715>it.

264
00:11:09.955 --> 00:11:12.375
<00:11:09.955>So <00:11:10.155>this <00:11:10.355>is <00:11:10.555>taking <00:11:10.755>this <00:11:10.955>prepared <00:11:11.155>media <00:11:11.355>content

265
00:11:12.475 --> 00:11:14.015
<00:11:12.475>and <00:11:12.706>delivering <00:11:12.937>it <00:11:13.168>to <00:11:13.399>your <00:11:13.630>end <00:11:13.861>viewers.

266
00:11:14.115 --> 00:11:15.855
<00:11:14.115>So <00:11:14.348>there's <00:11:14.581>a <00:11:14.815>few <00:11:15.048>ways <00:11:15.281>this <00:11:15.515>happens.

267
00:11:16.725 --> 00:11:18.935
<00:11:16.725>Generally, <00:11:16.958>this <00:11:17.191>is <00:11:17.425>using <00:11:17.658>commercial <00:11:17.891>content <00:11:18.125>delivery

268
00:11:18.935 --> 00:11:20.375
<00:11:18.935>networks, <00:11:19.583>CDNs, <00:11:20.231>um,

269
00:11:20.435 --> 00:11:23.335
<00:11:20.435>and <00:11:20.574>the <00:11:20.714>best <00:11:20.854>of <00:11:20.994>breed <00:11:21.135>products <00:11:21.275>tend <00:11:21.415>to <00:11:21.555>use <00:11:21.694>multiple <00:11:21.834>CDNs.

270
00:11:23.675 --> 00:11:26.815
<00:11:23.675>So <00:11:23.849>fastly, <00:11:24.025>Akamai, <00:11:24.199>cloud <00:11:24.375>fronts, <00:11:24.550>that <00:11:24.724>sort <00:11:24.900>of <00:11:25.074>thing.

271
00:11:26.815 --> 00:11:28.215
<00:11:26.815>Obviously <00:11:27.445>we <00:11:28.075>mux

272
00:11:28.215 --> 00:11:31.735
<00:11:28.215>and <00:11:28.370>many <00:11:28.526>of <00:11:28.681>the <00:11:28.837>video <00:11:28.992>APIs <00:11:29.148>do <00:11:29.303>bundle <00:11:29.459>into, <00:11:29.615>um,

273
00:11:32.355 --> 00:11:36.455
<00:11:32.355>bundle <00:11:32.555>one <00:11:32.755>or <00:11:32.955>many <00:11:33.155>CDNs <00:11:33.355>into <00:11:33.555>their <00:11:33.755>offerings.

274
00:11:36.875 --> 00:11:39.575
<00:11:36.875>Um, <00:11:37.030>and <00:11:37.186>though <00:11:37.341>if <00:11:37.497>you <00:11:37.652>look <00:11:37.808>at <00:11:37.963>things <00:11:38.119>like <00:11:38.275>Netflix

275
00:11:39.995 --> 00:11:41.695
<00:11:39.995>or <00:11:40.461>Amazon <00:11:40.928>Prime <00:11:41.395>video,

276
00:11:42.075 --> 00:11:45.735
<00:11:42.075>or <00:11:42.355>even <00:11:42.635>places <00:11:42.915>like, <00:11:43.195>uh, <00:11:43.475>Facebook

277
00:11:45.755 --> 00:11:47.455
<00:11:45.755>for <00:11:46.035>actually <00:11:46.314>building <00:11:46.595>their <00:11:46.875>own <00:11:47.155>CDNs

278
00:11:47.595 --> 00:11:51.765
<00:11:47.595>to <00:11:47.750>be <00:11:47.906>more <00:11:48.061>cost <00:11:48.217>efficient, <00:11:48.372>once <00:11:48.528>we've <00:11:48.683>got <00:11:48.839>that <00:11:48.995>video

279
00:11:51.905 --> 00:11:55.045
<00:11:51.905>to <00:11:52.060>the <00:11:52.216>end <00:11:52.371>user, <00:11:52.527>there's <00:11:52.682>unfortunately <00:11:52.838>still <00:11:52.993>work <00:11:53.149>to <00:11:53.305>do.

280
00:11:55.505 --> 00:11:57.805
<00:11:55.505>Um, <00:11:55.680>there <00:11:55.855>is <00:11:56.030>a <00:11:56.205>process <00:11:56.380>of <00:11:56.555>requesting <00:11:56.730>the <00:11:56.905>content,

281
00:11:58.005 --> 00:12:00.285
<00:11:58.005>decoding <00:11:58.285>it, <00:11:58.564>uh, <00:11:58.845>potentially <00:11:59.125>decrypting <00:11:59.405>it

282
00:12:00.505 --> 00:12:02.085
<00:12:00.505>and <00:12:00.738>displaying <00:12:00.971>it <00:12:01.205>on <00:12:01.438>the <00:12:01.671>view's <00:12:01.905>device.

283
00:12:02.345 --> 00:12:03.445
<00:12:02.345>Um, <00:12:02.675>this <00:12:03.005>is <00:12:03.335>a,

284
00:12:03.715 --> 00:12:06.165
<00:12:03.715>this <00:12:03.948>could <00:12:04.181>be <00:12:04.415>easily <00:12:04.648>a <00:12:04.881>whole <00:12:05.115>presentation

285
00:12:06.165 --> 00:12:07.285
<00:12:06.165>on <00:12:06.366>its <00:12:06.568>own <00:12:06.769>talking <00:12:06.971>about <00:12:07.173>players.

286
00:12:07.785 --> 00:12:09.605
<00:12:07.785>Um, <00:12:08.064>there <00:12:08.344>are <00:12:08.625>obviously <00:12:08.905>video <00:12:09.185>players

287
00:12:09.665 --> 00:12:12.365
<00:12:09.665>for <00:12:09.898>the <00:12:10.131>web <00:12:10.365>video <00:12:10.598>players, <00:12:10.831>iOS, <00:12:11.064>Android,

288
00:12:12.505 --> 00:12:15.045
<00:12:12.505>and <00:12:12.705>pretty <00:12:12.905>much <00:12:13.105>every <00:12:13.305>ecosystem <00:12:13.505>in <00:12:13.705>between <00:12:13.905>those.

289
00:12:15.195 --> 00:12:16.805
<00:12:15.195>It's <00:12:15.545>a <00:12:15.895>very <00:12:16.245>complex <00:12:16.595>technology,

290
00:12:19.155 --> 00:12:21.135
<00:12:19.155>but, <00:12:19.505>uh, <00:12:19.855>we're <00:12:20.204>developers, <00:12:20.555>right?

291
00:12:21.435 --> 00:12:24.455
<00:12:21.435>Um, <00:12:21.609>what <00:12:21.785>you <00:12:21.959>could <00:12:22.135>ask <00:12:22.310>me <00:12:22.484>is, <00:12:22.660>Hey, <00:12:22.834>we,

292
00:12:24.515 --> 00:12:27.215
<00:12:24.515>we <00:12:24.655>have <00:12:24.795>this <00:12:24.935>thing <00:12:25.074>in <00:12:25.215>the <00:12:25.355>browser, <00:12:25.495>a <00:12:25.635>video <00:12:25.775>elements, <00:12:25.915>uh,

293
00:12:27.515 --> 00:12:30.295
<00:12:27.515>why <00:12:27.689>do <00:12:27.865>we <00:12:28.040>need <00:12:28.215>any <00:12:28.390>of <00:12:28.564>this <00:12:28.740>complex <00:12:28.915>delivery

294
00:12:30.355 --> 00:12:31.775
<00:12:30.355>and <00:12:30.781>playback <00:12:31.207>software <00:12:31.633>stack?

295
00:12:31.885 --> 00:12:34.535
<00:12:31.885>Well, <00:12:32.085>there's, <00:12:32.285>uh, <00:12:32.485>a <00:12:32.685>couple <00:12:32.885>of <00:12:33.085>reasons <00:12:33.285>here.

296
00:12:34.795 --> 00:12:37.655
<00:12:34.795>Um, <00:12:34.935>one, <00:12:35.074>you <00:12:35.214>know, <00:12:35.354>this, <00:12:35.495>this <00:12:35.635>doesn't <00:12:35.775>tend <00:12:35.915>to <00:12:36.055>work <00:12:36.194>well

297
00:12:37.655 --> 00:12:39.215
<00:12:37.655>for <00:12:37.935>live <00:12:38.214>streaming <00:12:38.495>or <00:12:38.775>at <00:12:39.055>all

298
00:12:39.215 --> 00:12:40.935
<00:12:39.215>for <00:12:39.390>live <00:12:39.565>streaming <00:12:39.740>in <00:12:39.915>the <00:12:40.090>majority <00:12:40.265>of <00:12:40.440>use <00:12:40.615>cases.

299
00:12:42.155 --> 00:12:44.255
<00:12:42.155>But <00:12:42.505>most <00:12:42.855>fundamentally, <00:12:43.204>uh, <00:12:43.555>viewers,

300
00:12:44.255 --> 00:12:45.895
<00:12:44.255>bandwidth <00:12:44.535>is <00:12:44.814>changing <00:12:45.095>all <00:12:45.375>the <00:12:45.655>time.

301
00:12:46.275 --> 00:12:48.095
<00:12:46.275>We <00:12:46.508>could <00:12:46.741>just <00:12:46.975>progressively <00:12:47.208>stream <00:12:47.441>one <00:12:47.675>file,

302
00:12:48.145 --> 00:12:50.975
<00:12:48.145>stick <00:12:48.319>it <00:12:48.495>in <00:12:48.670>a <00:12:48.845>video <00:12:49.020>element, <00:12:49.194>totally <00:12:49.370>would <00:12:49.545>work.

303
00:12:51.155 --> 00:12:52.975
<00:12:51.155>But <00:12:51.388>some <00:12:51.621>users <00:12:51.855>are <00:12:52.088>gonna <00:12:52.321>encounter <00:12:52.555>buffering,

304
00:12:53.275 --> 00:12:55.135
<00:12:53.275>and <00:12:53.475>some <00:12:53.675>users <00:12:53.875>are <00:12:54.074>gonna <00:12:54.275>sacrifice <00:12:54.475>on <00:12:54.675>quality,

305
00:12:55.245 --> 00:12:56.735
<00:12:55.245>depending <00:12:55.513>on <00:12:55.781>if <00:12:56.049>you've <00:12:56.317>got <00:12:56.586>more

306
00:12:56.795 --> 00:12:59.575
<00:12:56.795>or <00:12:56.950>less <00:12:57.106>bandwidth <00:12:57.261>than <00:12:57.417>the <00:12:57.572>file <00:12:57.728>that <00:12:57.883>you <00:12:58.039>are <00:12:58.194>sending.

307
00:13:00.275 --> 00:13:01.615
<00:13:00.275>Uh, <00:13:00.576>this <00:13:00.878>is <00:13:01.179>considered <00:13:01.481>a,

308
00:13:01.695 --> 00:13:02.935
<00:13:01.695>a <00:13:01.918>known <00:13:02.141>problem <00:13:02.364>in <00:13:02.587>the <00:13:02.810>video

309
00:13:03.175 --> 00:13:04.215
<00:13:03.175>industry, <00:13:03.331>or <00:13:03.487>at <00:13:03.643>least <00:13:03.799>a <00:13:03.955>solve <00:13:04.111>problem.

310
00:13:04.355 --> 00:13:06.535
<00:13:04.355>And <00:13:04.510>it's <00:13:04.666>known <00:13:04.821>as <00:13:04.977>adaptive <00:13:05.132>bit <00:13:05.288>rate <00:13:05.443>or <00:13:05.599>a <00:13:05.755>BR.

311
00:13:06.835 --> 00:13:08.455
<00:13:06.835>Uh, <00:13:07.185>it's <00:13:07.535>pretty <00:13:07.885>simple <00:13:08.235>technology.

312
00:13:08.995 --> 00:13:10.255
<00:13:08.995>You <00:13:09.278>take <00:13:09.562>your <00:13:09.845>inbound <00:13:10.129>feed

313
00:13:10.355 --> 00:13:13.055
<00:13:10.355>or <00:13:10.530>inbound <00:13:10.705>file, <00:13:10.880>you <00:13:11.055>encode <00:13:11.230>it <00:13:11.405>multiple <00:13:11.580>different <00:13:11.755>bit

314
00:13:13.055 --> 00:13:14.175
<00:13:13.055>rates <00:13:13.559>and <00:13:14.063>resolutions.

315
00:13:14.515 --> 00:13:18.255
<00:13:14.515>You <00:13:14.715>segment <00:13:14.915>those <00:13:15.115>output <00:13:15.314>files <00:13:15.515>between, <00:13:15.715>generally <00:13:15.915>speaking,

316
00:13:18.435 --> 00:13:20.295
<00:13:18.435>two <00:13:18.785>seconds <00:13:19.135>and <00:13:19.484>10 <00:13:19.834>seconds,

317
00:13:20.915 --> 00:13:22.015
<00:13:20.915>and <00:13:21.162>then <00:13:21.410>you <00:13:21.657>just <00:13:21.905>switch

318
00:13:22.015 --> 00:13:24.015
<00:13:22.015>between <00:13:22.215>them <00:13:22.415>based <00:13:22.615>on <00:13:22.814>what <00:13:23.015>bandwidth <00:13:23.215>is <00:13:23.415>available.

319
00:13:26.025 --> 00:13:27.285
<00:13:26.025>It <00:13:26.214>looks <00:13:26.403>a <00:13:26.592>little <00:13:26.781>bit <00:13:26.970>like <00:13:27.159>this.

320
00:13:27.545 --> 00:13:29.885
<00:13:27.545>Uh, <00:13:27.719>so <00:13:27.895>on <00:13:28.069>the <00:13:28.245>left <00:13:28.420>we've <00:13:28.594>got, <00:13:28.770>uh, <00:13:28.944>OBS,

321
00:13:29.885 --> 00:13:31.125
<00:13:29.885>we'll <00:13:30.044>talk <00:13:30.203>about <00:13:30.363>that <00:13:30.522>more <00:13:30.682>in <00:13:30.841>a <00:13:31.001>second.

322
00:13:31.435 --> 00:13:33.565
<00:13:31.435>Producing <00:13:32.135>A-R-T-M-P. <00:13:32.834>Stream.

323
00:13:33.965 --> 00:13:35.805
<00:13:33.965>RTMP <00:13:34.245>is <00:13:34.525>a <00:13:34.805>contribution <00:13:35.085>grade <00:13:35.365>signal.

324
00:13:36.345 --> 00:13:39.525
<00:13:36.345>Um, <00:13:36.545>it <00:13:36.745>stems <00:13:36.945>from <00:13:37.145>the <00:13:37.345>flash <00:13:37.545>days, <00:13:37.745>uh,

325
00:13:39.785 --> 00:13:44.405
<00:13:39.785>but <00:13:39.912>it's <00:13:40.039>kind <00:13:40.166>of <00:13:40.294>all <00:13:40.421>we've <00:13:40.548>got <00:13:40.675>still <00:13:40.803>that <00:13:40.930>is, <00:13:41.057>uh, <00:13:41.185>compatible

326
00:13:44.405 --> 00:13:47.445
<00:13:44.405>with <00:13:44.545>a <00:13:44.685>lot <00:13:44.824>of <00:13:44.964>platforms, <00:13:45.105>what <00:13:45.245>we're <00:13:45.385>doing <00:13:45.525>every <00:13:45.665>two <00:13:45.805>seconds

327
00:13:47.465 --> 00:13:49.845
<00:13:47.465>during <00:13:47.745>that <00:13:48.025>stream, <00:13:48.305>we're <00:13:48.585>generating <00:13:48.865>three

328
00:13:49.845 --> 00:13:51.005
<00:13:49.845>different <00:13:50.367>video <00:13:50.889>qualities.

329
00:13:51.065 --> 00:13:54.165
<00:13:51.065>Uh, <00:13:51.240>half <00:13:51.415>a <00:13:51.590>megabit, <00:13:51.765>one <00:13:51.940>megabit, <00:13:52.115>and <00:13:52.290>two <00:13:52.465>megabits.

330
00:13:54.395 --> 00:13:56.045
<00:13:54.395>Then <00:13:54.628>the <00:13:54.861>next <00:13:55.095>two <00:13:55.328>seconds <00:13:55.561>come <00:13:55.795>along,

331
00:13:56.265 --> 00:13:57.925
<00:13:56.265>we <00:13:56.545>generate <00:13:56.824>another <00:13:57.105>set <00:13:57.385>of <00:13:57.665>renditions

332
00:13:58.225 --> 00:13:59.925
<00:13:58.225>and <00:13:58.458>every <00:13:58.691>two <00:13:58.925>seconds, <00:13:59.158>we're <00:13:59.391>just <00:13:59.625>continually

333
00:13:59.925 --> 00:14:00.965
<00:13:59.925>generating <00:14:00.393>those <00:14:00.861>segments.

334
00:14:02.755 --> 00:14:05.055
<00:14:02.755>The <00:14:02.910>player <00:14:03.066>then <00:14:03.221>has <00:14:03.377>to <00:14:03.532>pick <00:14:03.688>one <00:14:03.843>of <00:14:03.999>those <00:14:04.155>segments.

335
00:14:05.315 --> 00:14:08.495
<00:14:05.315>Uh, <00:14:05.490>generally <00:14:05.665>it'll <00:14:05.840>pick <00:14:06.015>the <00:14:06.190>lowest <00:14:06.365>quality <00:14:06.540>one <00:14:06.715>first

336
00:14:08.795 --> 00:14:11.095
<00:14:08.795>and <00:14:08.950>then <00:14:09.106>work <00:14:09.261>its <00:14:09.417>way <00:14:09.572>up <00:14:09.728>as <00:14:09.883>the <00:14:10.039>bandwidth <00:14:10.194>improves.

337
00:14:11.095 --> 00:14:12.455
<00:14:11.095>So <00:14:11.269>in <00:14:11.444>this <00:14:11.619>case, <00:14:11.794>we've <00:14:11.969>got <00:14:12.144>an <00:14:12.319>example

338
00:14:12.455 --> 00:14:15.255
<00:14:12.455>where <00:14:12.610>the <00:14:12.766>bandwidth <00:14:12.921>was <00:14:13.077>low <00:14:13.232>for <00:14:13.388>the <00:14:13.543>first <00:14:13.699>two <00:14:13.855>segments

339
00:14:15.255 --> 00:14:17.375
<00:14:15.255>and <00:14:15.430>then <00:14:15.605>increased <00:14:15.780>through <00:14:15.955>a <00:14:16.130>third <00:14:16.305>and <00:14:16.480>fourth <00:14:16.655>segment.

340
00:14:17.755 --> 00:14:19.135
<00:14:17.755>So <00:14:18.003>player <00:14:18.251>was <00:14:18.500>able <00:14:18.748>to <00:14:18.997>adapt,

341
00:14:19.185 --> 00:14:21.335
<00:14:19.185>hence <00:14:19.359>adapted <00:14:19.535>bit <00:14:19.709>rates <00:14:19.885>and <00:14:20.060>work <00:14:20.234>its <00:14:20.410>way <00:14:20.584>up.

342
00:14:21.335 --> 00:14:24.815
<00:14:21.335>The, <00:14:21.535>the <00:14:21.735>video <00:14:21.935>qualities <00:14:22.135>here, <00:14:22.335>generally <00:14:22.535>the <00:14:22.735>way

343
00:14:24.815 --> 00:14:27.375
<00:14:24.815>that <00:14:24.970>players <00:14:25.126>do <00:14:25.281>this <00:14:25.437>is <00:14:25.592>they <00:14:25.748>look <00:14:25.903>at <00:14:26.059>the <00:14:26.215>performance

344
00:14:27.375 --> 00:14:28.415
<00:14:27.375>of <00:14:27.687>the <00:14:27.999>previous <00:14:28.310>segment

345
00:14:28.835 --> 00:14:30.815
<00:14:28.835>or <00:14:29.068>a <00:14:29.301>weighted <00:14:29.535>performance <00:14:29.768>of, <00:14:30.001>you <00:14:30.235>know,

346
00:14:30.815 --> 00:14:32.455
<00:14:30.815>the <00:14:31.095>previous <00:14:31.375>three <00:14:31.655>or <00:14:31.935>four <00:14:32.215>segments.

347
00:14:32.565 --> 00:14:35.615
<00:14:32.565>Weighting <00:14:32.765>a <00:14:32.965>most <00:14:33.165>recent <00:14:33.365>segment <00:14:33.565>to <00:14:33.765>estimate <00:14:33.965>bandwidth.

348
00:14:37.255 --> 00:14:39.865
<00:14:37.255>There's <00:14:37.430>a <00:14:37.605>couple <00:14:37.780>of, <00:14:37.955>uh, <00:14:38.130>dominant <00:14:38.305>technologies <00:14:38.480>for <00:14:38.655>this.

349
00:14:40.085 --> 00:14:43.865
<00:14:40.085>Um, <00:14:40.240>the <00:14:40.396>first <00:14:40.551>is <00:14:40.707>HLS, <00:14:40.862>uh, <00:14:41.018>hippopotamus, <00:14:41.173>no, <00:14:41.329>sorry, <00:14:41.485>wait,

350
00:14:44.265 --> 00:14:45.665
<00:14:44.265>HGTP <00:14:44.895>live <00:14:45.525>streaming.

351
00:14:46.085 --> 00:14:50.185
<00:14:46.085>Um, <00:14:46.260>this <00:14:46.435>is <00:14:46.610>Apple's <00:14:46.785>standard <00:14:46.960>for <00:14:47.135>adaptive <00:14:47.310>bitrate <00:14:47.485>delivery.

352
00:14:50.605 --> 00:14:53.685
<00:14:50.605>Um, <00:14:50.805>it <00:14:51.005>is <00:14:51.205>pretty <00:14:51.405>ubiquitous <00:14:51.605>across <00:14:51.805>devices, <00:14:52.005>uh,

353
00:14:53.685 --> 00:14:57.605
<00:14:53.685>between <00:14:53.918>set <00:14:54.151>boxes, <00:14:54.385>smart <00:14:54.618>TVs, <00:14:54.851>um, <00:14:55.084>browsers,

354
00:14:57.615 --> 00:14:58.925
<00:14:57.615>often <00:14:58.204>using <00:14:58.794>polyfills.

355
00:14:58.945 --> 00:15:02.125
<00:14:58.945>You <00:14:59.085>can <00:14:59.225>generally <00:14:59.365>get <00:14:59.505>hhl <00:14:59.645>s <00:14:59.785>to <00:14:59.925>play <00:15:00.065>pretty <00:15:00.205>much <00:15:00.345>anywhere.

356
00:15:02.625 --> 00:15:06.405
<00:15:02.625>Um, <00:15:02.780>it <00:15:02.936>uses <00:15:03.091>a <00:15:03.247>M <00:15:03.402>three <00:15:03.558>U <00:15:03.713>eight <00:15:03.869>manifest <00:15:04.025>file.

357
00:15:06.905 --> 00:15:11.085
<00:15:06.905>Now, <00:15:07.045>if <00:15:07.185>anyone <00:15:07.324>remembers <00:15:07.464>back <00:15:07.605>in <00:15:07.745>the <00:15:07.885>day <00:15:08.025>downloading <00:15:08.165>M <00:15:08.305>three

358
00:15:11.205 --> 00:15:14.285
<00:15:11.205>U <00:15:11.345>playlists, <00:15:11.485>uh, <00:15:11.625>to <00:15:11.765>go <00:15:11.905>along <00:15:12.045>with <00:15:12.185>your <00:15:12.325>pirated <00:15:12.465>MP <00:15:12.605>freeze,

359
00:15:14.915 --> 00:15:17.245
<00:15:14.915>this <00:15:15.115>is <00:15:15.314>actually <00:15:15.515>a <00:15:15.714>variant <00:15:15.915>of <00:15:16.115>that <00:15:16.314>technology.

360
00:15:18.775 --> 00:15:20.985
<00:15:18.775>There's <00:15:19.055>another <00:15:19.334>standard, <00:15:19.615>uh, <00:15:19.895>MPEG <00:15:20.175>dash

361
00:15:21.045 --> 00:15:22.345
<00:15:21.045>that's <00:15:21.337>very <00:15:21.630>popular <00:15:21.922>as <00:15:22.215>well.

362
00:15:22.345 --> 00:15:25.425
<00:15:22.345>General <00:15:22.520>EVs <00:15:22.695>represent <00:15:22.870>about <00:15:23.045>half <00:15:23.220>the <00:15:23.395>market <00:15:23.570>E <00:15:23.745>direction.

363
00:15:25.965 --> 00:15:30.265
<00:15:25.965>Um, <00:15:26.120>so <00:15:26.276>this <00:15:26.431>is <00:15:26.587>MPEG <00:15:26.742>Dynamic <00:15:26.898>Adaptive <00:15:27.053>streaming <00:15:27.209>over <00:15:27.365>HGTP.

364
00:15:30.685 --> 00:15:32.905
<00:15:30.685>So <00:15:31.035>proprietary <00:15:31.385>patent <00:15:31.734>encumbered <00:15:32.084>protocol.

365
00:15:33.665 --> 00:15:35.385
<00:15:33.665>Apparently <00:15:33.898>you <00:15:34.131>can <00:15:34.365>patent <00:15:34.598>an <00:15:34.831>XML <00:15:35.064>file,

366
00:15:35.385 --> 00:15:36.665
<00:15:35.385>but <00:15:35.615>that's <00:15:35.845>a <00:15:36.076>whole <00:15:36.306>different <00:15:36.536>topic.

367
00:15:37.205 --> 00:15:40.425
<00:15:37.205>Um, <00:15:37.380>generally <00:15:37.555>used <00:15:37.730>for <00:15:37.905>advanced <00:15:38.080>high <00:15:38.255>value <00:15:38.430>digital, <00:15:38.605>right

368
00:15:40.425 --> 00:15:43.665
<00:15:40.425>to <00:15:40.580>management <00:15:40.736>content, <00:15:40.891>uh, <00:15:41.047>smarts, <00:15:41.202>TVs, <00:15:41.358>that <00:15:41.513>sort <00:15:41.669>of <00:15:41.824>thing.

369
00:15:44.875 --> 00:15:48.935
<00:15:44.875>It <00:15:45.050>has <00:15:45.225>an <00:15:45.400>XML <00:15:45.575>manifest <00:15:45.750>file. <00:15:45.925>What <00:15:46.100>are <00:15:46.275>manifests?

370
00:15:49.095 --> 00:15:52.895
<00:15:49.095>I <00:15:49.235>hear <00:15:49.375>you <00:15:49.515>asking. <00:15:49.655>Well, <00:15:49.795>manifests <00:15:49.935>are <00:15:50.075>just <00:15:50.215>text <00:15:50.355>files, <00:15:50.495>uh,

371
00:15:52.895 --> 00:15:55.415
<00:15:52.895>and <00:15:53.095>they <00:15:53.295>describe <00:15:53.495>what <00:15:53.694>different <00:15:53.895>renditions <00:15:54.095>are <00:15:54.295>available.

372
00:15:55.955 --> 00:15:58.575
<00:15:55.955>Uh, <00:15:56.155>the <00:15:56.355>location <00:15:56.555>of <00:15:56.755>all <00:15:56.955>of <00:15:57.155>the <00:15:57.355>segments

373
00:15:58.635 --> 00:16:00.175
<00:15:58.635>and <00:15:58.912>the <00:15:59.189>duration <00:15:59.466>of <00:15:59.743>those <00:16:00.021>segments.

374
00:16:00.515 --> 00:16:04.375
<00:16:00.515>Uh, <00:16:00.670>usually <00:16:00.826>delivered <00:16:00.981>over <00:16:01.137>HTP, <00:16:01.292>certainly <00:16:01.448>the <00:16:01.603>case <00:16:01.759>for <00:16:01.915>HLS

375
00:16:04.395 --> 00:16:07.495
<00:16:04.395>and <00:16:04.595>Dash <00:16:04.795>and <00:16:04.995>Apple <00:16:05.194>actually <00:16:05.395>call <00:16:05.595>these <00:16:05.795>playlists,

376
00:16:09.235 --> 00:16:11.295
<00:16:09.235>umm <00:16:09.701>delivers <00:16:10.168>HLS <00:16:10.635>dominantly.

377
00:16:11.475 --> 00:16:14.455
<00:16:11.475>Um, <00:16:11.602>so <00:16:11.729>we'll <00:16:11.856>really <00:16:11.984>just <00:16:12.111>dig <00:16:12.238>into <00:16:12.365>HLS <00:16:12.493>as <00:16:12.620>a <00:16:12.747>protocol <00:16:12.875>today.

378
00:16:14.995 --> 00:16:18.175
<00:16:14.995>Um, <00:16:15.170>there <00:16:15.345>are <00:16:15.520>two <00:16:15.695>manifests <00:16:15.870>in <00:16:16.045>HLSA <00:16:16.220>variant <00:16:16.395>manifest

379
00:16:18.195 --> 00:16:20.775
<00:16:18.195>and <00:16:18.335>a <00:16:18.475>medium <00:16:18.615>manifest <00:16:18.755>for <00:16:18.895>our <00:16:19.035>variety <00:16:19.175>of <00:16:19.315>names <00:16:19.455>for <00:16:19.595>these.

380
00:16:21.275 --> 00:16:23.015
<00:16:21.275>Um, <00:16:21.508>if <00:16:21.741>you <00:16:21.975>see <00:16:22.208>the <00:16:22.441>first <00:16:22.675>one,

381
00:16:23.015 --> 00:16:25.255
<00:16:23.015>this <00:16:23.215>just <00:16:23.415>describes <00:16:23.615>different <00:16:23.814>qualities <00:16:24.015>we <00:16:24.215>have, <00:16:24.415>right?

382
00:16:25.255 --> 00:16:30.095
<00:16:25.255>We've <00:16:25.382>got <00:16:25.509>a <00:16:25.636>2.5 <00:16:25.764>megabit <00:16:25.891>stream, <00:16:26.018>which <00:16:26.145>is <00:16:26.273>seven <00:16:26.400>20 <00:16:26.527>PA, <00:16:26.655>uh,

383
00:16:30.155 --> 00:16:33.015
<00:16:30.155>1.6 <00:16:30.355>megabit <00:16:30.555>stream, <00:16:30.755>which <00:16:30.954>is <00:16:31.155>five <00:16:31.355>40 <00:16:31.555>p.

384
00:16:33.395 --> 00:16:36.775
<00:16:33.395>And, <00:16:33.569>uh, <00:16:33.745>a <00:16:33.920>10 <00:16:34.095>80 <00:16:34.270>stream, <00:16:34.444>which <00:16:34.620>is, <00:16:34.795>uh,

385
00:16:37.045 --> 00:16:38.495
<00:16:37.045>4.7 <00:16:38.350>megabits.

386
00:16:38.885 --> 00:16:40.895
<00:16:38.885>Then <00:16:39.085>we'll <00:16:39.285>have <00:16:39.485>a <00:16:39.685>media <00:16:39.885>manifest <00:16:40.085>for <00:16:40.285>each

387
00:16:40.895 --> 00:16:42.135
<00:16:40.895>of <00:16:41.174>those <00:16:41.453>qualities <00:16:41.732>as <00:16:42.011>well.

388
00:16:42.555 --> 00:16:44.855
<00:16:42.555>In <00:16:42.729>this <00:16:42.905>case, <00:16:43.079>uh, <00:16:43.255>only <00:16:43.430>three <00:16:43.604>segments <00:16:43.780>in <00:16:43.954>it,

389
00:16:44.875 --> 00:16:47.895
<00:16:44.875>and <00:16:45.030>each <00:16:45.186>of <00:16:45.341>those <00:16:45.497>segments <00:16:45.652>is <00:16:45.808>two <00:16:45.963>seconds <00:16:46.119>in <00:16:46.275>duration.

390
00:16:49.495 --> 00:16:52.395
<00:16:49.495>But <00:16:49.611>I <00:16:49.728>really <00:16:49.845>think <00:16:49.961>the, <00:16:50.078>the <00:16:50.195>best <00:16:50.311>way <00:16:50.428>to <00:16:50.545>see <00:16:50.661>this <00:16:50.778>working <00:16:50.895>is

391
00:16:52.465 --> 00:16:54.115
<00:16:52.465>with <00:16:52.745>a <00:16:53.025>demo, <00:16:53.305>to <00:16:53.585>be <00:16:53.865>honest.

392
00:16:54.735 --> 00:16:57.155
<00:16:54.735>So <00:16:54.875>I <00:16:55.015>am <00:16:55.155>gonna <00:16:55.295>look <00:16:55.435>away <00:16:55.575>over <00:16:55.715>onto <00:16:55.855>my <00:16:55.995>other <00:16:56.135>screen.

393
00:16:57.375 --> 00:16:58.875
<00:16:57.375>Um, <00:16:57.525>we're <00:16:57.675>gonna <00:16:57.825>have <00:16:57.975>a <00:16:58.125>look <00:16:58.275>at <00:16:58.425>that <00:16:58.575>in <00:16:58.725>action.

394
00:17:01.235 --> 00:17:04.375
<00:17:01.235>So <00:17:01.390>first <00:17:01.546>thing, <00:17:01.701>first, <00:17:01.857>I'm <00:17:02.012>just <00:17:02.168>gonna <00:17:02.323>fire <00:17:02.479>up, <00:17:02.635>uh,

395
00:17:04.695 --> 00:17:08.175
<00:17:04.694>a <00:17:04.835>normal <00:17:04.974>browser <00:17:05.115>and <00:17:05.254>I'm <00:17:05.395>gonna <00:17:05.534>load <00:17:05.675>up <00:17:05.814>a <00:17:05.954>video <00:17:06.095>player.

396
00:17:08.515 --> 00:17:11.575
<00:17:08.515>Uh, <00:17:08.642>this <00:17:08.769>is <00:17:08.896>a <00:17:09.024>little <00:17:09.151>website <00:17:09.278>I <00:17:09.405>run <00:17:09.533>that <00:17:09.660>just <00:17:09.787>loads, <00:17:09.915>uh,

397
00:17:11.685 --> 00:17:13.495
<00:17:11.685>many <00:17:12.151>common <00:17:12.618>video <00:17:13.085>players.

398
00:17:14.185 --> 00:17:15.855
<00:17:14.185>We're <00:17:14.534>gonna <00:17:14.885>use <00:17:15.234>H-L-S-J-S, <00:17:15.585>we'll,

399
00:17:15.855 --> 00:17:17.935
<00:17:15.855>we'll <00:17:16.010>get <00:17:16.166>into <00:17:16.321>hhl <00:17:16.477>SJS <00:17:16.632>in <00:17:16.788>a <00:17:16.943>minute <00:17:17.099>as <00:17:17.255>well

400
00:17:18.115 --> 00:17:19.775
<00:17:18.115>as <00:17:18.348>we <00:17:18.581>build <00:17:18.815>out <00:17:19.048>our <00:17:19.281>streaming <00:17:19.515>platform.

401
00:17:20.945 --> 00:17:23.615
<00:17:20.944>We're <00:17:21.178>gonna <00:17:21.411>just <00:17:21.645>open <00:17:21.878>the <00:17:22.111>network <00:17:22.345>inspector.

402
00:17:26.455 --> 00:17:29.035
<00:17:26.454>I'm <00:17:26.595>just <00:17:26.734>gonna <00:17:26.875>hit <00:17:27.014>play <00:17:27.155>and <00:17:27.294>load <00:17:27.435>up <00:17:27.574>some <00:17:27.714>demo <00:17:27.855>content.

403
00:17:29.575 --> 00:17:30.675
<00:17:29.575>I'm <00:17:29.773>just <00:17:29.971>gonna <00:17:30.169>mute <00:17:30.367>it <00:17:30.565>'cause

404
00:17:30.675 --> 00:17:33.035
<00:17:30.675>otherwise <00:17:30.850>I <00:17:31.024>get <00:17:31.200>this <00:17:31.375>music <00:17:31.550>in <00:17:31.725>my, <00:17:31.899>uh, <00:17:32.075>headphones.

405
00:17:33.695 --> 00:17:36.115
<00:17:33.695>And <00:17:33.811>we <00:17:33.928>can <00:17:34.044>see <00:17:34.161>we've <00:17:34.278>got <00:17:34.395>a <00:17:34.511>nice <00:17:34.628>little <00:17:34.745>bit <00:17:34.861>of <00:17:34.978>video <00:17:35.095>playing.

406
00:17:36.295 --> 00:17:38.275
<00:17:36.295>It <00:17:36.422>actually <00:17:36.549>tells <00:17:36.676>us <00:17:36.804>a <00:17:36.931>bit <00:17:37.058>right <00:17:37.185>in <00:17:37.313>the <00:17:37.440>corner <00:17:37.567>as <00:17:37.695>well.

407
00:17:38.295 --> 00:17:42.125
<00:17:38.295>And <00:17:38.422>the <00:17:38.549>video <00:17:38.676>quality, <00:17:38.804>if <00:17:38.931>we <00:17:39.058>take <00:17:39.185>a <00:17:39.313>look <00:17:39.440>at <00:17:39.567>the <00:17:39.695>requests

408
00:17:42.125 --> 00:17:45.045
<00:17:42.125>that <00:17:42.241>we <00:17:42.358>made <00:17:42.475>and <00:17:42.591>just <00:17:42.708>fill <00:17:42.825>them <00:17:42.941>down <00:17:43.058>to <00:17:43.175>M <00:17:43.291>three <00:17:43.408>U <00:17:43.525>eight,

409
00:17:45.415 --> 00:17:47.365
<00:17:45.415>we'll <00:17:45.570>see <00:17:45.726>a <00:17:45.881>couple <00:17:46.037>of <00:17:46.192>M <00:17:46.348>three <00:17:46.503>U <00:17:46.659>eight <00:17:46.815>requests.

410
00:17:47.995 --> 00:17:51.045
<00:17:47.995>This <00:17:48.150>is <00:17:48.306>the, <00:17:48.461>the <00:17:48.617>top <00:17:48.772>level <00:17:48.928>variant <00:17:49.083>manifests <00:17:49.239>we <00:17:49.395>mentioned.

411
00:17:51.395 --> 00:17:52.765
<00:17:51.395>This <00:17:51.641>is <00:17:51.888>a <00:17:52.134>pretty <00:17:52.381>big <00:17:52.628>one.

412
00:17:52.905 --> 00:17:54.765
<00:17:52.905>Has <00:17:53.185>nine <00:17:53.465>different <00:17:53.745>renditions <00:17:54.024>in <00:17:54.305>it.

413
00:17:54.815 --> 00:17:58.645
<00:17:54.815>Everything <00:17:54.970>from <00:17:55.126>145 <00:17:55.281>kilobits <00:17:55.437>a <00:17:55.592>second <00:17:55.748>all <00:17:55.903>the <00:17:56.059>way <00:17:56.215>up

414
00:17:58.645 --> 00:18:00.445
<00:17:58.645>to <00:17:58.925>nearly <00:17:59.205>eight <00:17:59.485>megabits <00:17:59.764>a <00:18:00.045>second.

415
00:18:00.505 --> 00:18:03.965
<00:18:00.505>So <00:18:00.645>lots <00:18:00.785>of <00:18:00.925>different <00:18:01.065>video <00:18:01.205>qualities <00:18:01.345>in <00:18:01.485>here. <00:18:01.625>We <00:18:01.765>can <00:18:01.905>see.

416
00:18:03.965 --> 00:18:07.285
<00:18:03.965>Then <00:18:04.120>the <00:18:04.276>player, <00:18:04.431>uh, <00:18:04.587>requests <00:18:04.742>a <00:18:04.898>couple <00:18:05.053>of <00:18:05.209>the, <00:18:05.365>uh,

417
00:18:07.325 --> 00:18:09.805
<00:18:07.325>media <00:18:07.605>manifests <00:18:07.885>ranging <00:18:08.165>from <00:18:08.445>the, <00:18:08.725>yep,

418
00:18:09.805 --> 00:18:12.125
<00:18:09.805>the <00:18:09.945>lowest <00:18:10.085>quality <00:18:10.225>all <00:18:10.365>the <00:18:10.505>way <00:18:10.645>up <00:18:10.785>to <00:18:10.925>the <00:18:11.065>highest <00:18:11.205>quality.

419
00:18:12.625 --> 00:18:14.725
<00:18:12.625>If <00:18:12.780>you <00:18:12.936>take <00:18:13.091>a <00:18:13.247>look <00:18:13.402>at <00:18:13.558>those <00:18:13.713>as <00:18:13.869>we'd <00:18:14.025>expect.

420
00:18:14.725 --> 00:18:16.965
<00:18:14.725>These <00:18:15.004>are <00:18:15.284>just <00:18:15.564>lists <00:18:15.844>of <00:18:16.125>segments.

421
00:18:17.225 --> 00:18:18.885
<00:18:17.225>So <00:18:17.504>ts <00:18:17.784>is <00:18:18.064>a <00:18:18.344>transport <00:18:18.625>stream.

422
00:18:19.115 --> 00:18:20.765
<00:18:19.115>This <00:18:19.315>is <00:18:19.515>just <00:18:19.715>a <00:18:19.915>little <00:18:20.115>bit <00:18:20.315>of, <00:18:20.515>uh,

423
00:18:20.765 --> 00:18:21.845
<00:18:20.765>media <00:18:21.008>that <00:18:21.251>you <00:18:21.494>can <00:18:21.737>download.

424
00:18:23.295 --> 00:18:26.195
<00:18:23.295>Really <00:18:23.450>simple. <00:18:23.606>So <00:18:23.761>if <00:18:23.917>we <00:18:24.072>take <00:18:24.228>a <00:18:24.383>look <00:18:24.539>at, <00:18:24.695>uh,

425
00:18:26.215 --> 00:18:29.075
<00:18:26.215>and <00:18:26.355>change <00:18:26.495>our <00:18:26.635>filter <00:18:26.774>for <00:18:26.915>do <00:18:27.054>ts <00:18:27.195>we <00:18:27.334>kind <00:18:27.475>of <00:18:27.615>expect

426
00:18:29.075 --> 00:18:32.035
<00:18:29.075>to <00:18:29.202>see <00:18:29.329>the <00:18:29.456>same <00:18:29.584>thing <00:18:29.711>that <00:18:29.838>the <00:18:29.965>player <00:18:30.093>worked <00:18:30.220>its <00:18:30.347>way <00:18:30.475>up.

427
00:18:32.145 --> 00:18:34.195
<00:18:32.145>That <00:18:32.425>quality <00:18:32.705>ladder <00:18:32.985>pretty <00:18:33.264>quickly <00:18:33.545>got

428
00:18:34.195 --> 00:18:35.355
<00:18:34.195>to <00:18:34.456>the <00:18:34.716>highest <00:18:34.978>possible <00:18:35.239>quality

429
00:18:35.695 --> 00:18:38.155
<00:18:35.695>and <00:18:35.870>stuck <00:18:36.044>there <00:18:36.220>as <00:18:36.395>if <00:18:36.570>we <00:18:36.745>pull <00:18:36.919>this <00:18:37.095>back

430
00:18:38.155 --> 00:18:39.315
<00:18:38.155>down <00:18:38.416>and <00:18:38.677>take <00:18:38.938>a <00:18:39.199>look.

431
00:18:39.375 --> 00:18:42.935
<00:18:39.375>We <00:18:39.530>at, <00:18:39.686>we <00:18:39.841>were <00:18:39.997>on <00:18:40.152>the <00:18:40.308>eight <00:18:40.463>megabit, <00:18:40.619>seven, <00:18:40.775>uh,

432
00:18:42.935 --> 00:18:44.135
<00:18:42.935>10 <00:18:43.295>80 <00:18:43.655>p <00:18:44.014>rendition.

433
00:18:44.135 --> 00:18:48.055
<00:18:44.135>By <00:18:44.251>the <00:18:44.368>end <00:18:44.485>of <00:18:44.601>it, <00:18:44.718>we <00:18:44.835>can <00:18:44.951>see <00:18:45.068>adapted <00:18:45.185>bit <00:18:45.301>rate <00:18:45.418>in, <00:18:45.535>uh,

434
00:18:48.195 --> 00:18:50.335
<00:18:48.195>action <00:18:48.350>a <00:18:48.506>little <00:18:48.661>bit <00:18:48.817>by, <00:18:48.972>uh, <00:18:49.128>using <00:18:49.283>this <00:18:49.439>as <00:18:49.595>well.

435
00:18:50.335 --> 00:18:52.975
<00:18:50.335>If <00:18:50.510>we <00:18:50.685>just <00:18:50.860>refresh <00:18:51.035>the <00:18:51.210>page, <00:18:51.385>leave <00:18:51.560>our <00:18:51.735>filter

436
00:18:53.115 --> 00:18:55.895
<00:18:53.115>to <00:18:53.315>transport <00:18:53.515>stream <00:18:53.715>segments <00:18:53.915>and <00:18:54.115>hit <00:18:54.315>play <00:18:54.515>again.

437
00:18:57.025 --> 00:18:58.805
<00:18:57.025>Oh, <00:18:57.258>just <00:18:57.491>need <00:18:57.725>to <00:18:57.958>refresh <00:18:58.191>it <00:18:58.425>again

438
00:18:58.805 --> 00:19:01.085
<00:18:58.805>because <00:18:59.005>I <00:18:59.205>forgot <00:18:59.405>to <00:18:59.605>turn <00:18:59.805>on <00:19:00.005>my <00:19:00.205>throttle.

439
00:19:01.345 --> 00:19:04.245
<00:19:01.345>So <00:19:01.500>we're <00:19:01.656>gonna <00:19:01.811>set <00:19:01.967>our <00:19:02.122>throttle <00:19:02.278>to <00:19:02.433>fast <00:19:02.589>3G <00:19:02.745>um,

440
00:19:05.065 --> 00:19:07.205
<00:19:05.065>and <00:19:05.298>then <00:19:05.531>run <00:19:05.765>that <00:19:05.998>playback <00:19:06.231>session <00:19:06.465>again.

441
00:19:07.495 --> 00:19:09.045
<00:19:07.495>Still <00:19:07.774>got <00:19:08.053>a <00:19:08.331>ts <00:19:08.611>folder <00:19:08.890>on.

442
00:19:09.355 --> 00:19:13.485
<00:19:09.355>What <00:19:09.482>we'll <00:19:09.609>see <00:19:09.736>is <00:19:09.864>the <00:19:09.991>playback <00:19:10.118>gets <00:19:10.245>stuck <00:19:10.373>at <00:19:10.500>about <00:19:10.627>360 <00:19:10.755>5K.

443
00:19:13.665 --> 00:19:15.605
<00:19:13.665>So <00:19:13.840>that's <00:19:14.014>the <00:19:14.190>maximum <00:19:14.365>bit <00:19:14.540>rate <00:19:14.715>we <00:19:14.889>could <00:19:15.065>get.

444
00:19:16.105 --> 00:19:18.765
<00:19:16.105>And <00:19:16.245>if <00:19:16.385>we <00:19:16.525>turn <00:19:16.665>off <00:19:16.805>a <00:19:16.945>throttle, <00:19:17.085>uh, <00:19:17.225>we <00:19:17.365>will <00:19:17.505>see

445
00:19:19.685 --> 00:19:21.265
<00:19:19.685>the <00:19:19.965>bit <00:19:20.245>rate <00:19:20.524>suddenly <00:19:20.804>jumps <00:19:21.085>up

446
00:19:21.565 --> 00:19:23.585
<00:19:21.565>and <00:19:21.705>we <00:19:21.845>manage <00:19:21.985>to <00:19:22.125>work <00:19:22.265>our <00:19:22.405>way <00:19:22.545>back <00:19:22.685>at <00:19:22.825>the <00:19:22.965>ladder.

447
00:19:23.765 --> 00:19:25.585
<00:19:23.765>So <00:19:23.965>that's <00:19:24.165>an <00:19:24.365>adaptive <00:19:24.565>bit <00:19:24.765>rate <00:19:24.965>kicking <00:19:25.165>in

448
00:19:25.805 --> 00:19:28.785
<00:19:25.805>and <00:19:25.980>improving <00:19:26.155>the <00:19:26.330>quality, <00:19:26.505>uh, <00:19:26.680>as <00:19:26.855>the <00:19:27.030>bandwidth <00:19:27.205>changed.

449
00:19:29.375 --> 00:19:31.825
<00:19:29.375>What <00:19:29.575>you'll <00:19:29.775>notice <00:19:29.975>here, <00:19:30.175>interestingly, <00:19:30.375>is <00:19:30.575>the <00:19:30.775>quality

450
00:19:31.825 --> 00:19:33.745
<00:19:31.825>of <00:19:32.105>video <00:19:32.385>doesn't <00:19:32.665>immediately <00:19:32.945>jump <00:19:33.225>up.

451
00:19:34.185 --> 00:19:35.705
<00:19:34.185>'cause <00:19:34.458>the <00:19:34.732>player <00:19:35.005>is <00:19:35.279>preferring <00:19:35.553>content,

452
00:19:35.845 --> 00:19:37.265
<00:19:35.845>but <00:19:36.058>it's <00:19:36.271>already <00:19:36.484>got <00:19:36.697>in <00:19:36.910>the <00:19:37.123>buffer,

453
00:19:37.535 --> 00:19:38.865
<00:19:37.535>even <00:19:37.774>if <00:19:38.013>it's <00:19:38.253>a <00:19:38.492>lower <00:19:38.732>quality.

454
00:19:38.925 --> 00:19:40.305
<00:19:38.925>So <00:19:39.102>if <00:19:39.279>we <00:19:39.457>scrub <00:19:39.634>right <00:19:39.812>to <00:19:39.989>the <00:19:40.167>end,

455
00:19:40.515 --> 00:19:42.465
<00:19:40.515>we'll <00:19:40.690>probably <00:19:40.865>see <00:19:41.040>it's <00:19:41.215>jumped <00:19:41.390>all <00:19:41.565>the <00:19:41.740>way <00:19:41.915>up

456
00:19:42.465 --> 00:19:44.025
<00:19:42.465>to <00:19:42.814>the <00:19:43.165>highest <00:19:43.514>visual <00:19:43.865>quality.

457
00:19:45.385 --> 00:19:47.575
<00:19:45.385>There <00:19:45.665>really <00:19:45.945>isn't <00:19:46.225>anything <00:19:46.504>exotic <00:19:46.785>here.

458
00:19:47.755 --> 00:19:51.295
<00:19:47.755>Uh, <00:19:47.910>this <00:19:48.066>is <00:19:48.221>just <00:19:48.377>HGTP <00:19:48.532>requests <00:19:48.688>for <00:19:48.843>chunks <00:19:48.999>of <00:19:49.155>media

459
00:19:51.915 --> 00:19:55.815
<00:19:51.915>and, <00:19:52.115>uh, <00:19:52.315>chunks <00:19:52.514>and <00:19:52.715>of, <00:19:52.915>uh, <00:19:53.115>text <00:19:53.315>files.

460
00:19:55.905 --> 00:19:59.135
<00:19:55.905>There <00:19:56.060>is <00:19:56.216>really <00:19:56.371>nothing <00:19:56.527>exotic <00:19:56.682>about <00:19:56.838>how <00:19:56.993>this <00:19:57.149>is <00:19:57.305>working.

461
00:20:02.615 --> 00:20:06.865
<00:20:02.615>Cool. <00:20:02.770>So <00:20:02.926>we're <00:20:03.081>gonna <00:20:03.237>build <00:20:03.392>a <00:20:03.548>little <00:20:03.703>video <00:20:03.859>service <00:20:04.015>now,

462
00:20:07.405 --> 00:20:09.265
<00:20:07.405>uh, <00:20:07.754>with <00:20:08.105>our <00:20:08.455>four <00:20:08.805>components.

463
00:20:09.925 --> 00:20:13.265
<00:20:09.925>Uh, <00:20:10.100>we're <00:20:10.274>gonna <00:20:10.450>use <00:20:10.625>OBS <00:20:10.800>for <00:20:10.975>our <00:20:11.149>capture <00:20:11.325>stage.

464
00:20:13.755 --> 00:20:15.825
<00:20:13.755>We're <00:20:13.955>gonna <00:20:14.155>use <00:20:14.355>m <00:20:14.555>for <00:20:14.755>processing <00:20:14.955>and <00:20:15.155>delivery,

465
00:20:16.325 --> 00:20:18.545
<00:20:16.325>and <00:20:16.525>we're <00:20:16.725>gonna <00:20:16.925>use <00:20:17.125>hhl, <00:20:17.325>SGS <00:20:17.525>for <00:20:17.725>playback,

466
00:20:18.545 --> 00:20:19.945
<00:20:18.545>which <00:20:18.702>is <00:20:18.860>a <00:20:19.017>player <00:20:19.175>we <00:20:19.332>just <00:20:19.490>used <00:20:19.647>as <00:20:19.804>well.

467
00:20:20.925 --> 00:20:23.625
<00:20:20.925>So <00:20:21.100>first <00:20:21.274>of <00:20:21.450>all, <00:20:21.625>we're <00:20:21.800>gonna <00:20:21.975>do <00:20:22.149>some <00:20:22.325>capture.

468
00:20:24.165 --> 00:20:27.105
<00:20:24.165>Um, <00:20:24.320>so <00:20:24.476>capture <00:20:24.631>is <00:20:24.787>kind <00:20:24.942>of <00:20:25.098>arguably <00:20:25.253>the <00:20:25.409>most <00:20:25.565>important,

469
00:20:27.485 --> 00:20:28.505
<00:20:27.485>uh, <00:20:27.714>piece <00:20:27.944>of <00:20:28.173>your <00:20:28.403>stream.

470
00:20:29.365 --> 00:20:32.385
<00:20:29.365>We <00:20:29.520>go, <00:20:29.676>uh, <00:20:29.831>over <00:20:29.987>this, <00:20:30.142>uh, <00:20:30.298>an <00:20:30.453>awful <00:20:30.609>lot <00:20:30.765>honestly,

471
00:20:32.385 --> 00:20:34.945
<00:20:32.385>with <00:20:32.585>customers <00:20:32.785>who <00:20:32.985>say <00:20:33.185>their <00:20:33.385>stream <00:20:33.585>looks <00:20:33.785>bad,

472
00:20:35.165 --> 00:20:36.865
<00:20:35.165>but <00:20:35.365>really <00:20:35.565>it's <00:20:35.764>just <00:20:35.965>they're <00:20:36.165>sending <00:20:36.365>a <00:20:36.565>terrible

473
00:20:36.865 --> 00:20:38.065
<00:20:36.865>quality <00:20:37.405>input <00:20:37.945>signal.

474
00:20:38.065 --> 00:20:39.225
<00:20:38.065>There's, <00:20:38.214>there's <00:20:38.363>not <00:20:38.512>a <00:20:38.661>whole <00:20:38.810>lot <00:20:38.959>we <00:20:39.109>can

475
00:20:39.225 --> 00:20:40.345
<00:20:39.225>do <00:20:39.561>about <00:20:39.897>that, <00:20:40.233>right?

476
00:20:40.805 --> 00:20:44.145
<00:20:40.805>Um, <00:20:41.155>so <00:20:41.505>we, <00:20:41.855>like <00:20:42.205>many

477
00:20:44.165 --> 00:20:47.845
<00:20:44.165>of <00:20:44.305>us <00:20:44.445>in <00:20:44.585>the <00:20:44.725>industry <00:20:44.865>except, <00:20:45.004>uh, <00:20:45.145>the <00:20:45.284>RTMP <00:20:45.425>protocol, <00:20:45.565>again,

478
00:20:47.995 --> 00:20:49.165
<00:20:47.995>this <00:20:48.258>is <00:20:48.521>an <00:20:48.784>older <00:20:49.048>protocol,

479
00:20:49.185 --> 00:20:51.405
<00:20:49.185>but <00:20:49.360>it <00:20:49.534>is <00:20:49.710>one <00:20:49.885>that <00:20:50.060>is <00:20:50.235>very <00:20:50.409>well <00:20:50.585>supported

480
00:20:51.545 --> 00:20:53.005
<00:20:51.545>and <00:20:51.764>very <00:20:51.983>well <00:20:52.202>understood <00:20:52.421>at <00:20:52.640>this <00:20:52.859>point.

481
00:20:53.545 --> 00:20:55.205
<00:20:53.545>Um, <00:20:53.825>there's <00:20:54.105>a <00:20:54.385>bunch <00:20:54.665>of <00:20:54.945>free

482
00:20:55.465 --> 00:20:57.205
<00:20:55.465>and <00:20:55.745>paid <00:20:56.024>solutions <00:20:56.304>to <00:20:56.584>generate <00:20:56.865>these.

483
00:20:57.825 --> 00:20:59.365
<00:20:57.825>The <00:20:58.102>challenge <00:20:58.379>is <00:20:58.656>you <00:20:58.933>can't <00:20:59.211>generate

484
00:20:59.395 --> 00:21:01.005
<00:20:59.395>them <00:20:59.745>directly <00:21:00.095>from <00:21:00.445>a <00:21:00.795>browser.

485
00:21:01.005 --> 00:21:02.805
<00:21:01.005>There's <00:21:01.180>some <00:21:01.355>workarounds <00:21:01.530>I'll <00:21:01.705>touch <00:21:01.880>on <00:21:02.055>in <00:21:02.230>a <00:21:02.405>second.

486
00:21:03.145 --> 00:21:07.085
<00:21:03.145>Um, <00:21:03.285>you <00:21:03.425>know, <00:21:03.565>this <00:21:03.705>is <00:21:03.845>a <00:21:03.985>proprietary <00:21:04.125>protocol <00:21:04.264>sent <00:21:04.405>over <00:21:04.545>a

487
00:21:07.085 --> 00:21:08.165
<00:21:07.085>proprietary <00:21:07.571>port <00:21:08.057>number.

488
00:21:08.465 --> 00:21:10.565
<00:21:08.465>So <00:21:08.605>it's <00:21:08.745>just <00:21:08.885>something <00:21:09.024>that <00:21:09.165>the <00:21:09.304>browser <00:21:09.445>isn't <00:21:09.584>gonna <00:21:09.725>be <00:21:09.865>able

489
00:21:10.565 --> 00:21:12.005
<00:21:10.565>to <00:21:10.889>directly <00:21:11.213>generate <00:21:11.537>for <00:21:11.861>you.

490
00:21:12.005 --> 00:21:15.215
<00:21:12.005>Unfortunately, <00:21:12.355>some <00:21:12.705>common <00:21:13.055>approaches, <00:21:13.405>uh,

491
00:21:15.235 --> 00:21:18.615
<00:21:15.235>on <00:21:15.409>the <00:21:15.584>desktop <00:21:15.760>OBS <00:21:15.935>Wirecast <00:21:16.110>and <00:21:16.284>a <00:21:16.459>browser <00:21:16.635>base.

492
00:21:18.795 --> 00:21:21.535
<00:21:18.795>You <00:21:18.950>could <00:21:19.106>use <00:21:19.261>a <00:21:19.417>SaaS <00:21:19.572>application <00:21:19.728>like, <00:21:19.883>uh, <00:21:20.039>restream <00:21:20.195>Studio,

493
00:21:21.705 --> 00:21:22.935
<00:21:21.705>which <00:21:22.073>does <00:21:22.443>that <00:21:22.812>bridging

494
00:21:22.935 --> 00:21:25.135
<00:21:22.935>for <00:21:23.168>you <00:21:23.401>from <00:21:23.635>a <00:21:23.868>browser <00:21:24.101>environment <00:21:24.335>into

495
00:21:25.135 --> 00:21:27.375
<00:21:25.135>that <00:21:25.485>RTMP <00:21:25.835>feed <00:21:26.185>on <00:21:26.535>mobile.

496
00:21:27.435 --> 00:21:28.655
<00:21:27.435>You <00:21:27.709>can <00:21:27.984>use <00:21:28.258>standalone <00:21:28.533>apps.

497
00:21:28.655 --> 00:21:30.735
<00:21:28.655>We've <00:21:28.810>got <00:21:28.966>a, <00:21:29.121>a <00:21:29.277>blog <00:21:29.432>article <00:21:29.588>actually <00:21:29.743>on <00:21:29.899>our <00:21:30.055>blog

498
00:21:30.735 --> 00:21:34.375
<00:21:30.735>that <00:21:30.851>talks <00:21:30.968>about, <00:21:31.084>we <00:21:31.201>did <00:21:31.318>a <00:21:31.435>rundown <00:21:31.551>of, <00:21:31.668>uh, <00:21:31.784>the <00:21:31.901>top <00:21:32.018>five, <00:21:32.135>uh,

499
00:21:34.935 --> 00:21:36.575
<00:21:34.935>RTMP <00:21:35.401>apps <00:21:35.868>on <00:21:36.335>iOS.

500
00:21:36.995 --> 00:21:39.855
<00:21:36.995>Um, <00:21:37.169>you <00:21:37.344>can <00:21:37.520>use <00:21:37.695>commercial <00:21:37.870>SDKs <00:21:38.044>like <00:21:38.219>Stream <00:21:38.395>axia

501
00:21:40.075 --> 00:21:42.175
<00:21:40.075>or <00:21:40.308>even <00:21:40.541>LX <00:21:40.775>has <00:21:41.008>its <00:21:41.241>own <00:21:41.475>SDK

502
00:21:42.435 --> 00:21:45.175
<00:21:42.435>to <00:21:42.575>build <00:21:42.715>your <00:21:42.855>own <00:21:42.995>live <00:21:43.135>streaming <00:21:43.274>apps <00:21:43.415>or <00:21:43.554>in <00:21:43.695>React <00:21:43.835>Native.

503
00:21:45.175 --> 00:21:48.215
<00:21:45.175>There's <00:21:45.330>things <00:21:45.486>like <00:21:45.641>no <00:21:45.797>media <00:21:45.952>client, <00:21:46.108>which <00:21:46.263>is <00:21:46.419>pretty <00:21:46.575>rough

504
00:21:48.215 --> 00:21:51.055
<00:21:48.215>around <00:21:48.389>the <00:21:48.564>edges, <00:21:48.740>but <00:21:48.915>does <00:21:49.090>does <00:21:49.264>work <00:21:49.439>just <00:21:49.615>about,

505
00:21:52.215 --> 00:21:54.705
<00:21:52.215>there's <00:21:52.448>generally <00:21:52.681>two <00:21:52.915>components <00:21:53.148>to <00:21:53.381>your, <00:21:53.615>uh,

506
00:21:54.855 --> 00:21:56.865
<00:21:54.855>encoder <00:21:55.135>configuration <00:21:55.415>for <00:21:55.695>your <00:21:55.975>capture <00:21:56.255>stage.

507
00:21:57.165 --> 00:21:58.745
<00:21:57.165>The <00:21:57.398>first <00:21:57.631>is <00:21:57.865>the <00:21:58.098>endpoint, <00:21:58.331>the <00:21:58.565>address.

508
00:21:58.745 --> 00:22:01.065
<00:21:58.745>This <00:21:58.900>is <00:21:59.056>just, <00:21:59.211>you <00:21:59.367>know, <00:21:59.522>host <00:21:59.678>name <00:21:59.833>as <00:21:59.989>you'd <00:22:00.145>expect.

509
00:22:01.685 --> 00:22:05.945
<00:22:01.685>Um, <00:22:01.918>many <00:22:02.151>platforms <00:22:02.385>offer <00:22:02.618>RTMP <00:22:02.851>and <00:22:03.085>R-T-M-P-S.

510
00:22:06.405 --> 00:22:09.065
<00:22:06.405>Uh, <00:22:06.545>that's <00:22:06.685>just <00:22:06.825>the <00:22:06.965>same <00:22:07.105>as <00:22:07.245>you <00:22:07.385>know, <00:22:07.524>if <00:22:07.665>you're <00:22:07.805>doing,

511
00:22:09.645 --> 00:22:11.825
<00:22:09.645>you <00:22:09.925>know, <00:22:10.205>HTP <00:22:10.485>and <00:22:10.764>HT <00:22:11.045>TPS.

512
00:22:12.325 --> 00:22:14.905
<00:22:12.325>Um, <00:22:12.500>generally <00:22:12.675>you'll <00:22:12.850>have <00:22:13.025>to <00:22:13.200>do <00:22:13.375>a <00:22:13.550>little <00:22:13.725>bit

513
00:22:14.905 --> 00:22:17.585
<00:22:14.905>of <00:22:15.080>experimentation <00:22:15.254>here <00:22:15.430>to <00:22:15.605>find <00:22:15.780>out <00:22:15.955>whether <00:22:16.129>your <00:22:16.305>application

514
00:22:17.585 --> 00:22:20.985
<00:22:17.585>or <00:22:17.760>SDK <00:22:17.935>you <00:22:18.110>are <00:22:18.285>using <00:22:18.460>is <00:22:18.635>compatible <00:22:18.810>with <00:22:18.985>R-T-M-P-S.

515
00:22:20.985 --> 00:22:23.745
<00:22:20.985>Some <00:22:21.185>still, <00:22:21.385>unfortunately, <00:22:21.584>are <00:22:21.784>not, <00:22:21.985>despite <00:22:22.185>the <00:22:22.385>fact

516
00:22:23.745 --> 00:22:26.025
<00:22:23.745>that <00:22:24.024>Facebook <00:22:24.304>made <00:22:24.584>this <00:22:24.864>mandatory, <00:22:25.145>um,

517
00:22:26.435 --> 00:22:28.225
<00:22:26.435>about <00:22:26.610>a <00:22:26.784>year <00:22:26.960>ago <00:22:27.135>now, <00:22:27.310>I <00:22:27.485>believe <00:22:27.659>it <00:22:27.835>was.

518
00:22:29.395 --> 00:22:32.695
<00:22:29.395>Um, <00:22:29.595>our <00:22:29.795>recommendation <00:22:29.995>is <00:22:30.195>to <00:22:30.395>aim <00:22:30.595>for <00:22:30.795>quality

519
00:22:32.725 --> 00:22:37.215
<00:22:32.725>between <00:22:32.841>seven <00:22:32.958>20 <00:22:33.074>p <00:22:33.191>and <00:22:33.308>10 <00:22:33.425>80 <00:22:33.541>p <00:22:33.658>between <00:22:33.774>two <00:22:33.891>and <00:22:34.008>six <00:22:34.125>megabits.

520
00:22:37.635 --> 00:22:39.855
<00:22:37.635>Uh, <00:22:37.775>there <00:22:37.915>is <00:22:38.055>a <00:22:38.195>key <00:22:38.335>frame <00:22:38.475>in <00:22:38.615>info <00:22:38.754>requirement <00:22:38.895>as <00:22:39.035>well.

521
00:22:40.055 --> 00:22:41.495
<00:22:40.055>I <00:22:40.240>can <00:22:40.425>touch <00:22:40.610>on <00:22:40.795>that <00:22:40.980>later <00:22:41.165>if <00:22:41.351>anyone's

522
00:22:41.495 --> 00:22:42.575
<00:22:41.495>really <00:22:41.689>interested <00:22:41.883>in <00:22:42.078>what <00:22:42.272>that <00:22:42.467>means.

523
00:22:43.355 --> 00:22:45.935
<00:22:43.355>The <00:22:43.530>only <00:22:43.705>other <00:22:43.880>important <00:22:44.055>thing <00:22:44.230>is <00:22:44.405>the <00:22:44.580>stream <00:22:44.755>key.

524
00:22:46.035 --> 00:22:48.695
<00:22:46.035>So <00:22:46.235>the <00:22:46.435>stream <00:22:46.635>key <00:22:46.835>is <00:22:47.035>effectively <00:22:47.235>a <00:22:47.435>password

525
00:22:48.995 --> 00:22:50.335
<00:22:48.995>to <00:22:49.236>the <00:22:49.477>input <00:22:49.718>of <00:22:49.959>your <00:22:50.201>stream.

526
00:22:50.555 --> 00:22:52.055
<00:22:50.555>Uh, <00:22:50.825>you <00:22:51.095>shouldn't <00:22:51.365>leak <00:22:51.635>this <00:22:51.905>anywhere.

527
00:22:52.075 --> 00:22:53.935
<00:22:52.075>You <00:22:52.250>shouldn't <00:22:52.425>have <00:22:52.600>anyone <00:22:52.775>else <00:22:52.950>have <00:22:53.125>your <00:22:53.300>stream <00:22:53.475>key.

528
00:22:54.195 --> 00:22:55.655
<00:22:54.195>Uh, <00:22:54.457>this <00:22:54.720>is <00:22:54.983>just <00:22:55.246>effectively <00:22:55.509>yes,

529
00:22:55.675 --> 00:22:57.095
<00:22:55.675>the <00:22:55.994>password <00:22:56.314>for <00:22:56.633>your <00:22:56.953>stream.

530
00:22:57.995 --> 00:23:00.615
<00:22:57.995>One <00:22:58.135>of <00:22:58.274>the <00:22:58.415>things <00:22:58.554>I <00:22:58.695>like <00:22:58.834>to <00:22:58.975>highlight <00:22:59.114>here <00:22:59.254>is, <00:22:59.395>uh,

531
00:23:01.565 --> 00:23:03.225
<00:23:01.565>if <00:23:01.915>you <00:23:02.265>are <00:23:02.615>streaming, <00:23:02.965>um,

532
00:23:03.365 --> 00:23:08.005
<00:23:03.365>and <00:23:03.520>you <00:23:03.676>have <00:23:03.831>let's <00:23:03.987>say <00:23:04.142>four <00:23:04.298>megabits <00:23:04.453>upload <00:23:04.609>capability <00:23:04.765>on

533
00:23:08.005 --> 00:23:10.245
<00:23:08.005>your <00:23:08.238>computer, <00:23:08.471>on <00:23:08.705>your <00:23:08.938>internet <00:23:09.171>connection, <00:23:09.405>uh,

534
00:23:10.335 --> 00:23:12.405
<00:23:10.335>don't <00:23:10.490>use <00:23:10.646>more <00:23:10.801>than <00:23:10.957>two <00:23:11.112>megabits <00:23:11.268>of <00:23:11.423>that <00:23:11.579>feel <00:23:11.735>stream.

535
00:23:12.745 --> 00:23:16.005
<00:23:12.745>Uh, <00:23:12.885>you <00:23:13.024>kind <00:23:13.165>of <00:23:13.304>really <00:23:13.445>aren't <00:23:13.584>in <00:23:13.725>control <00:23:13.864>hugely <00:23:14.004>over <00:23:14.145>what's

536
00:23:16.005 --> 00:23:17.525
<00:23:16.005>going <00:23:16.233>on <00:23:16.461>over <00:23:16.689>your <00:23:16.917>network <00:23:17.145>in <00:23:17.373>general.

537
00:23:18.105 --> 00:23:20.245
<00:23:18.105>Um, <00:23:18.260>so <00:23:18.416>you <00:23:18.571>know, <00:23:18.727>someone <00:23:18.882>might <00:23:19.038>kick <00:23:19.193>off <00:23:19.349>a <00:23:19.505>backup,

538
00:23:20.275 --> 00:23:21.485
<00:23:20.275>someone <00:23:20.638>might <00:23:21.001>kick <00:23:21.364>off.

539
00:23:21.665 --> 00:23:23.245
<00:23:21.665>Uh, <00:23:21.820>you <00:23:21.976>know, <00:23:22.131>I <00:23:22.287>used <00:23:22.442>to <00:23:22.598>live <00:23:22.753>in <00:23:22.909>a <00:23:23.065>house

540
00:23:23.245 --> 00:23:25.685
<00:23:23.245>where <00:23:23.400>someone <00:23:23.556>had <00:23:23.711>the <00:23:23.867>router <00:23:24.022>on <00:23:24.178>top <00:23:24.333>of <00:23:24.489>a <00:23:24.645>microwave.

541
00:23:25.985 --> 00:23:28.525
<00:23:25.985>Uh, <00:23:26.140>all <00:23:26.296>of <00:23:26.451>these <00:23:26.607>things <00:23:26.762>can <00:23:26.918>suddenly <00:23:27.073>affect <00:23:27.229>the <00:23:27.385>network

542
00:23:28.575 --> 00:23:29.685
<00:23:28.575>capability <00:23:29.074>you <00:23:29.574>have.

543
00:23:29.865 --> 00:23:32.805
<00:23:29.865>So <00:23:30.020>we <00:23:30.176>do <00:23:30.331>recommend <00:23:30.487>leaving, <00:23:30.642>you <00:23:30.798>know, <00:23:30.953>a <00:23:31.109>50% <00:23:31.265>headroom,

544
00:23:33.185 --> 00:23:34.365
<00:23:33.185>uh, <00:23:33.450>when <00:23:33.716>you <00:23:33.981>are <00:23:34.247>streaming.

545
00:23:35.595 --> 00:23:38.375
<00:23:35.595>And <00:23:35.795>one <00:23:35.995>thing <00:23:36.195>I <00:23:36.395>really <00:23:36.595>can't <00:23:36.795>reinforce <00:23:36.995>enough,

546
00:23:38.675 --> 00:23:40.215
<00:23:38.675>if <00:23:39.021>your <00:23:39.368>content <00:23:39.714>is <00:23:40.061>irreplaceable,

547
00:23:40.235 --> 00:23:42.975
<00:23:40.235>if <00:23:40.351>it's <00:23:40.468>a <00:23:40.584>a <00:23:40.701>live <00:23:40.818>music <00:23:40.935>event, <00:23:41.051>you <00:23:41.168>are <00:23:41.284>not <00:23:41.401>gonna <00:23:41.518>be <00:23:41.635>able

548
00:23:42.975 --> 00:23:44.495
<00:23:42.975>to <00:23:43.317>reproduce <00:23:43.658>archive <00:23:44.001>it <00:23:44.342>locally.

549
00:23:45.065 --> 00:23:47.045
<00:23:45.065>The <00:23:45.265>internet <00:23:45.465>is <00:23:45.665>not <00:23:45.865>a <00:23:46.065>hundred <00:23:46.265>percent <00:23:46.465>reliable.

550
00:23:47.465 --> 00:23:49.285
<00:23:47.465>We <00:23:47.814>can't <00:23:48.165>guarantee <00:23:48.514>the <00:23:48.865>availability

551
00:23:49.425 --> 00:23:52.525
<00:23:49.425>and <00:23:49.565>no <00:23:49.705>one <00:23:49.845>can <00:23:49.985>guarantee <00:23:50.125>the <00:23:50.264>availability <00:23:50.405>of <00:23:50.544>that <00:23:50.685>first <00:23:50.825>hop

552
00:23:52.665 --> 00:23:54.125
<00:23:52.665>to <00:23:53.103>your <00:23:53.541>ISP <00:23:53.979>unfortunately.

553
00:23:55.705 --> 00:23:56.725
<00:23:55.705>So <00:23:55.934>let's <00:23:56.164>do <00:23:56.393>another <00:23:56.622>demo.

554
00:23:57.135 --> 00:23:58.965
<00:23:57.135>Let's <00:23:57.415>set <00:23:57.695>up, <00:23:57.975>uh, <00:23:58.254>some <00:23:58.535>capture

555
00:23:59.145 --> 00:24:00.445
<00:23:59.145>and <00:23:59.312>we're <00:23:59.479>gonna <00:23:59.646>use <00:23:59.813>OBS <00:23:59.980>to <00:24:00.147>do <00:24:00.315>that.

556
00:24:00.585 --> 00:24:02.805
<00:24:00.585>Now, <00:24:00.740>jump <00:24:00.896>back <00:24:01.051>over <00:24:01.207>to <00:24:01.362>this <00:24:01.518>screen, <00:24:01.673>turn <00:24:01.829>my <00:24:01.985>microphone

557
00:24:02.805 --> 00:24:06.045
<00:24:02.805>around <00:24:02.980>a <00:24:03.155>little <00:24:03.330>bit <00:24:03.505>and <00:24:03.680>we're <00:24:03.855>gonna <00:24:04.030>fire <00:24:04.205>up,

558
00:24:06.105 --> 00:24:07.285
<00:24:06.105>uh, <00:24:06.636>open <00:24:07.167>broadcast.

559
00:24:07.665 --> 00:24:12.405
<00:24:07.665>Um, <00:24:07.820>so <00:24:07.976>this <00:24:08.131>is, <00:24:08.287>uh, <00:24:08.442>OB <00:24:08.598>S'S <00:24:08.753>default <00:24:08.909>interface <00:24:09.065>there.

560
00:24:12.555 --> 00:24:15.205
<00:24:12.555>This <00:24:12.695>is <00:24:12.835>how, <00:24:12.975>what <00:24:13.115>you'd <00:24:13.255>get <00:24:13.395>if <00:24:13.535>you <00:24:13.675>just <00:24:13.815>installed <00:24:13.955>OBS.

561
00:24:15.585 --> 00:24:17.845
<00:24:15.585>Um, <00:24:15.760>we've <00:24:15.935>got <00:24:16.110>an <00:24:16.285>empty <00:24:16.460>scene <00:24:16.635>with <00:24:16.810>no <00:24:16.985>sources.

562
00:24:18.265 --> 00:24:20.525
<00:24:18.265>So <00:24:18.420>first <00:24:18.576>thing <00:24:18.731>I'm <00:24:18.887>gonna <00:24:19.042>do <00:24:19.198>is <00:24:19.353>add <00:24:19.509>a <00:24:19.665>source.

563
00:24:21.505 --> 00:24:25.405
<00:24:21.505>I'm <00:24:21.621>just <00:24:21.738>gonna <00:24:21.855>add <00:24:21.971>in <00:24:22.088>my <00:24:22.205>webcam. <00:24:22.321>I'm <00:24:22.438>gonna <00:24:22.555>create <00:24:22.671>a <00:24:22.788>new <00:24:22.905>one.

564
00:24:25.785 --> 00:24:28.485
<00:24:25.785>I'm <00:24:25.912>gonna <00:24:26.039>select <00:24:26.166>my, <00:24:26.294>uh, <00:24:26.421>camera <00:24:26.548>on <00:24:26.675>the <00:24:26.803>front <00:24:26.930>of <00:24:27.057>my <00:24:27.185>laptop.

565
00:24:29.035 --> 00:24:32.305
<00:24:29.035>There <00:24:29.162>we <00:24:29.289>go. <00:24:29.416>So <00:24:29.544>now <00:24:29.671>we've <00:24:29.798>got <00:24:29.925>my <00:24:30.053>video <00:24:30.180>coming <00:24:30.307>in <00:24:30.435>from

566
00:24:32.305 --> 00:24:33.385
<00:24:32.305>two <00:24:32.791>directions <00:24:33.277>probably.

567
00:24:33.385 --> 00:24:35.785
<00:24:33.385>You'll <00:24:33.525>now <00:24:33.665>see <00:24:33.805>it's <00:24:33.945>gonna <00:24:34.085>make <00:24:34.225>that <00:24:34.365>a <00:24:34.504>little <00:24:34.645>bit <00:24:34.785>bigger

568
00:24:35.885 --> 00:24:36.945
<00:24:35.885>and <00:24:36.075>snap <00:24:36.266>it <00:24:36.457>to <00:24:36.648>the <00:24:36.839>edges.

569
00:24:37.565 --> 00:24:39.625
<00:24:37.565>Uh, <00:24:37.740>then <00:24:37.915>I'm <00:24:38.090>probably <00:24:38.265>gonna <00:24:38.440>want <00:24:38.615>a <00:24:38.790>little <00:24:38.965>overlay.

570
00:24:39.845 --> 00:24:42.025
<00:24:39.845>So <00:24:40.000>I'm <00:24:40.156>just <00:24:40.311>gonna, <00:24:40.467>I'm <00:24:40.622>gonna <00:24:40.778>cheat <00:24:40.933>a <00:24:41.089>little <00:24:41.245>bit.

571
00:24:42.205 --> 00:24:45.625
<00:24:42.205>I'm <00:24:42.379>just <00:24:42.554>gonna <00:24:42.730>drag <00:24:42.905>an <00:24:43.080>image <00:24:43.254>overlay <00:24:43.429>onto <00:24:43.605>this.

572
00:24:45.635 --> 00:24:49.025
<00:24:45.635>Let's <00:24:45.775>find <00:24:45.915>on, <00:24:46.055>there <00:24:46.195>we <00:24:46.335>go. <00:24:46.475>Uh, <00:24:46.615>wow, <00:24:46.754>that's <00:24:46.895>really <00:24:47.035>big.

573
00:24:49.085 --> 00:24:50.345
<00:24:49.085>Uh, <00:24:49.311>it's <00:24:49.538>actually <00:24:49.765>the <00:24:49.992>MOS <00:24:50.219>logo.

574
00:24:50.765 --> 00:24:52.865
<00:24:50.765>Uh, <00:24:50.892>so <00:24:51.019>I'm <00:24:51.146>just <00:24:51.274>gonna <00:24:51.401>scale <00:24:51.528>that <00:24:51.655>back <00:24:51.783>down <00:24:51.910>a <00:24:52.037>little <00:24:52.165>bit.

575
00:24:53.715 --> 00:24:55.295
<00:24:53.715>Uh, <00:24:53.915>it's, <00:24:54.115>uh, <00:24:54.314>fit <00:24:54.514>it <00:24:54.715>to <00:24:54.915>the <00:24:55.115>screen

576
00:24:55.515 --> 00:24:57.055
<00:24:55.515>and <00:24:55.792>then <00:24:56.069>just <00:24:56.346>scale <00:24:56.623>it <00:24:56.901>down.

577
00:24:57.075 --> 00:24:58.735
<00:24:57.075>So <00:24:57.275>I've <00:24:57.475>got <00:24:57.675>now <00:24:57.875>like <00:24:58.075>a <00:24:58.275>nice <00:24:58.475>little,

578
00:24:58.995 --> 00:25:00.535
<00:24:58.995>little <00:24:59.341>watermark <00:24:59.687>in <00:25:00.034>my <00:25:00.381>corner.

579
00:25:00.965 --> 00:25:03.295
<00:25:00.965>I've <00:25:01.105>got <00:25:01.245>a <00:25:01.385>nice <00:25:01.524>little, <00:25:01.665>there <00:25:01.804>we <00:25:01.945>go. <00:25:02.084>That's <00:25:02.225>quite <00:25:02.365>nice.

580
00:25:03.605 --> 00:25:05.815
<00:25:03.605>It's <00:25:03.955>my <00:25:04.305>simple <00:25:04.655>stream. <00:25:05.005>Um,

581
00:25:05.915 --> 00:25:07.655
<00:25:05.915>and <00:25:06.055>then <00:25:06.195>we <00:25:06.335>just <00:25:06.475>need <00:25:06.615>to <00:25:06.754>do <00:25:06.895>a <00:25:07.034>few <00:25:07.175>more <00:25:07.315>settings.

582
00:25:08.035 --> 00:25:11.895
<00:25:08.035>So <00:25:08.175>what <00:25:08.315>we'll <00:25:08.455>do <00:25:08.595>is <00:25:08.735>we'll <00:25:08.875>set <00:25:09.015>up <00:25:09.155>our <00:25:09.295>video <00:25:09.435>settings.

583
00:25:12.035 --> 00:25:14.575
<00:25:12.035>I'm <00:25:12.190>gonna <00:25:12.346>use <00:25:12.501>10 <00:25:12.657>80 <00:25:12.812>p <00:25:12.968>like <00:25:13.123>I <00:25:13.279>said, <00:25:13.435>uh,

584
00:25:14.575 --> 00:25:15.815
<00:25:14.575>we're <00:25:14.761>gonna <00:25:14.947>use <00:25:15.133>30 <00:25:15.319>frames <00:25:15.505>a <00:25:15.691>second.

585
00:25:16.435 --> 00:25:20.615
<00:25:16.435>Uh, <00:25:16.575>we're <00:25:16.715>going <00:25:16.855>to, <00:25:16.995>I'm <00:25:17.135>gonna <00:25:17.274>use <00:25:17.415>2000 <00:25:17.554>kilobits <00:25:17.695>a <00:25:17.835>second.

586
00:25:20.715 --> 00:25:21.735
<00:25:20.715>So <00:25:21.174>two <00:25:21.632>megabits.

587
00:25:21.915 --> 00:25:24.135
<00:25:21.915>Um, <00:25:22.115>I <00:25:22.315>do <00:25:22.514>use <00:25:22.715>the <00:25:22.915>advanced <00:25:23.115>mode <00:25:23.315>just

588
00:25:24.135 --> 00:25:26.055
<00:25:24.135>to <00:25:24.290>make <00:25:24.446>sure <00:25:24.601>I <00:25:24.757>can <00:25:24.912>set <00:25:25.068>the <00:25:25.223>key <00:25:25.379>frame <00:25:25.535>interval.

589
00:25:26.285 --> 00:25:28.295
<00:25:26.285>This <00:25:26.485>is <00:25:26.685>really <00:25:26.885>simple <00:25:27.085>to <00:25:27.285>set <00:25:27.485>up <00:25:27.685>yourself.

590
00:25:28.795 --> 00:25:30.055
<00:25:28.795>I'm <00:25:29.021>gonna <00:25:29.248>use <00:25:29.475>two <00:25:29.702>megabits <00:25:29.929>just

591
00:25:30.215 --> 00:25:32.735
<00:25:30.215>'cause <00:25:30.355>I'm <00:25:30.495>doing, <00:25:30.635>uh, <00:25:30.774>this <00:25:30.915>stream <00:25:31.054>out <00:25:31.195>at <00:25:31.334>the <00:25:31.475>same <00:25:31.615>time.

592
00:25:33.395 --> 00:25:34.735
<00:25:33.395>Uh, <00:25:33.797>so <00:25:34.198>I <00:25:34.601>would

593
00:25:34.735 --> 00:25:36.695
<00:25:34.735>otherwise <00:25:34.935>use <00:25:35.135>probably <00:25:35.334>four <00:25:35.534>or <00:25:35.735>five <00:25:35.935>megabits <00:25:36.135>here.

594
00:25:37.735 --> 00:25:39.915
<00:25:37.735>And <00:25:37.890>then <00:25:38.046>I <00:25:38.201>just <00:25:38.357>need <00:25:38.512>to <00:25:38.668>define <00:25:38.823>my <00:25:38.979>stream <00:25:39.135>location.

595
00:25:40.655 --> 00:25:43.195
<00:25:40.655>So <00:25:40.855>I'm <00:25:41.055>gonna <00:25:41.254>use <00:25:41.455>M'S <00:25:41.655>Global <00:25:41.855>entry <00:25:42.055>points.

596
00:25:43.375 --> 00:25:45.475
<00:25:43.375>Uh, <00:25:43.515>if <00:25:43.655>you <00:25:43.795>are <00:25:43.935>setting <00:25:44.075>this <00:25:44.215>up <00:25:44.355>the <00:25:44.495>first <00:25:44.635>time <00:25:44.775>around,

597
00:25:45.495 --> 00:25:47.075
<00:25:45.495>you <00:25:45.695>will <00:25:45.895>need <00:25:46.094>to <00:25:46.294>select <00:25:46.495>the <00:25:46.695>custom <00:25:46.895>endpoint.

598
00:25:47.195 --> 00:25:48.555
<00:25:47.195>I <00:25:47.399>think <00:25:47.603>it <00:25:47.807>does <00:25:48.011>default <00:25:48.215>to <00:25:48.419>Twitch.

599
00:25:48.975 --> 00:25:51.315
<00:25:48.975>Um, <00:25:49.149>and <00:25:49.324>we're <00:25:49.500>just <00:25:49.675>gonna <00:25:49.850>use <00:25:50.024>the <00:25:50.199>R-T-M-P-S <00:25:50.375>endpoint

600
00:25:51.315 --> 00:25:52.675
<00:25:51.315>because <00:25:51.519>I <00:25:51.723>know <00:25:51.927>that <00:25:52.131>m <00:25:52.335>supports <00:25:52.539>it.

601
00:25:52.755 --> 00:25:56.715
<00:25:52.755>I <00:25:52.882>know <00:25:53.009>that <00:25:53.136>OBS <00:25:53.264>supports <00:25:53.391>it <00:25:53.518>and <00:25:53.645>uh, <00:25:53.773>that's <00:25:53.900>pretty <00:25:54.027>much <00:25:54.155>it.

602
00:25:57.095 --> 00:26:00.035
<00:25:57.095>And <00:25:57.250>then <00:25:57.406>I <00:25:57.561>need <00:25:57.717>my <00:25:57.872>stream <00:25:58.028>key, <00:25:58.183>my <00:25:58.339>magical <00:25:58.495>password.

603
00:26:00.855 --> 00:26:02.875
<00:26:00.855>How <00:26:00.995>do <00:26:01.135>I <00:26:01.275>get <00:26:01.415>my <00:26:01.555>stream <00:26:01.695>key? <00:26:01.835>I <00:26:01.975>hear <00:26:02.115>you <00:26:02.255>asking.

604
00:26:03.185 --> 00:26:05.315
<00:26:03.185>Well, <00:26:03.385>we <00:26:03.585>need <00:26:03.784>to <00:26:03.985>create <00:26:04.185>a <00:26:04.385>live <00:26:04.585>stream.

605
00:26:05.895 --> 00:26:08.475
<00:26:05.895>So <00:26:06.035>like <00:26:06.175>I <00:26:06.315>said, <00:26:06.455>we're <00:26:06.595>gonna <00:26:06.735>use <00:26:06.875>m <00:26:07.014>for <00:26:07.155>the, <00:26:07.295>uh,

606
00:26:08.575 --> 00:26:10.515
<00:26:08.575>the <00:26:08.775>processing <00:26:08.975>and <00:26:09.175>delivery <00:26:09.375>of <00:26:09.575>the <00:26:09.775>live <00:26:09.975>stream.

607
00:26:11.135 --> 00:26:13.355
<00:26:11.135>So <00:26:11.310>I'm <00:26:11.485>just <00:26:11.660>gonna <00:26:11.835>jump <00:26:12.010>into <00:26:12.185>my <00:26:12.360>M <00:26:12.535>dashboard,

608
00:26:14.215 --> 00:26:15.475
<00:26:14.215>create <00:26:14.498>a <00:26:14.782>new <00:26:15.065>live <00:26:15.349>stream.

609
00:26:16.175 --> 00:26:18.875
<00:26:16.175>Uh, <00:26:16.350>this <00:26:16.524>is <00:26:16.700>actually <00:26:16.875>just <00:26:17.050>make <00:26:17.225>an <00:26:17.399>API <00:26:17.575>request.

610
00:26:18.935 --> 00:26:20.315
<00:26:18.935>So <00:26:19.072>you <00:26:19.211>can <00:26:19.349>see <00:26:19.487>it's <00:26:19.625>just <00:26:19.763>gonna <00:26:19.901>make <00:26:20.039>a <00:26:20.177>post

611
00:26:20.455 --> 00:26:21.555
<00:26:20.455>to <00:26:20.653>create <00:26:20.851>a <00:26:21.049>new <00:26:21.247>live <00:26:21.445>stream.

612
00:26:22.535 --> 00:26:24.315
<00:26:22.535>Really <00:26:22.768>simple. <00:26:23.001>All <00:26:23.235>I'm <00:26:23.468>saying <00:26:23.701>is <00:26:23.935>I

613
00:26:24.315 --> 00:26:25.515
<00:26:24.315>want <00:26:24.495>my <00:26:24.675>live <00:26:24.855>stream <00:26:25.035>to <00:26:25.215>be <00:26:25.395>public.

614
00:26:25.995 --> 00:26:27.635
<00:26:25.995>I <00:26:26.169>don't <00:26:26.344>need <00:26:26.520>any <00:26:26.695>form <00:26:26.870>of <00:26:27.044>security <00:26:27.219>on <00:26:27.395>it.

615
00:26:27.895 --> 00:26:30.235
<00:26:27.895>And <00:26:28.035>I <00:26:28.175>want <00:26:28.315>the <00:26:28.455>on-demand <00:26:28.595>assets <00:26:28.735>that <00:26:28.875>are <00:26:29.014>generated <00:26:29.155>from <00:26:29.295>it

616
00:26:30.375 --> 00:26:31.475
<00:26:30.375>to <00:26:30.622>be <00:26:30.870>public <00:26:31.117>as <00:26:31.365>well.

617
00:26:32.535 --> 00:26:35.155
<00:26:32.535>I'm <00:26:32.662>gonna <00:26:32.789>run <00:26:32.916>that <00:26:33.044>and <00:26:33.171>it's <00:26:33.298>gonna <00:26:33.425>gimme <00:26:33.553>back <00:26:33.680>a <00:26:33.807>live <00:26:33.935>stream.

618
00:26:35.255 --> 00:26:36.395
<00:26:35.255>We <00:26:35.460>can <00:26:35.665>jump <00:26:35.870>in <00:26:36.075>for <00:26:36.281>dashboard

619
00:26:36.395 --> 00:26:37.595
<00:26:36.395>and <00:26:36.575>view <00:26:36.755>that <00:26:36.935>live <00:26:37.115>stream <00:26:37.295>as <00:26:37.475>well.

620
00:26:38.215 --> 00:26:40.755
<00:26:38.215>It <00:26:38.415>gives <00:26:38.615>me <00:26:38.814>my <00:26:39.014>RTMP <00:26:39.215>entry <00:26:39.415>points, <00:26:39.615>uh,

621
00:26:40.775 --> 00:26:42.275
<00:26:40.775>but <00:26:40.967>it <00:26:41.160>also <00:26:41.353>gives <00:26:41.546>me <00:26:41.739>a <00:26:41.932>stream <00:26:42.125>key.

622
00:26:42.295 --> 00:26:45.005
<00:26:42.295>So <00:26:42.422>I'm <00:26:42.549>gonna <00:26:42.676>copy <00:26:42.804>that <00:26:42.931>and <00:26:43.058>I'm <00:26:43.185>just <00:26:43.313>gonna <00:26:43.440>paste <00:26:43.567>that <00:26:43.695>in.

623
00:26:45.025 --> 00:26:46.965
<00:26:45.025>I'm <00:26:45.141>gonna <00:26:45.258>show <00:26:45.375>it <00:26:45.491>just <00:26:45.608>to <00:26:45.725>make <00:26:45.841>sure <00:26:45.958>I <00:26:46.075>haven't <00:26:46.191>got <00:26:46.308>any <00:26:46.425>white

624
00:26:46.965 --> 00:26:48.685
<00:26:46.965>space <00:26:47.120>at <00:26:47.276>the <00:26:47.431>end <00:26:47.587>of <00:26:47.742>it <00:26:47.898>or <00:26:48.053>anything <00:26:48.209>I <00:26:48.365>haven't.

625
00:26:49.465 --> 00:26:51.885
<00:26:49.465>I'm <00:26:49.620>just <00:26:49.776>gonna <00:26:49.931>hit <00:26:50.087>okay <00:26:50.242>and <00:26:50.398>that's <00:26:50.553>pretty <00:26:50.709>much <00:26:50.865>it.

626
00:26:52.145 --> 00:26:54.565
<00:26:52.145>And <00:26:52.345>then <00:26:52.545>we <00:26:52.745>can <00:26:52.945>just <00:26:53.145>hit <00:26:53.345>start <00:26:53.545>streaming

627
00:26:55.495 --> 00:26:56.955
<00:26:55.495>and <00:26:55.823>hopefully <00:26:56.151>what <00:26:56.480>we'll <00:26:56.809>see

628
00:26:57.535 --> 00:27:00.315
<00:26:57.535>is <00:26:57.662>a <00:26:57.789>nice <00:26:57.916>little <00:26:58.044>green <00:26:58.171>box <00:26:58.298>in <00:26:58.425>the <00:26:58.553>bottom <00:26:58.680>right <00:26:58.807>hand <00:26:58.935>corner

629
00:27:00.615 --> 00:27:01.835
<00:27:00.615>and <00:27:00.889>a <00:27:01.164>bit <00:27:01.438>rate <00:27:01.713>measurement.

630
00:27:02.655 --> 00:27:05.475
<00:27:02.655>So <00:27:02.810>hopefully <00:27:02.966>it <00:27:03.121>goes <00:27:03.277>green <00:27:03.432>when <00:27:03.588>you <00:27:03.743>do <00:27:03.899>this <00:27:04.055>yourself.

631
00:27:05.775 --> 00:27:07.235
<00:27:05.775>If <00:27:05.994>it <00:27:06.213>doesn't, <00:27:06.432>if <00:27:06.651>it <00:27:06.870>goes <00:27:07.089>orange

632
00:27:07.455 --> 00:27:08.515
<00:27:07.455>or <00:27:07.693>red, <00:27:07.932>what <00:27:08.170>you <00:27:08.409>need

633
00:27:08.515 --> 00:27:11.875
<00:27:08.515>to <00:27:08.670>do <00:27:08.826>is <00:27:08.981>tune <00:27:09.137>back <00:27:09.292>your <00:27:09.448>bit <00:27:09.603>rate <00:27:09.759>generally, <00:27:09.915>um,

634
00:27:12.095 --> 00:27:13.355
<00:27:12.095>and <00:27:12.473>figure <00:27:12.851>out, <00:27:13.229>uh,

635
00:27:13.585 --> 00:27:15.955
<00:27:13.585>what <00:27:13.740>the <00:27:13.896>maximum <00:27:14.051>sustained <00:27:14.207>bit <00:27:14.362>rate <00:27:14.518>your <00:27:14.673>network <00:27:14.829>can <00:27:14.985>do.

636
00:27:16.535 --> 00:27:19.235
<00:27:16.535>Um, <00:27:16.690>this <00:27:16.846>seems <00:27:17.001>pretty <00:27:17.157>stable. <00:27:17.312>My <00:27:17.468>CPU <00:27:17.623>is <00:27:17.779>pretty <00:27:17.935>good.

637
00:27:19.915 --> 00:27:21.995
<00:27:19.915>13%, <00:27:20.195>I'm <00:27:20.475>not <00:27:20.754>dropping <00:27:21.034>any <00:27:21.315>frames.

638
00:27:21.995 --> 00:27:23.195
<00:27:21.995>Again, <00:27:22.210>that <00:27:22.427>can <00:27:22.643>be <00:27:22.859>an <00:27:23.074>indication

639
00:27:23.195 --> 00:27:25.355
<00:27:23.195>that <00:27:23.395>you <00:27:23.595>are <00:27:23.794>overloading, <00:27:23.995>uh, <00:27:24.195>the <00:27:24.395>live <00:27:24.595>stream.

640
00:27:26.145 --> 00:27:27.715
<00:27:26.145>This <00:27:26.611>looks <00:27:27.078>pretty <00:27:27.545>healthy.

641
00:27:28.175 --> 00:27:30.035
<00:27:28.175>So <00:27:28.375>if <00:27:28.575>we <00:27:28.774>jump <00:27:28.975>back <00:27:29.175>into <00:27:29.375>our <00:27:29.575>dashboard,

642
00:27:30.375 --> 00:27:31.435
<00:27:30.375>we <00:27:30.565>should <00:27:30.756>see <00:27:30.947>our <00:27:31.138>live <00:27:31.329>stream.

643
00:27:31.805 --> 00:27:33.155
<00:27:31.805>There <00:27:32.108>we <00:27:32.412>go. <00:27:32.716>Hey, <00:27:33.020>great.

644
00:27:33.185 --> 00:27:35.115
<00:27:33.185>That <00:27:33.385>little <00:27:33.585>live <00:27:33.784>stream <00:27:33.985>can <00:27:34.185>tell <00:27:34.385>it's <00:27:34.585>real.

645
00:27:35.235 --> 00:27:36.675
<00:27:35.235>'cause <00:27:35.364>I've <00:27:35.494>got <00:27:35.623>the <00:27:35.753>Mux <00:27:35.882>logo <00:27:36.012>on <00:27:36.142>the <00:27:36.271>bottom <00:27:36.401>of <00:27:36.531>it.

646
00:27:37.095 --> 00:27:40.195
<00:27:37.095>Uh, <00:27:37.250>it's <00:27:37.406>coming <00:27:37.561>off <00:27:37.717>of <00:27:37.872>our <00:27:38.028>OBS, <00:27:38.183>so <00:27:38.339>that's <00:27:38.495>great.

647
00:27:40.255 --> 00:27:43.515
<00:27:40.255>You <00:27:40.430>can <00:27:40.605>see <00:27:40.780>when <00:27:40.955>Stream <00:27:41.130>connected <00:27:41.305>moved <00:27:41.480>into <00:27:41.655>recording

648
00:27:43.515 --> 00:27:44.515
<00:27:43.515>and <00:27:43.815>then <00:27:44.115>became <00:27:44.415>active.

649
00:27:46.005 --> 00:27:47.535
<00:27:46.005>Okay, <00:27:46.349>so <00:27:46.693>that's, <00:27:47.037>that's <00:27:47.382>great,

650
00:27:47.915 --> 00:27:49.175
<00:27:47.915>but <00:27:48.041>I <00:27:48.167>think <00:27:48.293>we <00:27:48.418>can <00:27:48.545>do <00:27:48.671>a <00:27:48.797>little <00:27:48.923>bit <00:27:49.049>better.

651
00:27:49.635 --> 00:27:52.895
<00:27:49.635>Um, <00:27:49.790>I <00:27:49.946>like <00:27:50.101>this <00:27:50.257>headshot. <00:27:50.412>I <00:27:50.568>really <00:27:50.723>like <00:27:50.879>this <00:27:51.035>headshot.

652
00:27:53.235 --> 00:27:55.455
<00:27:53.235>Um, <00:27:53.468>but <00:27:53.701>like <00:27:53.935>I <00:27:54.168>said <00:27:54.401>earlier, <00:27:54.635>one

653
00:27:55.455 --> 00:27:58.335
<00:27:55.455>of <00:27:55.571>the <00:27:55.688>things <00:27:55.804>I <00:27:55.921>do <00:27:56.038>on <00:27:56.155>the <00:27:56.271>side <00:27:56.388>is <00:27:56.504>I <00:27:56.621>do <00:27:56.738>a <00:27:56.855>conference.

654
00:27:58.615 --> 00:28:00.295
<00:27:58.615>I <00:27:58.848>work <00:27:59.081>on <00:27:59.315>a <00:27:59.548>conference <00:27:59.781>called <00:28:00.015>Dux.

655
00:28:00.735 --> 00:28:02.415
<00:28:00.735>I <00:28:00.968>also <00:28:01.201>work <00:28:01.435>on <00:28:01.668>London <00:28:01.901>Video <00:28:02.135>Technology.

656
00:28:03.265 --> 00:28:05.405
<00:28:03.265>So <00:28:03.498>what <00:28:03.731>we're <00:28:03.965>gonna <00:28:04.198>do <00:28:04.431>is, <00:28:04.665>uh,

657
00:28:05.495 --> 00:28:09.825
<00:28:05.495>lemme <00:28:05.650>just <00:28:05.806>find <00:28:05.961>the <00:28:06.117>file <00:28:06.272>on <00:28:06.428>the <00:28:06.583>other <00:28:06.739>screen <00:28:06.895>here.

658
00:28:09.825 --> 00:28:13.705
<00:28:09.825>It <00:28:10.025>is <00:28:10.225>LED <00:28:10.425>in <00:28:10.625>Dropbox. <00:28:10.825>Here <00:28:11.025>we <00:28:11.225>go.

659
00:28:14.225 --> 00:28:16.105
<00:28:14.225>L-E-D-L-E <00:28:14.925>template. <00:28:15.625>Great.

660
00:28:16.525 --> 00:28:18.585
<00:28:16.525>So <00:28:16.725>what <00:28:16.925>we're <00:28:17.125>gonna <00:28:17.325>do <00:28:17.525>is <00:28:17.725>create <00:28:17.925>a,

661
00:28:18.785 --> 00:28:20.945
<00:28:18.785>a <00:28:19.065>live <00:28:19.345>coding <00:28:19.625>setup <00:28:19.905>using <00:28:20.185>OBS.

662
00:28:21.325 --> 00:28:22.705
<00:28:21.325>So <00:28:21.532>I'm <00:28:21.739>gonna <00:28:21.946>make <00:28:22.153>a <00:28:22.360>quick <00:28:22.567>change.

663
00:28:22.705 --> 00:28:24.185
<00:28:22.705>First, <00:28:22.971>I'm <00:28:23.237>gonna <00:28:23.504>change <00:28:23.770>the <00:28:24.037>resolution.

664
00:28:24.645 --> 00:28:26.225
<00:28:24.645>Um, <00:28:24.995>sif <00:28:25.345>a <00:28:25.695>live <00:28:26.045>coding.

665
00:28:26.255 --> 00:28:28.625
<00:28:26.255>What <00:28:26.410>I <00:28:26.566>like <00:28:26.721>to <00:28:26.877>do <00:28:27.032>is <00:28:27.188>let <00:28:27.343>people <00:28:27.499>see <00:28:27.655>my

666
00:28:28.625 --> 00:28:30.065
<00:28:28.625>face <00:28:28.884>as <00:28:29.143>well <00:28:29.402>as <00:28:29.661>my <00:28:29.921>editor.

667
00:28:30.525 --> 00:28:33.065
<00:28:30.525>So <00:28:30.641>what <00:28:30.758>I'm <00:28:30.875>gonna <00:28:30.991>do <00:28:31.108>for <00:28:31.225>that <00:28:31.341>is <00:28:31.458>I'm <00:28:31.575>just <00:28:31.691>gonna <00:28:31.808>change <00:28:31.925>the

668
00:28:33.305 --> 00:28:36.585
<00:28:33.305>resolution <00:28:33.432>a <00:28:33.559>bit <00:28:33.686>to <00:28:33.814>make <00:28:33.941>the, <00:28:34.068>uh, <00:28:34.195>aspect <00:28:34.323>ratio <00:28:34.450>a <00:28:34.577>bit <00:28:34.705>wider.

669
00:28:36.925 --> 00:28:40.945
<00:28:36.925>So <00:28:37.065>I'm <00:28:37.205>gonna <00:28:37.345>set <00:28:37.485>it <00:28:37.625>to <00:28:37.764>2160, <00:28:37.905>uh, <00:28:38.044>by <00:28:38.185>10 <00:28:38.325>80,

670
00:28:41.035 --> 00:28:43.345
<00:28:41.035>which <00:28:41.210>just <00:28:41.385>makes <00:28:41.560>it <00:28:41.735>a <00:28:41.910>a <00:28:42.085>2.1, <00:28:42.260>uh, <00:28:42.435>two

671
00:28:43.345 --> 00:28:46.105
<00:28:43.345>by <00:28:43.625>one <00:28:43.905>aspect <00:28:44.185>ratio <00:28:44.465>10 <00:28:44.745>80.

672
00:28:47.915 --> 00:28:49.495
<00:28:47.915>So <00:28:48.090>I <00:28:48.264>should <00:28:48.440>just <00:28:48.615>make <00:28:48.790>it <00:28:48.965>a <00:28:49.139>bit <00:28:49.315>wider.

673
00:28:50.325 --> 00:28:52.975
<00:28:50.325>Then <00:28:50.465>I <00:28:50.605>am <00:28:50.745>gonna <00:28:50.885>throw <00:28:51.025>in <00:28:51.165>a <00:28:51.305>little <00:28:51.445>template <00:28:51.585>I've <00:28:51.725>made.

674
00:28:53.385 --> 00:28:55.775
<00:28:53.385>Let's <00:28:53.585>move <00:28:53.785>my <00:28:53.985>head <00:28:54.185>capture <00:28:54.385>back <00:28:54.585>above <00:28:54.785>it,

675
00:28:56.075 --> 00:28:57.135
<00:28:56.075>the <00:28:56.313>little <00:28:56.552>template <00:28:56.790>I've <00:28:57.029>made.

676
00:28:57.135 --> 00:28:59.095
<00:28:57.135>So <00:28:57.335>this <00:28:57.535>is <00:28:57.735>the <00:28:57.935>London <00:28:58.135>Video <00:28:58.335>Technology <00:28:58.535>template.

677
00:28:59.355 --> 00:29:02.255
<00:28:59.355>So <00:28:59.555>I <00:28:59.755>want <00:28:59.955>my <00:29:00.155>headshot <00:29:00.355>up <00:29:00.555>here, <00:29:00.755>uh,

678
00:29:02.395 --> 00:29:04.135
<00:29:02.395>but <00:29:02.628>it, <00:29:02.861>it's <00:29:03.095>terribly <00:29:03.328>cropped <00:29:03.561>right <00:29:03.795>now,

679
00:29:04.155 --> 00:29:06.095
<00:29:04.155>so <00:29:04.330>I'll <00:29:04.504>just <00:29:04.680>crop <00:29:04.855>it <00:29:05.030>down <00:29:05.205>a <00:29:05.379>little <00:29:05.555>bit.

680
00:29:06.155 --> 00:29:08.895
<00:29:06.155>All <00:29:06.271>I'm <00:29:06.388>doing <00:29:06.504>is <00:29:06.621>holding <00:29:06.738>to <00:29:06.855>do <00:29:06.971>is <00:29:07.088>crop <00:29:07.205>this <00:29:07.321>down <00:29:07.438>a <00:29:07.555>little

681
00:29:08.895 --> 00:29:10.975
<00:29:08.895>bit, <00:29:09.050>maybe <00:29:09.206>a <00:29:09.361>little <00:29:09.517>bit <00:29:09.672>less <00:29:09.828>room <00:29:09.983>above <00:29:10.139>my <00:29:10.295>head,

682
00:29:11.025 --> 00:29:13.095
<00:29:11.025>maybe <00:29:11.152>a <00:29:11.279>little <00:29:11.406>bit <00:29:11.534>more <00:29:11.661>room <00:29:11.788>so <00:29:11.915>you <00:29:12.043>can <00:29:12.170>see <00:29:12.297>my <00:29:12.425>door.

683
00:29:13.145 --> 00:29:16.135
<00:29:13.145>Great. <00:29:13.300>So <00:29:13.456>now <00:29:13.611>I've <00:29:13.767>got <00:29:13.922>like <00:29:14.078>this <00:29:14.233>nice <00:29:14.389>little, <00:29:14.545>uh,

684
00:29:16.135 --> 00:29:17.975
<00:29:16.135>headshot <00:29:16.310>I <00:29:16.485>can <00:29:16.660>put <00:29:16.835>up <00:29:17.010>in <00:29:17.185>the <00:29:17.360>corner <00:29:17.535>here.

685
00:29:18.675 --> 00:29:21.015
<00:29:18.675>And <00:29:18.802>then <00:29:18.929>I <00:29:19.056>can <00:29:19.184>put <00:29:19.311>my <00:29:19.438>live <00:29:19.565>coding <00:29:19.693>over <00:29:19.820>on <00:29:19.947>the <00:29:20.075>side.

686
00:29:21.115 --> 00:29:23.615
<00:29:21.115>So <00:29:21.255>to <00:29:21.395>do <00:29:21.535>that, <00:29:21.675>I'm <00:29:21.815>just <00:29:21.955>gonna <00:29:22.095>add <00:29:22.235>a <00:29:22.375>window <00:29:22.515>capture,

687
00:29:24.895 --> 00:29:28.475
<00:29:24.895>create <00:29:25.070>new, <00:29:25.245>um, <00:29:25.420>and <00:29:25.595>then <00:29:25.770>I'm <00:29:25.945>gonna <00:29:26.120>find, <00:29:26.295>uh,

688
00:29:28.755 --> 00:29:30.315
<00:29:28.755>x, <00:29:29.221>no <00:29:29.688>X <00:29:30.155>code.

689
00:29:30.535 --> 00:29:33.865
<00:29:30.535>I'm <00:29:30.662>gonna <00:29:30.789>find <00:29:30.916>this <00:29:31.044>is <00:29:31.171>assuming <00:29:31.298>I <00:29:31.425>have <00:29:31.553>one. <00:29:31.680>There <00:29:31.807>you <00:29:31.935>go.

690
00:29:33.965 --> 00:29:35.595
<00:29:33.965>Vs <00:29:34.665>code. <00:29:35.365>Great.

691
00:29:35.975 --> 00:29:38.915
<00:29:35.975>And <00:29:36.082>then <00:29:36.190>again, <00:29:36.298>it's <00:29:36.405>made <00:29:36.513>it <00:29:36.621>a <00:29:36.728>little <00:29:36.836>bit <00:29:36.944>big <00:29:37.051>so <00:29:37.159>I <00:29:37.267>can <00:29:37.375>just,

692
00:29:39.095 --> 00:29:43.325
<00:29:39.095>uh, <00:29:39.250>scale <00:29:39.406>this <00:29:39.561>down <00:29:39.717>again <00:29:39.872>using <00:29:40.028>transform, <00:29:40.183>uh, <00:29:40.339>fit <00:29:40.495>it.

693
00:29:43.345 --> 00:29:45.685
<00:29:43.345>And <00:29:43.485>then <00:29:43.625>I <00:29:43.765>can <00:29:43.905>just <00:29:44.045>make <00:29:44.185>it <00:29:44.325>a <00:29:44.465>little <00:29:44.605>bit <00:29:44.745>smaller.

694
00:29:46.955 --> 00:29:50.375
<00:29:46.955>And <00:29:47.095>there <00:29:47.235>we <00:29:47.375>go. <00:29:47.514>We've <00:29:47.655>got <00:29:47.794>our <00:29:47.935>nice <00:29:48.074>little <00:29:48.215>slightly <00:29:48.355>more

695
00:29:50.375 --> 00:29:53.215
<00:29:50.375>practical <00:29:50.530>example <00:29:50.686>where <00:29:50.841>I've <00:29:50.997>got <00:29:51.152>my <00:29:51.308>nice <00:29:51.463>life <00:29:51.619>coding <00:29:51.775>setup.

696
00:29:53.395 --> 00:29:56.655
<00:29:53.395>Now <00:29:53.511>I <00:29:53.628>can <00:29:53.745>jump <00:29:53.861>over <00:29:53.978>into <00:29:54.095>my <00:29:54.211>editor <00:29:54.328>and <00:29:54.445>say, <00:29:54.561>you <00:29:54.678>know, <00:29:54.795>yeah.

697
00:29:56.675 --> 00:30:01.455
<00:29:56.675>Hey <00:29:56.815>puts, <00:29:56.955>hi <00:29:57.095>Phil. <00:29:57.235>Hey, <00:29:57.375>you <00:29:57.514>still <00:29:57.655>writing <00:29:57.794>Ruby? <00:29:57.935>It's <00:29:58.075>2020.

698
00:30:02.355 --> 00:30:04.175
<00:30:02.355>Um, <00:30:02.635>yeah, <00:30:02.915>so <00:30:03.195>there <00:30:03.475>you <00:30:03.755>go.

699
00:30:04.235 --> 00:30:06.935
<00:30:04.235>Uh, <00:30:04.375>really <00:30:04.514>simple <00:30:04.655>to <00:30:04.794>just <00:30:04.935>put <00:30:05.074>together <00:30:05.215>a <00:30:05.354>nice <00:30:05.495>live <00:30:05.635>stream.

700
00:30:07.085 --> 00:30:09.015
<00:30:07.085>Obviously <00:30:07.365>we <00:30:07.645>can <00:30:07.925>start <00:30:08.205>streaming <00:30:08.485>again

701
00:30:09.015 --> 00:30:10.455
<00:30:09.015>and <00:30:09.274>that'll <00:30:09.533>pair <00:30:09.792>on <00:30:10.051>our <00:30:10.311>website.

702
00:30:10.715 --> 00:30:14.015
<00:30:10.715>If <00:30:10.842>wanted <00:30:10.969>to, <00:30:11.096>we <00:30:11.224>could <00:30:11.351>just <00:30:11.478>obviously <00:30:11.605>add <00:30:11.733>in <00:30:11.860>a <00:30:11.987>little <00:30:12.115>bit

703
00:30:14.015 --> 00:30:16.175
<00:30:14.015>of <00:30:14.170>text, <00:30:14.326>so <00:30:14.481>if <00:30:14.637>you <00:30:14.792>add <00:30:14.948>different <00:30:15.103>presenters <00:30:15.259>coming <00:30:15.415>on,

704
00:30:16.485 --> 00:30:21.155
<00:30:16.485>just <00:30:16.659>something <00:30:16.834>we <00:30:17.010>do <00:30:17.185>in, <00:30:17.360>um, <00:30:17.534>on <00:30:17.709>video <00:30:17.885>tech

705
00:30:21.335 --> 00:30:23.235
<00:30:21.335>or <00:30:21.535>any <00:30:21.735>of <00:30:21.935>the <00:30:22.135>conferences <00:30:22.335>I <00:30:22.535>work <00:30:22.735>on.

706
00:30:23.655 --> 00:30:26.715
<00:30:23.655>And <00:30:23.795>then <00:30:23.935>just <00:30:24.075>obviously, <00:30:24.215>uh, <00:30:24.355>drop <00:30:24.495>that <00:30:24.635>text <00:30:24.774>below <00:30:24.915>my <00:30:25.055>face.

707
00:30:26.935 --> 00:30:29.475
<00:30:26.935>So <00:30:27.090>we <00:30:27.246>go <00:30:27.401>and <00:30:27.557>obviously <00:30:27.712>we <00:30:27.868>could <00:30:28.023>define <00:30:28.179>multiple <00:30:28.335>scenes.

708
00:30:29.495 --> 00:30:30.915
<00:30:29.495>So <00:30:29.654>if <00:30:29.814>you <00:30:29.974>wanted <00:30:30.134>to <00:30:30.293>jump <00:30:30.453>between, <00:30:30.613>you <00:30:30.773>know,

709
00:30:30.955 --> 00:30:32.635
<00:30:30.955>a <00:30:31.235>full <00:30:31.514>screen <00:30:31.794>screen <00:30:32.074>share, <00:30:32.355>uh,

710
00:30:32.735 --> 00:30:35.635
<00:30:32.735>or <00:30:32.875>a <00:30:33.014>full <00:30:33.155>screen <00:30:33.294>headshot, <00:30:33.435>you <00:30:33.574>could <00:30:33.715>really <00:30:33.854>easily <00:30:33.995>do <00:30:34.135>that.

711
00:30:35.865 --> 00:30:37.595
<00:30:35.865>Obviously, <00:30:36.098>if <00:30:36.331>we <00:30:36.565>then <00:30:36.798>just <00:30:37.031>jump <00:30:37.265>in

712
00:30:37.595 --> 00:30:39.355
<00:30:37.595>for <00:30:37.770>the <00:30:37.945>live <00:30:38.120>stream, <00:30:38.295>bring <00:30:38.470>it <00:30:38.645>up <00:30:38.820>to <00:30:38.995>date.

713
00:30:39.365 --> 00:30:40.475
<00:30:39.365>There <00:30:39.564>we <00:30:39.764>go. <00:30:39.964>We've <00:30:40.164>got <00:30:40.364>our,

714
00:30:40.695 --> 00:30:43.155
<00:30:40.695>our <00:30:40.928>nice <00:30:41.161>shiny <00:30:41.395>live <00:30:41.628>coding <00:30:41.861>set <00:30:42.095>up

715
00:30:43.175 --> 00:30:44.515
<00:30:43.175>now, <00:30:43.416>which <00:30:43.657>is <00:30:43.898>really <00:30:44.139>good <00:30:44.381>fun.

716
00:30:45.545 --> 00:30:49.755
<00:30:45.545>Okay, <00:30:45.825>great. <00:30:46.105>So <00:30:46.385>there <00:30:46.665>we <00:30:46.945>go.

717
00:30:49.925 --> 00:30:53.275
<00:30:49.925>We've <00:30:50.125>managed <00:30:50.325>to <00:30:50.524>define <00:30:50.725>our, <00:30:50.925>uh, <00:30:51.125>capture <00:30:51.325>phase.

718
00:30:53.375 --> 00:30:58.175
<00:30:53.375>That's <00:30:53.530>great. <00:30:53.686>But <00:30:53.841>now, <00:30:53.997>uh, <00:30:54.152>we <00:30:54.308>kind <00:30:54.463>of <00:30:54.619>wanna <00:30:54.775>play

719
00:30:58.175 --> 00:30:59.895
<00:30:58.175>that <00:30:58.641>back <00:30:59.108>somewhere, <00:30:59.575>right?

720
00:31:00.155 --> 00:31:04.775
<00:31:00.155>Um, <00:31:00.271>it's <00:31:00.388>not <00:31:00.504>really <00:31:00.621>gonna <00:31:00.738>be <00:31:00.855>very <00:31:00.971>useful <00:31:01.088>if <00:31:01.205>the <00:31:01.321>only <00:31:01.438>way <00:31:01.555>my

721
00:31:04.775 --> 00:31:07.415
<00:31:04.775>people <00:31:04.950>can <00:31:05.125>view <00:31:05.300>it <00:31:05.475>is <00:31:05.650>via <00:31:05.825>the <00:31:06.000>MO <00:31:06.175>dashboard.

722
00:31:07.645 --> 00:31:08.815
<00:31:07.645>It's <00:31:07.908>not <00:31:08.171>really <00:31:08.434>that <00:31:08.698>helpful.

723
00:31:09.595 --> 00:31:11.655
<00:31:09.595>Um, <00:31:09.795>like <00:31:09.995>I <00:31:10.195>said <00:31:10.395>earlier, <00:31:10.595>players <00:31:10.795>are <00:31:10.995>kind

724
00:31:11.655 --> 00:31:13.095
<00:31:11.655>of <00:31:11.979>this <00:31:12.303>complex <00:31:12.627>standalone <00:31:12.951>topic.

725
00:31:13.335 --> 00:31:14.815
<00:31:13.335>I <00:31:13.525>could <00:31:13.715>easily <00:31:13.905>talk <00:31:14.096>for <00:31:14.286>an <00:31:14.476>hour <00:31:14.667>on.

726
00:31:15.235 --> 00:31:17.375
<00:31:15.235>Um, <00:31:15.584>the <00:31:15.935>idea <00:31:16.284>of <00:31:16.635>mos

727
00:31:17.435 --> 00:31:18.535
<00:31:17.435>and, <00:31:17.633>you <00:31:17.831>know, <00:31:18.029>kind <00:31:18.227>of <00:31:18.425>most

728
00:31:18.535 --> 00:31:20.215
<00:31:18.535>of <00:31:18.710>the <00:31:18.885>video <00:31:19.060>APIs <00:31:19.235>is <00:31:19.410>we <00:31:19.585>don't <00:31:19.760>wanna <00:31:19.935>force

729
00:31:20.215 --> 00:31:21.375
<00:31:20.215>you <00:31:20.476>into <00:31:20.736>a <00:31:20.998>particular <00:31:21.259>player.

730
00:31:21.835 --> 00:31:25.015
<00:31:21.835>Um, <00:31:22.010>we're <00:31:22.185>happy <00:31:22.360>to <00:31:22.535>make <00:31:22.710>recommendations <00:31:22.885>obviously <00:31:23.060>based <00:31:23.235>on

731
00:31:25.015 --> 00:31:26.975
<00:31:25.015>requirements, <00:31:25.215>but <00:31:25.415>really <00:31:25.615>want <00:31:25.815>to <00:31:26.015>give <00:31:26.215>you <00:31:26.415>freedom

732
00:31:27.035 --> 00:31:29.455
<00:31:27.035>to <00:31:27.175>approach <00:31:27.315>it <00:31:27.455>the <00:31:27.595>same <00:31:27.735>way <00:31:27.875>you <00:31:28.015>would <00:31:28.155>approach <00:31:28.295>any <00:31:28.435>user

733
00:31:29.455 --> 00:31:30.535
<00:31:29.455>facing <00:31:30.427>development.

734
00:31:32.205 --> 00:31:35.185
<00:31:32.205>Uh, <00:31:32.332>playing <00:31:32.459>h <00:31:32.586>lesson <00:31:32.714>a <00:31:32.841>browser <00:31:32.968>is <00:31:33.095>a <00:31:33.223>bit <00:31:33.350>hit <00:31:33.477>and <00:31:33.605>miss.

735
00:31:35.325 --> 00:31:38.265
<00:31:35.325>Um, <00:31:35.500>some <00:31:35.675>devices <00:31:35.850>support <00:31:36.025>this <00:31:36.200>natively <00:31:36.375>Safari <00:31:36.550>and <00:31:36.725>iOS.

736
00:31:38.265 --> 00:31:40.585
<00:31:38.265>Obviously <00:31:38.545>there's <00:31:38.825>an <00:31:39.105>Apple <00:31:39.385>technology, <00:31:39.665>um,

737
00:31:40.585 --> 00:31:41.625
<00:31:40.585>but <00:31:40.897>most <00:31:41.209>browsers <00:31:41.521>don't.

738
00:31:41.645 --> 00:31:45.665
<00:31:41.645>So <00:31:41.772>we <00:31:41.899>need <00:31:42.026>a <00:31:42.154>web <00:31:42.281>player <00:31:42.408>technology <00:31:42.535>to <00:31:42.663>use <00:31:42.790>a <00:31:42.917>HLS <00:31:43.045>protocol,

739
00:31:46.065 --> 00:31:49.665
<00:31:46.065>interact <00:31:46.220>with <00:31:46.376>the <00:31:46.531>browser <00:31:46.687>and <00:31:46.842>produce <00:31:46.998>the <00:31:47.153>video <00:31:47.309>using, <00:31:47.465>uh,

740
00:31:49.675 --> 00:31:51.785
<00:31:49.675>media <00:31:49.955>source <00:31:50.235>extensions <00:31:50.514>in <00:31:50.794>the <00:31:51.075>browser.

741
00:31:52.685 --> 00:31:55.785
<00:31:52.685>Now <00:31:52.825>for <00:31:52.965>a <00:31:53.105>couple <00:31:53.245>of <00:31:53.385>popular <00:31:53.524>players, <00:31:53.665>um, <00:31:53.804>on <00:31:53.945>the <00:31:54.085>web,

742
00:31:55.845 --> 00:31:59.745
<00:31:55.845>you'll <00:31:55.972>generally <00:31:56.099>see <00:31:56.226>video <00:31:56.354>js <00:31:56.481>a <00:31:56.608>lot, <00:31:56.735>hhl, <00:31:56.863>S <00:31:56.990>js <00:31:57.117>a <00:31:57.245>lot,

743
00:31:59.765 --> 00:32:01.065
<00:31:59.765>and <00:32:00.057>Shakar <00:32:00.350>player <00:32:00.642>a <00:32:00.935>lot.

744
00:32:01.485 --> 00:32:04.265
<00:32:01.485>Um, <00:32:01.659>the <00:32:01.834>key <00:32:02.010>difference, <00:32:02.185>uh, <00:32:02.360>here <00:32:02.534>is <00:32:02.709>video <00:32:02.885>JS

745
00:32:04.265 --> 00:32:06.865
<00:32:04.265>and <00:32:04.498>HLS <00:32:04.731>js, <00:32:04.965>uh, <00:32:05.198>exists <00:32:05.431>on <00:32:05.665>kind

746
00:32:06.865 --> 00:32:08.545
<00:32:06.865>of <00:32:07.145>very <00:32:07.425>different <00:32:07.705>levels <00:32:07.985>of <00:32:08.265>abstraction.

747
00:32:08.955 --> 00:32:11.785
<00:32:08.955>Video <00:32:09.129>js <00:32:09.304>is <00:32:09.480>very <00:32:09.655>much <00:32:09.830>a <00:32:10.004>complete <00:32:10.179>player <00:32:10.355>framework,

748
00:32:11.825 --> 00:32:15.425
<00:32:11.825>includes <00:32:11.980>plugins, <00:32:12.136>you <00:32:12.291>know, <00:32:12.447>uh, <00:32:12.602>themes, <00:32:12.758>that <00:32:12.913>sort <00:32:13.069>of <00:32:13.225>thing.

749
00:32:15.425 --> 00:32:19.745
<00:32:15.425>Whereas <00:32:15.580>H-L-S-J-S <00:32:15.736>is <00:32:15.891>really <00:32:16.047>just <00:32:16.202>an <00:32:16.358>abstraction <00:32:16.513>on <00:32:16.669>the, <00:32:16.825>um,

750
00:32:20.675 --> 00:32:22.385
<00:32:20.675>video <00:32:21.024>element <00:32:21.375>within <00:32:21.725>the <00:32:22.075>browser

751
00:32:22.685 --> 00:32:24.145
<00:32:22.685>to <00:32:23.013>give <00:32:23.341>it <00:32:23.670>HLS <00:32:23.999>capabilities.

752
00:32:24.885 --> 00:32:27.785
<00:32:24.885>Um, <00:32:25.085>there's <00:32:25.285>commercial <00:32:25.485>options, <00:32:25.685>things <00:32:25.885>like <00:32:26.085>JW <00:32:26.285>Player

753
00:32:27.785 --> 00:32:30.625
<00:32:27.785>and <00:32:27.985>VO <00:32:28.185>player <00:32:28.385>as <00:32:28.585>well <00:32:28.785>on <00:32:28.985>mobile <00:32:29.185>devices.

754
00:32:31.125 --> 00:32:34.465
<00:32:31.125>Uh, <00:32:31.280>on <00:32:31.436>iOS, <00:32:31.591>you'll <00:32:31.747>overwhelmingly <00:32:31.902>want <00:32:32.058>to <00:32:32.213>use <00:32:32.369>AV <00:32:32.525>player.

755
00:32:34.615 --> 00:32:37.265
<00:32:34.615>It's <00:32:34.770>native. <00:32:34.926>That's <00:32:35.081>what <00:32:35.237>you <00:32:35.392>should <00:32:35.548>be <00:32:35.703>using <00:32:35.859>on <00:32:36.015>Android.

756
00:32:37.365 --> 00:32:39.485
<00:32:37.365>Uh, <00:32:37.565>Google <00:32:37.765>maintain <00:32:37.965>a <00:32:38.165>product <00:32:38.365>called <00:32:38.565>Exo <00:32:38.765>Player,

757
00:32:39.655 --> 00:32:42.045
<00:32:39.655>which <00:32:39.855>is <00:32:40.055>great <00:32:40.254>for <00:32:40.455>streaming <00:32:40.655>HLS <00:32:40.855>on <00:32:41.055>Android.

758
00:32:43.015 --> 00:32:45.115
<00:32:43.015>And <00:32:43.190>then <00:32:43.365>if <00:32:43.540>you're <00:32:43.715>working <00:32:43.890>on <00:32:44.065>cross <00:32:44.240>platform <00:32:44.415>environment,

759
00:32:45.905 --> 00:32:47.515
<00:32:45.905>there's <00:32:46.371>React <00:32:46.838>Native <00:32:47.305>video

760
00:32:47.655 --> 00:32:52.275
<00:32:47.655>and <00:32:47.830>flutter <00:32:48.004>video <00:32:48.180>player <00:32:48.355>as <00:32:48.530>well <00:32:48.705>in <00:32:48.879>our <00:32:49.055>service.

761
00:32:52.415 --> 00:32:54.375
<00:32:52.415>So <00:32:52.648>today <00:32:52.881>we're <00:32:53.115>gonna <00:32:53.348>be <00:32:53.581>web <00:32:53.815>only.

762
00:32:54.755 --> 00:32:57.375
<00:32:54.755>Um, <00:32:54.895>so <00:32:55.035>we <00:32:55.175>only <00:32:55.315>have <00:32:55.455>to <00:32:55.595>worry <00:32:55.735>about, <00:32:55.875>you <00:32:56.015>know, <00:32:56.155>Chrome,

763
00:32:57.525 --> 00:33:00.335
<00:32:57.525>Firefox, <00:32:57.758>iOS, <00:32:57.991>safari, <00:32:58.225>that <00:32:58.458>sort <00:32:58.691>of <00:32:58.925>thing.

764
00:33:00.795 --> 00:33:03.535
<00:33:00.795>Um, <00:33:00.995>we're <00:33:01.195>gonna <00:33:01.395>use <00:33:01.595>Hhl, <00:33:01.795>SJS <00:33:01.995>for <00:33:02.195>Chrome

765
00:33:03.635 --> 00:33:05.095
<00:33:03.635>and <00:33:04.073>Firefox <00:33:04.511>and <00:33:04.949>Android.

766
00:33:05.475 --> 00:33:07.935
<00:33:05.475>Uh, <00:33:05.602>and <00:33:05.729>we're <00:33:05.856>gonna <00:33:05.984>use <00:33:06.111>the <00:33:06.238>native <00:33:06.365>H <00:33:06.493>ML <00:33:06.620>five <00:33:06.747>video <00:33:06.875>element

767
00:33:08.155 --> 00:33:10.015
<00:33:08.155>for <00:33:08.621>Safari <00:33:09.088>and <00:33:09.555>iOS.

768
00:33:11.195 --> 00:33:12.215
<00:33:11.195>So <00:33:11.348>let's <00:33:11.501>see <00:33:11.654>what <00:33:11.807>that <00:33:11.960>looks <00:33:12.112>like.

769
00:33:12.245 --> 00:33:16.045
<00:33:12.245>Just <00:33:12.524>gonna <00:33:12.804>grab <00:33:13.084>some <00:33:13.364>water. <00:33:13.645>Hmm.

770
00:33:19.755 --> 00:33:24.525
<00:33:19.755>I <00:33:19.930>like <00:33:20.105>to <00:33:20.280>tap <00:33:20.455>into, <00:33:20.630>uh, <00:33:20.805>some <00:33:20.980>code. <00:33:21.155>Perfect.

771
00:33:24.875 --> 00:33:28.005
<00:33:24.875>Okay, <00:33:25.050>so, <00:33:25.225>uh, <00:33:25.400>I'm <00:33:25.575>just <00:33:25.750>gonna <00:33:25.925>load <00:33:26.100>launch <00:33:26.275>a,

772
00:33:28.525 --> 00:33:30.245
<00:33:28.525>a <00:33:28.875>super <00:33:29.225>vanilla <00:33:29.575>code <00:33:29.925>sandbox.

773
00:33:31.065 --> 00:33:32.285
<00:33:31.065>Uh, <00:33:31.284>I'm <00:33:31.504>just <00:33:31.723>gonna <00:33:31.943>use <00:33:32.163>vanilla.

774
00:33:33.635 --> 00:33:34.895
<00:33:33.635>So <00:33:33.824>if <00:33:34.013>you <00:33:34.202>haven't <00:33:34.391>used <00:33:34.580>Code <00:33:34.769>Sandbox

775
00:33:34.895 --> 00:33:39.055
<00:33:34.895>before, <00:33:35.035>great <00:33:35.175>way <00:33:35.315>to <00:33:35.455>just <00:33:35.595>prototype <00:33:35.735>things <00:33:35.875>and <00:33:36.014>get <00:33:36.155>things <00:33:36.295>up

776
00:33:39.055 --> 00:33:40.095
<00:33:39.055>and <00:33:39.367>running <00:33:39.679>really <00:33:39.991>quickly.

777
00:33:40.675 --> 00:33:43.335
<00:33:40.675>Um, <00:33:40.875>and <00:33:41.075>that's <00:33:41.274>what <00:33:41.475>we're <00:33:41.675>gonna <00:33:41.875>do <00:33:42.075>now.

778
00:33:43.835 --> 00:33:46.975
<00:33:43.835>So <00:33:43.975>I'm <00:33:44.115>just <00:33:44.255>gonna <00:33:44.395>clean <00:33:44.535>up, <00:33:44.675>uh, <00:33:44.815>this, <00:33:44.955>uh, <00:33:45.095>template <00:33:45.235>quickly

779
00:33:47.475 --> 00:33:49.695
<00:33:47.475>and <00:33:47.754>remove <00:33:48.034>some <00:33:48.314>of <00:33:48.594>the <00:33:48.875>bits

780
00:33:49.695 --> 00:33:51.455
<00:33:49.695>and <00:33:49.895>bobs <00:33:50.095>it <00:33:50.294>puts <00:33:50.495>in <00:33:50.695>for <00:33:50.895>me <00:33:51.095>automatically.

781
00:33:52.185 --> 00:33:54.335
<00:33:52.185>We're <00:33:52.385>gonna <00:33:52.585>call, <00:33:52.784>uh, <00:33:52.985>what <00:33:53.185>we're <00:33:53.385>gonna <00:33:53.585>build.

782
00:33:54.335 --> 00:33:56.735
<00:33:54.335>We're <00:33:54.685>gonna <00:33:55.035>build, <00:33:55.385>uh, <00:33:55.735>Twitch,

783
00:33:57.995 --> 00:34:02.055
<00:33:57.995>but <00:33:58.135>for <00:33:58.274>dogs <00:33:58.415>we're <00:33:58.554>gonna <00:33:58.695>build, <00:33:58.834>if <00:33:58.975>anyone <00:33:59.114>can <00:33:59.254>come <00:33:59.395>up

784
00:34:02.055 --> 00:34:04.575
<00:34:02.055>with <00:34:02.195>an <00:34:02.335>amusing <00:34:02.475>name <00:34:02.615>for <00:34:02.755>that, <00:34:02.895>uh, <00:34:03.035>drop <00:34:03.175>it <00:34:03.315>in <00:34:03.455>chat

785
00:34:04.875 --> 00:34:06.215
<00:34:04.875>and <00:34:05.076>we <00:34:05.277>can, <00:34:05.478>we <00:34:05.678>can <00:34:05.879>use <00:34:06.081>that.

786
00:34:07.115 --> 00:34:09.415
<00:34:07.115>We <00:34:07.348>don't <00:34:07.581>need <00:34:07.815>this, <00:34:08.048>uh, <00:34:08.281>dev <00:34:08.514>anymore.

787
00:34:09.755 --> 00:34:11.735
<00:34:09.755>Uh, <00:34:09.930>we'll <00:34:10.105>just <00:34:10.280>put <00:34:10.455>a <00:34:10.630>nice <00:34:10.805>nice <00:34:10.980>H <00:34:11.155>one.

788
00:34:11.735 --> 00:34:14.765
<00:34:11.735>So <00:34:12.085>Twitch, <00:34:12.435>but <00:34:12.785>for <00:34:13.135>dogs.

789
00:34:19.035 --> 00:34:22.085
<00:34:19.034>Okay, <00:34:19.174>so <00:34:19.315>now <00:34:19.455>we've <00:34:19.594>just <00:34:19.734>got <00:34:19.875>a, <00:34:20.014>a <00:34:20.154>nice <00:34:20.295>little, <00:34:20.435>um,

790
00:34:22.435 --> 00:34:25.165
<00:34:22.435>nice <00:34:22.590>formated <00:34:22.746>font <00:34:22.901>'cause <00:34:23.057>we've <00:34:23.212>got <00:34:23.368>a <00:34:23.523>style <00:34:23.679>sheet <00:34:23.835>loaded.

791
00:34:25.265 --> 00:34:27.885
<00:34:25.264>And <00:34:25.498>first <00:34:25.731>thing <00:34:25.964>we're <00:34:26.198>gonna <00:34:26.431>need, <00:34:26.665>uh,

792
00:34:27.895 --> 00:34:29.965
<00:34:27.895>since <00:34:28.245>we're <00:34:28.594>using <00:34:28.945>Bark <00:34:29.295>Stream.

793
00:34:30.015 --> 00:34:31.685
<00:34:30.014>There <00:34:30.214>you <00:34:30.415>go. <00:34:30.614>Bark <00:34:30.815>Stream. <00:34:31.014>There <00:34:31.214>you <00:34:31.415>go.

794
00:34:31.685 --> 00:34:33.685
<00:34:31.685>I <00:34:31.965>like <00:34:32.245>Bark <00:34:32.525>Stream, <00:34:32.804>bark <00:34:33.085>stream.

795
00:34:36.955 --> 00:34:38.195
<00:34:36.955>Brilliant. <00:34:37.513>Back <00:34:38.071>stream.

796
00:34:41.145 --> 00:34:42.485
<00:34:41.145>We <00:34:41.346>could <00:34:41.547>do <00:34:41.748>welcome <00:34:41.949>to <00:34:42.150>back <00:34:42.351>stream.

797
00:34:46.525 --> 00:34:49.115
<00:34:46.525>Great. <00:34:46.805>Uh, <00:34:47.085>because <00:34:47.365>we're <00:34:47.645>using <00:34:47.925>H-L-S-G-S

798
00:34:49.135 --> 00:34:53.075
<00:34:49.135>and <00:34:49.290>Hhl, <00:34:49.446>SGS <00:34:49.601>really <00:34:49.757>is <00:34:49.912>just, <00:34:50.068>uh, <00:34:50.223>an <00:34:50.379>abstraction, <00:34:50.535>um,

799
00:34:53.305 --> 00:34:55.435
<00:34:53.304>over <00:34:53.480>the <00:34:53.654>top <00:34:53.830>of <00:34:54.004>the <00:34:54.179>HMR <00:34:54.355>five <00:34:54.529>video <00:34:54.705>element

800
00:34:55.705 --> 00:34:57.275
<00:34:55.705>that <00:34:55.938>makes <00:34:56.171>HLS <00:34:56.404>work <00:34:56.638>in <00:34:56.871>a <00:34:57.105>browser.

801
00:34:57.735 --> 00:34:59.195
<00:34:57.735>Uh, <00:34:57.922>we're <00:34:58.110>gonna <00:34:58.298>need <00:34:58.485>a <00:34:58.673>video <00:34:58.861>element <00:34:59.049>fully.

802
00:35:00.255 --> 00:35:02.235
<00:35:00.255>Uh, <00:35:00.430>so <00:35:00.605>we're <00:35:00.780>just <00:35:00.955>gonna <00:35:01.130>have <00:35:01.305>a <00:35:01.480>video <00:35:01.655>here.

803
00:35:02.655 --> 00:35:04.595
<00:35:02.655>Um, <00:35:02.830>we're <00:35:03.005>gonna <00:35:03.180>need <00:35:03.355>to <00:35:03.530>give <00:35:03.705>it <00:35:03.880>an <00:35:04.055>ID

804
00:35:04.595 --> 00:35:05.755
<00:35:04.595>because <00:35:04.803>we're <00:35:05.012>gonna <00:35:05.221>want <00:35:05.430>to <00:35:05.639>interact

805
00:35:05.755 --> 00:35:06.955
<00:35:05.755>with <00:35:06.115>it <00:35:06.475>from <00:35:06.835>JavaScript.

806
00:35:06.955 --> 00:35:08.795
<00:35:06.955>So <00:35:07.188>we're <00:35:07.421>gonna <00:35:07.654>call <00:35:07.888>it, <00:35:08.121>uh, <00:35:08.355>player.

807
00:35:09.695 --> 00:35:11.155
<00:35:09.695>Uh, <00:35:09.914>we're <00:35:10.133>gonna <00:35:10.352>give <00:35:10.571>it <00:35:10.790>some <00:35:11.009>controls

808
00:35:11.215 --> 00:35:12.435
<00:35:11.215>so <00:35:11.398>we <00:35:11.581>can <00:35:11.764>actually <00:35:11.947>click <00:35:12.130>a <00:35:12.313>play

809
00:35:12.935 --> 00:35:13.995
<00:35:12.935>and <00:35:13.094>we're <00:35:13.252>gonna <00:35:13.412>give <00:35:13.571>it <00:35:13.730>a <00:35:13.889>size.

810
00:35:13.995 --> 00:35:16.915
<00:35:13.995>We're <00:35:14.122>gonna <00:35:14.249>make <00:35:14.376>it, <00:35:14.504>uh <00:35:14.631>oh <00:35:14.758>with, <00:35:14.885>uh, <00:35:15.013>we're <00:35:15.140>gonna <00:35:15.267>make <00:35:15.395>it,

811
00:35:17.155 --> 00:35:19.435
<00:35:17.155>I <00:35:17.388>don't <00:35:17.621>know, <00:35:17.855>500 <00:35:18.088>and <00:35:18.321>somebody <00:35:18.555>is

812
00:35:19.435 --> 00:35:20.715
<00:35:19.435>gonna <00:35:19.627>tell <00:35:19.819>me <00:35:20.011>I'm <00:35:20.203>a <00:35:20.395>terrible <00:35:20.587>person.

813
00:35:20.955 --> 00:35:23.035
<00:35:20.955>Fusing <00:35:21.154>whi <00:35:21.355>attribute. <00:35:21.555>We <00:35:21.755>need <00:35:21.955>to <00:35:22.154>move <00:35:22.355>quickly,

814
00:35:23.935 --> 00:35:24.995
<00:35:23.935>so, <00:35:24.412>okay, <00:35:24.889>great.

815
00:35:25.055 --> 00:35:27.475
<00:35:25.055>Now <00:35:25.171>we've <00:35:25.288>got <00:35:25.404>a <00:35:25.521>player. <00:35:25.638>Now <00:35:25.754>what <00:35:25.871>are <00:35:25.988>we <00:35:26.105>gonna <00:35:26.221>do <00:35:26.338>with <00:35:26.455>it?

816
00:35:27.745 --> 00:35:29.755
<00:35:27.745>Okay, <00:35:28.025>so <00:35:28.305>we <00:35:28.585>need <00:35:28.865>some <00:35:29.145>JavaScript.

817
00:35:30.825 --> 00:35:33.005
<00:35:30.825>Uh, <00:35:31.000>first <00:35:31.174>thing <00:35:31.350>we're <00:35:31.524>probably <00:35:31.700>gonna <00:35:31.875>wanna <00:35:32.049>do <00:35:32.225>is

818
00:35:33.065 --> 00:35:34.285
<00:35:33.065>import <00:35:34.163>H-L-S-J-S.

819
00:35:35.065 --> 00:35:39.925
<00:35:35.065>Uh, <00:35:35.220>so <00:35:35.376>import <00:35:35.531>hhl <00:35:35.687>s <00:35:35.842>from, <00:35:35.998>uh, <00:35:36.153>H <00:35:36.309>ls <00:35:36.465>js.

820
00:35:40.015 --> 00:35:44.005
<00:35:40.015>Super <00:35:40.131>easy, <00:35:40.248>best <00:35:40.365>part, <00:35:40.481>uh, <00:35:40.598>is <00:35:40.714>I <00:35:40.831>can <00:35:40.948>just <00:35:41.065>hit <00:35:41.181>add <00:35:41.298>H <00:35:41.415>ls

821
00:35:44.005 --> 00:35:46.435
<00:35:44.005>as <00:35:44.471>dependency <00:35:44.938>camera <00:35:45.405>on.

822
00:35:46.445 --> 00:35:49.515
<00:35:46.445>There <00:35:46.572>we <00:35:46.699>go. <00:35:46.826>Now <00:35:46.954>I've <00:35:47.081>got <00:35:47.208>HLS <00:35:47.335>JS <00:35:47.463>loaded, <00:35:47.590>so <00:35:47.717>is <00:35:47.845>great.

823
00:35:49.945 --> 00:35:52.035
<00:35:49.945>Okay, <00:35:50.178>next <00:35:50.411>thing <00:35:50.645>I'm <00:35:50.878>gonna <00:35:51.111>do, <00:35:51.345>uh,

824
00:35:52.095 --> 00:35:54.115
<00:35:52.095>is <00:35:52.294>instantiate <00:35:52.495>a <00:35:52.694>copy <00:35:52.895>of <00:35:53.095>Hhl <00:35:53.294>S <00:35:53.495>js.

825
00:35:54.335 --> 00:35:56.315
<00:35:54.335>So, <00:35:54.801>uh, <00:35:55.268>actually <00:35:55.735>no,

826
00:35:56.605 --> 00:35:59.275
<00:35:56.605>first <00:35:56.760>thing <00:35:56.916>I'm <00:35:57.071>gonna <00:35:57.227>do <00:35:57.382>is <00:35:57.538>find <00:35:57.693>that <00:35:57.849>player <00:35:58.005>element.

827
00:35:59.895 --> 00:36:01.875
<00:35:59.895>So, <00:36:00.095>uh, <00:36:00.295>we <00:36:00.495>can <00:36:00.695>do <00:36:00.895>this <00:36:01.095>pretty <00:36:01.295>easily.

828
00:36:02.145 --> 00:36:05.635
<00:36:02.145>Comm <00:36:02.495>player <00:36:02.845>equals, <00:36:03.195>uh, <00:36:03.545>document,

829
00:36:06.215 --> 00:36:07.315
<00:36:06.215>get <00:36:06.545>element <00:36:06.875>by <00:36:07.205>id.

830
00:36:08.095 --> 00:36:10.275
<00:36:08.095>Uh, <00:36:08.234>and <00:36:08.375>then <00:36:08.515>we'll <00:36:08.654>just, <00:36:08.794>we <00:36:08.935>know <00:36:09.075>we <00:36:09.214>call <00:36:09.355>it <00:36:09.495>player.

831
00:36:10.975 --> 00:36:12.435
<00:36:10.975>So <00:36:11.237>now <00:36:11.500>we've <00:36:11.763>got <00:36:12.026>an <00:36:12.288>instance.

832
00:36:12.455 --> 00:36:14.395
<00:36:12.455>So <00:36:12.595>we, <00:36:12.735>now <00:36:12.875>we <00:36:13.015>have <00:36:13.154>a <00:36:13.295>reference <00:36:13.435>to <00:36:13.575>that <00:36:13.715>video <00:36:13.855>player,

833
00:36:14.395 --> 00:36:15.475
<00:36:14.395>so <00:36:14.557>we <00:36:14.719>can <00:36:14.881>do <00:36:15.043>things <00:36:15.205>with <00:36:15.366>it.

834
00:36:16.095 --> 00:36:18.555
<00:36:16.095>Um, <00:36:16.294>and <00:36:16.495>we're <00:36:16.694>gonna <00:36:16.895>need <00:36:17.095>VURL <00:36:17.294>for <00:36:17.495>playback.

835
00:36:19.015 --> 00:36:21.745
<00:36:19.015>Um, <00:36:19.714>C <00:36:20.415>equals.

836
00:36:22.445 --> 00:36:26.585
<00:36:22.445>Now <00:36:22.600>this <00:36:22.756>is, <00:36:22.911>uh, <00:36:23.067>where <00:36:23.222>m <00:36:23.378>is, <00:36:23.533>I <00:36:23.689>can <00:36:23.845>type,

837
00:36:26.785 --> 00:36:28.385
<00:36:26.785>I <00:36:27.065>promise <00:36:27.345>I'm <00:36:27.625>a <00:36:27.904>real <00:36:28.185>developer.

838
00:36:28.765 --> 00:36:30.785
<00:36:28.765>Uh, <00:36:28.940>this <00:36:29.115>is <00:36:29.290>where <00:36:29.464>mux <00:36:29.640>makes <00:36:29.815>it <00:36:29.990>super <00:36:30.165>simple.

839
00:36:31.045 --> 00:36:32.625
<00:36:31.045>Uh, <00:36:31.325>getting <00:36:31.605>URL <00:36:31.885>is <00:36:32.165>really <00:36:32.445>easy.

840
00:36:33.485 --> 00:36:38.145
<00:36:33.485>Uh, <00:36:33.951>stream <00:36:34.418>do <00:36:34.885>mercks.com/playback

841
00:36:38.405 --> 00:36:42.235
<00:36:38.405>ID <00:36:38.755>M <00:36:39.105>three, <00:36:39.455>U <00:36:39.805>eight.

842
00:36:43.135 --> 00:36:44.675
<00:36:43.135>Uh, <00:36:43.412>and <00:36:43.689>what's <00:36:43.966>the <00:36:44.243>playback <00:36:44.521>id?

843
00:36:44.825 --> 00:36:46.435
<00:36:44.825>Well, <00:36:45.105>it's <00:36:45.384>this <00:36:45.665>magic <00:36:45.944>thing <00:36:46.225>here.

844
00:36:46.465 --> 00:36:47.955
<00:36:46.465>When <00:36:46.656>we <00:36:46.848>created <00:36:47.039>our <00:36:47.231>live <00:36:47.422>stream, <00:36:47.614>we <00:36:47.806>said,

845
00:36:48.015 --> 00:36:49.275
<00:36:48.015>Hey, <00:36:48.203>we <00:36:48.393>want <00:36:48.582>it <00:36:48.771>to <00:36:48.960>be <00:36:49.149>public.

846
00:36:49.695 --> 00:36:51.475
<00:36:49.695>So, <00:36:49.975>uh, <00:36:50.255>we <00:36:50.535>just <00:36:50.815>grabbed <00:36:51.095>that.

847
00:36:51.495 --> 00:36:53.995
<00:36:51.495>We <00:36:51.634>can <00:36:51.775>also <00:36:51.915>just <00:36:52.055>copy <00:36:52.194>the <00:36:52.335>whole <00:36:52.475>URL <00:36:52.615>if <00:36:52.755>we <00:36:52.895>want.

848
00:36:54.175 --> 00:36:55.875
<00:36:54.175>So, <00:36:54.375>super <00:36:54.575>simple <00:36:54.775>to <00:36:54.975>get <00:36:55.175>a <00:36:55.375>playback <00:36:55.575>id.

849
00:36:57.335 --> 00:36:59.155
<00:36:57.335>Now <00:36:57.568>we've <00:36:57.801>got <00:36:58.035>our <00:36:58.268>source <00:36:58.501>UL <00:36:58.735>Brilliant.

850
00:36:59.975 --> 00:37:01.795
<00:36:59.975>Now <00:37:00.255>we're <00:37:00.535>gonna <00:37:00.815>to <00:37:01.095>get <00:37:01.375>A-H-L-S-J-S.

851
00:37:02.335 --> 00:37:05.555
<00:37:02.335>So <00:37:02.462>to <00:37:02.589>do <00:37:02.716>that, <00:37:02.844>all <00:37:02.971>we <00:37:03.098>need <00:37:03.225>to <00:37:03.353>do <00:37:03.480>is, <00:37:03.607>uh, <00:37:03.735>cons,

852
00:37:06.075 --> 00:37:08.075
<00:37:06.075>HLS <00:37:06.541>equals <00:37:07.008>new <00:37:07.475>HLS.

853
00:37:08.645 --> 00:37:12.105
<00:37:08.645>Super <00:37:08.878>simple. <00:37:09.111>Uh, <00:37:09.345>then <00:37:09.578>we're <00:37:09.811>gonna <00:37:10.045>need

854
00:37:12.105 --> 00:37:14.625
<00:37:12.105>to <00:37:12.455>give <00:37:12.805>hhl <00:37:13.155>SGSA <00:37:13.505>source.

855
00:37:15.245 --> 00:37:18.545
<00:37:15.245>So, <00:37:15.711>uh, <00:37:16.178>HLS <00:37:16.645>load,

856
00:37:20.095 --> 00:37:23.635
<00:37:20.095>load <00:37:20.794>source, <00:37:21.495>and,

857
00:37:25.215 --> 00:37:27.155
<00:37:25.215>and <00:37:25.415>we're <00:37:25.615>gonna <00:37:25.815>pass <00:37:26.015>it, <00:37:26.215>uh, <00:37:26.415>uh, <00:37:26.615>source.

858
00:37:29.215 --> 00:37:31.875
<00:37:29.215>And <00:37:29.342>then <00:37:29.469>all <00:37:29.596>we <00:37:29.724>need <00:37:29.851>to <00:37:29.978>do <00:37:30.105>is <00:37:30.233>then <00:37:30.360>tell <00:37:30.487>Hhl, <00:37:30.615>SJS

859
00:37:31.875 --> 00:37:33.675
<00:37:31.875>where <00:37:32.050>you <00:37:32.225>want <00:37:32.400>it <00:37:32.575>to <00:37:32.750>output <00:37:32.925>this <00:37:33.100>video <00:37:33.275>to.

860
00:37:34.055 --> 00:37:38.655
<00:37:34.055>So <00:37:34.230>that's <00:37:34.404>just <00:37:34.580>hhl <00:37:34.754>s <00:37:34.930>attach, <00:37:35.105>uh, <00:37:35.279>attach <00:37:35.455>media

861
00:37:40.675 --> 00:37:42.215
<00:37:40.675>to <00:37:41.137>that <00:37:41.599>player <00:37:42.061>element,

862
00:37:42.285 --> 00:37:45.215
<00:37:42.285>that <00:37:42.518>video <00:37:42.751>element <00:37:42.984>in <00:37:43.218>the <00:37:43.451>browser, <00:37:43.685>hopefully.

863
00:37:45.425 --> 00:37:47.935
<00:37:45.425>There <00:37:45.625>we <00:37:45.825>go. <00:37:46.025>We <00:37:46.225>have <00:37:46.425>our <00:37:46.625>live <00:37:46.825>stream

864
00:37:48.285 --> 00:37:49.575
<00:37:48.285>appearing <00:37:48.672>in <00:37:49.058>our <00:37:49.446>browser.

865
00:37:50.775 --> 00:37:52.315
<00:37:50.775>So <00:37:50.973>this <00:37:51.171>is <00:37:51.369>actually <00:37:51.567>a <00:37:51.765>pretty <00:37:51.963>good <00:37:52.161>start.

866
00:37:52.545 --> 00:37:53.715
<00:37:52.545>Took <00:37:52.896>what, <00:37:53.247>five <00:37:53.598>minutes.

867
00:37:53.975 --> 00:37:56.115
<00:37:53.975>Uh, <00:37:54.130>and <00:37:54.286>we've <00:37:54.441>now <00:37:54.597>got <00:37:54.752>our, <00:37:54.908>our <00:37:55.063>video <00:37:55.219>playing <00:37:55.375>back.

868
00:37:57.305 --> 00:37:58.435
<00:37:57.305>This <00:37:57.644>is <00:37:57.982>pretty <00:37:58.322>good,

869
00:37:58.615 --> 00:38:01.075
<00:37:58.615>and <00:37:58.770>this <00:37:58.926>will <00:37:59.081>actually <00:37:59.237>work <00:37:59.392>in <00:37:59.548>a <00:37:59.703>lot <00:37:59.859>of <00:38:00.015>places,

870
00:38:01.575 --> 00:38:03.955
<00:38:01.575>but <00:38:01.774>probably <00:38:01.975>isn't <00:38:02.174>how <00:38:02.375>I'd <00:38:02.575>recommend <00:38:02.774>doing <00:38:02.975>it.

871
00:38:04.175 --> 00:38:06.715
<00:38:04.175>Um, <00:38:04.315>we <00:38:04.455>could <00:38:04.595>load <00:38:04.735>this <00:38:04.875>up <00:38:05.015>in <00:38:05.155>Safari <00:38:05.295>at <00:38:05.435>a <00:38:05.575>play,

872
00:38:07.435 --> 00:38:08.715
<00:38:07.435>probably <00:38:07.665>play <00:38:07.895>on <00:38:08.126>most <00:38:08.356>mobile <00:38:08.587>devices,

873
00:38:08.975 --> 00:38:10.715
<00:38:08.975>but <00:38:09.674>if <00:38:10.375>possible,

874
00:38:10.915 --> 00:38:13.155
<00:38:10.915>I <00:38:11.195>would <00:38:11.475>strongly <00:38:11.755>recommend <00:38:12.035>leveraging <00:38:12.315>native

875
00:38:13.155 --> 00:38:14.475
<00:38:13.155>players <00:38:13.749>wherever <00:38:14.343>available.

876
00:38:15.145 --> 00:38:17.355
<00:38:15.145>This <00:38:15.300>is <00:38:15.456>actually <00:38:15.611>pretty <00:38:15.767>simple <00:38:15.922>to <00:38:16.078>test <00:38:16.233>for <00:38:16.389>as <00:38:16.545>well.

877
00:38:19.765 --> 00:38:21.505
<00:38:19.765>So <00:38:19.920>given <00:38:20.076>we <00:38:20.231>have <00:38:20.387>a <00:38:20.542>reference <00:38:20.698>to <00:38:20.853>our <00:38:21.009>player <00:38:21.165>element,

878
00:38:21.725 --> 00:38:23.345
<00:38:21.725>and <00:38:21.924>given <00:38:22.125>we <00:38:22.325>know <00:38:22.525>what <00:38:22.725>the <00:38:22.924>source <00:38:23.125>is,

879
00:38:23.445 --> 00:38:24.905
<00:38:23.445>we <00:38:23.707>can <00:38:23.970>ask <00:38:24.233>the <00:38:24.496>browser, <00:38:24.759>uh,

880
00:38:24.905 --> 00:38:27.865
<00:38:24.905>if <00:38:25.105>the <00:38:25.305>video <00:38:25.505>element <00:38:25.705>can <00:38:25.905>natively <00:38:26.105>play <00:38:26.305>HLS.

881
00:38:28.005 --> 00:38:31.585
<00:38:28.005>So <00:38:28.238>that's <00:38:28.471>pretty <00:38:28.705>simple. <00:38:28.938>If <00:38:29.171>player, <00:38:29.405>player

882
00:38:32.565 --> 00:38:36.005
<00:38:32.565>can <00:38:33.031>play <00:38:33.498>at <00:38:33.965>type,

883
00:38:36.265 --> 00:38:40.205
<00:38:36.265>and <00:38:36.440>I'm <00:38:36.615>gonna <00:38:36.790>copy <00:38:36.964>this <00:38:37.140>from <00:38:37.315>my <00:38:37.490>notepad, <00:38:37.665>don't,

884
00:38:40.325 --> 00:38:41.525
<00:38:40.325>I <00:38:40.540>will <00:38:40.757>get <00:38:40.973>it <00:38:41.189>completely <00:38:41.405>wrong.

885
00:38:42.025 --> 00:38:46.485
<00:38:42.025>Uh, <00:38:42.165>application <00:38:42.305>slash <00:38:42.445>uh, <00:38:42.585>which <00:38:42.725>one <00:38:42.865>is <00:38:43.005>it? <00:38:43.145>There <00:38:43.285>we <00:38:43.425>go.

886
00:38:47.025 --> 00:38:50.125
<00:38:47.025>Dnd, <00:38:47.725>apple, <00:38:48.425>uh,

887
00:38:51.145 --> 00:38:54.285
<00:38:51.145>neg <00:38:51.611>looks <00:38:52.078>pretty <00:38:52.545>good.

888
00:38:54.465 --> 00:38:58.375
<00:38:54.465>Yep. <00:38:55.165>Okay, <00:38:55.865>so

889
00:38:58.375 --> 00:39:01.175
<00:38:58.375>that's <00:38:58.502>just <00:38:58.629>asking <00:38:58.756>a <00:38:58.884>browser <00:38:59.011>if <00:38:59.138>it <00:38:59.265>can <00:38:59.393>play <00:38:59.520>hhl <00:38:59.647>s <00:38:59.775>natively.

890
00:39:01.795 --> 00:39:03.895
<00:39:01.795>That's <00:39:01.970>been <00:39:02.145>pretty <00:39:02.320>simple. <00:39:02.495>If, <00:39:02.670>so, <00:39:02.845>all <00:39:03.020>we <00:39:03.195>need

891
00:39:03.895 --> 00:39:08.375
<00:39:03.895>to <00:39:04.035>do <00:39:04.175>is <00:39:04.315>give <00:39:04.455>the <00:39:04.595>player, <00:39:04.735>uh, <00:39:04.875>player <00:39:05.015>source <00:39:05.155>equals <00:39:05.295>source.

892
00:39:09.445 --> 00:39:11.655
<00:39:09.445>Okay. <00:39:09.585>We <00:39:09.725>can <00:39:09.865>just <00:39:10.005>tell <00:39:10.145>the <00:39:10.285>browser, <00:39:10.425>Hey, <00:39:10.565>off <00:39:10.705>you <00:39:10.845>go,

893
00:39:11.655 --> 00:39:12.775
<00:39:11.655>you <00:39:11.907>can <00:39:12.159>play <00:39:12.411>this <00:39:12.663>natively.

894
00:39:13.955 --> 00:39:18.095
<00:39:13.955>Uh, <00:39:14.130>then <00:39:14.305>we <00:39:14.480>probably <00:39:14.654>want, <00:39:14.830>uh, <00:39:15.005>an <00:39:15.180>else, <00:39:15.355>uh,

895
00:39:18.485 --> 00:39:21.135
<00:39:18.485>then <00:39:18.660>we <00:39:18.835>could <00:39:19.010>probably <00:39:19.185>do <00:39:19.360>an <00:39:19.535>else <00:39:19.710>if <00:39:19.885>here.

896
00:39:21.555 --> 00:39:24.975
<00:39:21.555>And <00:39:21.682>what <00:39:21.809>we're <00:39:21.936>gonna <00:39:22.064>do <00:39:22.191>is <00:39:22.318>ask <00:39:22.445>Hhl <00:39:22.573>SJS <00:39:22.700>if <00:39:22.827>it's <00:39:22.955>capable

897
00:39:25.235 --> 00:39:27.975
<00:39:25.235>of <00:39:25.410>playing <00:39:25.585>back <00:39:25.760>on <00:39:25.935>this <00:39:26.110>browser, <00:39:26.285>in <00:39:26.460>some <00:39:26.635>cases,

898
00:39:28.275 --> 00:39:30.255
<00:39:28.275>old <00:39:28.475>browsers <00:39:28.675>I <00:39:28.875>11, <00:39:29.075>that <00:39:29.275>sort <00:39:29.475>of <00:39:29.675>thing.

899
00:39:30.255 --> 00:39:31.415
<00:39:30.255>You're <00:39:30.404>not <00:39:30.553>gonna <00:39:30.702>be <00:39:30.851>able <00:39:31.000>to <00:39:31.149>do <00:39:31.299>this.

900
00:39:31.515 --> 00:39:35.975
<00:39:31.515>So <00:39:31.615>then <00:39:31.714>we <00:39:31.815>can <00:39:31.915>ask <00:39:32.015>HLS, <00:39:32.115>uh, <00:39:32.214>if <00:39:32.315>it <00:39:32.415>can <00:39:32.515>play <00:39:32.615>back <00:39:32.714>this <00:39:32.815>or <00:39:32.915>not.

901
00:39:36.155 --> 00:39:39.615
<00:39:36.155>So <00:39:36.388>we'll <00:39:36.621>just <00:39:36.855>say <00:39:37.088>HLS <00:39:37.321>is <00:39:37.555>forwarded

902
00:39:43.655 --> 00:39:46.425
<00:39:43.655>from <00:39:43.830>race <00:39:44.005>and <00:39:44.180>we <00:39:44.355>can <00:39:44.530>use <00:39:44.705>HLS <00:39:44.880>Jess <00:39:45.055>s.

903
00:39:46.485 --> 00:39:48.625
<00:39:46.485>So <00:39:46.718>we'll <00:39:46.951>just <00:39:47.185>jump <00:39:47.418>in, <00:39:47.651>move <00:39:47.885>all

904
00:39:48.625 --> 00:39:50.585
<00:39:48.625>that <00:39:48.905>code <00:39:49.185>up <00:39:49.465>there, <00:39:49.745>but <00:39:50.025>great.

905
00:39:50.605 --> 00:39:53.305
<00:39:50.605>So <00:39:50.838>now <00:39:51.071>we <00:39:51.305>should <00:39:51.538>be <00:39:51.771>using, <00:39:52.005>um,

906
00:39:53.405 --> 00:39:55.825
<00:39:53.405>native <00:39:53.580>HLS <00:39:53.755>playback <00:39:53.930>if <00:39:54.105>a <00:39:54.280>player <00:39:54.455>can <00:39:54.630>do <00:39:54.805>it.

907
00:39:56.135 --> 00:39:58.505
<00:39:56.135>Otherwise, <00:39:56.290>if <00:39:56.446>Hhl <00:39:56.601>s <00:39:56.757>js <00:39:56.912>can <00:39:57.068>do <00:39:57.223>it <00:39:57.379>for <00:39:57.535>us,

908
00:39:58.715 --> 00:40:00.025
<00:39:58.715>we're <00:39:58.950>gonna <00:39:59.186>use <00:39:59.422>hhl <00:39:59.658>S <00:39:59.894>js.

909
00:40:00.445 --> 00:40:03.105
<00:40:00.445>And <00:40:00.585>then <00:40:00.725>we <00:40:00.865>probably <00:40:01.005>want <00:40:01.145>a, <00:40:01.285>a <00:40:01.425>final <00:40:01.565>for <00:40:01.705>through <00:40:01.845>here.

910
00:40:03.485 --> 00:40:07.665
<00:40:03.485>Uh, <00:40:03.835>else <00:40:04.185>console <00:40:04.535>log, <00:40:04.885>uh,

911
00:40:09.495 --> 00:40:14.435
<00:40:09.495>yet <00:40:09.775>a <00:40:10.055>browser, <00:40:10.335>sorry, <00:40:10.615>newer <00:40:10.895>browser.

912
00:40:14.575 --> 00:40:18.475
<00:40:14.575>That's <00:40:14.855>the <00:40:15.134>word. <00:40:15.415>Okay, <00:40:15.694>so, <00:40:15.975>uh,

913
00:40:18.475 --> 00:40:21.235
<00:40:18.475>if <00:40:18.591>we <00:40:18.708>just <00:40:18.825>lit <00:40:18.941>a <00:40:19.058>this <00:40:19.174>of <00:40:19.291>a <00:40:19.408>couple <00:40:19.525>of <00:40:19.641>other <00:40:19.758>debug <00:40:19.875>statements,

914
00:40:21.595 --> 00:40:25.875
<00:40:21.595>uh, <00:40:21.750>and <00:40:21.906>check <00:40:22.061>in <00:40:22.217>one <00:40:22.372>here <00:40:22.528>and <00:40:22.683>say, <00:40:22.839>using <00:40:22.995>HLSS

915
00:40:29.745 --> 00:40:33.755
<00:40:29.745>and, <00:40:30.211>uh, <00:40:30.678>using <00:40:31.145>native

916
00:40:34.595 --> 00:40:39.235
<00:40:34.595>HLS, <00:40:34.702>uh, <00:40:34.810>if <00:40:34.918>we <00:40:35.025>look <00:40:35.133>at <00:40:35.241>what <00:40:35.348>we <00:40:35.456>have <00:40:35.564>over <00:40:35.671>here <00:40:35.779>on <00:40:35.887>our <00:40:35.995>Chrome,

917
00:40:39.445 --> 00:40:42.635
<00:40:39.445>we'll <00:40:39.600>see <00:40:39.756>it's <00:40:39.911>gonna <00:40:40.067>use <00:40:40.222>H-L-S-J-S <00:40:40.378>by <00:40:40.533>Fire <00:40:40.689>Up <00:40:40.845>Safari

918
00:40:43.555 --> 00:40:45.575
<00:40:43.555>and <00:40:43.835>load <00:40:44.115>up <00:40:44.395>the <00:40:44.674>same <00:40:44.955>URL.

919
00:40:45.835 --> 00:40:50.095
<00:40:45.835>Oh, <00:40:45.975>nope, <00:40:46.115>I <00:40:46.255>need <00:40:46.395>to <00:40:46.535>actually <00:40:46.675>take <00:40:46.815>this <00:40:46.955>URL <00:40:47.095>in <00:40:47.235>here.

920
00:40:51.775 --> 00:40:54.715
<00:40:51.775>Uh, <00:40:51.902>there <00:40:52.029>we <00:40:52.156>go. <00:40:52.284>Wait <00:40:52.411>for <00:40:52.538>it <00:40:52.665>to <00:40:52.793>transpire. <00:40:52.920>There <00:40:53.047>we <00:40:53.175>go.

921
00:40:56.935 --> 00:40:58.065
<00:40:56.935>Okay, <00:40:57.138>we <00:40:57.341>have <00:40:57.545>our <00:40:57.748>live <00:40:57.952>stream,

922
00:40:58.565 --> 00:40:59.705
<00:40:58.565>and <00:40:58.736>then <00:40:58.907>if <00:40:59.078>we <00:40:59.249>check <00:40:59.420>the <00:40:59.591>console,

923
00:40:59.855 --> 00:41:03.025
<00:40:59.855>hopefully <00:41:00.010>if <00:41:00.166>I <00:41:00.321>didn't <00:41:00.477>typo <00:41:00.632>anything, <00:41:00.788>uh, <00:41:00.943>we <00:41:01.099>got, <00:41:01.255>yeah,

924
00:41:03.025 --> 00:41:04.185
<00:41:03.025>using <00:41:03.547>native <00:41:04.069>HLS.

925
00:41:04.185 --> 00:41:07.025
<00:41:04.185>So <00:41:04.325>our <00:41:04.465>live <00:41:04.605>stream <00:41:04.745>here <00:41:04.884>is <00:41:05.025>just <00:41:05.165>using <00:41:05.305>the <00:41:05.445>native, <00:41:05.585>uh,

926
00:41:07.025 --> 00:41:08.625
<00:41:07.025>playback <00:41:07.375>engine <00:41:07.725>built <00:41:08.075>in <00:41:08.425>Safari.

927
00:41:08.805 --> 00:41:11.345
<00:41:08.805>The <00:41:08.921>same <00:41:09.038>will <00:41:09.154>be <00:41:09.271>true <00:41:09.388>when <00:41:09.504>you <00:41:09.621>load <00:41:09.738>it <00:41:09.855>up <00:41:09.971>on <00:41:10.088>iOS, <00:41:10.205>regardless

928
00:41:11.345 --> 00:41:13.545
<00:41:11.345>of <00:41:11.544>whether <00:41:11.745>you're <00:41:11.944>using <00:41:12.145>like <00:41:12.345>Chrome <00:41:12.544>on <00:41:12.745>iOS

929
00:41:13.545 --> 00:41:15.585
<00:41:13.545>or <00:41:13.720>Safari <00:41:13.895>on <00:41:14.070>iOS, <00:41:14.245>it <00:41:14.420>actually <00:41:14.595>uses <00:41:14.770>the <00:41:14.945>same,

930
00:41:15.805 --> 00:41:16.945
<00:41:15.805>uh, <00:41:16.318>underlying <00:41:16.831>technology.

931
00:41:18.365 --> 00:41:21.505
<00:41:18.365>So <00:41:18.504>there <00:41:18.645>we <00:41:18.785>go, <00:41:18.924>uh, <00:41:19.064>in <00:41:19.205>WhatsApp, <00:41:19.345>18 <00:41:19.484>lines <00:41:19.625>of <00:41:19.765>code.

932
00:41:21.715 --> 00:41:23.545
<00:41:21.715>We've <00:41:21.948>ridden, <00:41:22.181>you <00:41:22.415>know, <00:41:22.648>embedded <00:41:22.881>a <00:41:23.115>player

933
00:41:23.735 --> 00:41:25.145
<00:41:23.735>that <00:41:23.946>we <00:41:24.158>can <00:41:24.369>embed <00:41:24.581>into <00:41:24.792>a <00:41:25.004>website

934
00:41:25.145 --> 00:41:28.065
<00:41:25.145>that <00:41:25.345>should <00:41:25.545>work <00:41:25.745>pretty <00:41:25.945>well <00:41:26.145>across <00:41:26.345>the <00:41:26.545>overwhelming

935
00:41:28.305 --> 00:41:29.425
<00:41:28.305>majority <00:41:28.557>of <00:41:28.809>devices <00:41:29.061>right <00:41:29.313>now.

936
00:41:33.155 --> 00:41:34.445
<00:41:33.155>Back <00:41:33.735>over <00:41:34.316>here.

937
00:41:36.975 --> 00:41:41.365
<00:41:36.975>Now <00:41:37.115>there's <00:41:37.255>a <00:41:37.395>bunch <00:41:37.535>of <00:41:37.674>stuff <00:41:37.815>I <00:41:37.955>just, <00:41:38.095>quick <00:41:38.235>time <00:41:38.375>check.

938
00:41:41.365 --> 00:41:43.085
<00:41:41.365>No, <00:41:41.540>we're <00:41:41.714>good. <00:41:41.890>Um, <00:41:42.064>so <00:41:42.240>now <00:41:42.415>there's <00:41:42.589>a <00:41:42.765>bunch

939
00:41:43.085 --> 00:41:44.445
<00:41:43.085>of <00:41:43.259>extra <00:41:43.434>stuff <00:41:43.609>you <00:41:43.784>can <00:41:43.959>do <00:41:44.134>with <00:41:44.309>this.

940
00:41:44.625 --> 00:41:46.125
<00:41:44.625>So, <00:41:44.895>for <00:41:45.165>example, <00:41:45.435>one <00:41:45.705>of <00:41:45.975>the,

941
00:41:46.185 --> 00:41:49.885
<00:41:46.185>the <00:41:46.340>good <00:41:46.496>things <00:41:46.651>about <00:41:46.807>MOS <00:41:46.962>is <00:41:47.118>we <00:41:47.273>automatically <00:41:47.429>generate <00:41:47.585>on

942
00:41:49.885 --> 00:41:52.285
<00:41:49.885>demand <00:41:50.085>copies <00:41:50.285>of <00:41:50.485>all <00:41:50.685>the <00:41:50.885>content <00:41:51.085>you <00:41:51.285>stream.

943
00:41:52.465 --> 00:41:54.485
<00:41:52.465>So <00:41:52.640>there's <00:41:52.815>no <00:41:52.990>waiting <00:41:53.165>around <00:41:53.340>for <00:41:53.515>the <00:41:53.690>on-demand <00:41:53.865>version.

944
00:41:54.715 --> 00:41:56.925
<00:41:54.715>It's <00:41:54.915>instantly <00:41:55.115>there <00:41:55.315>when <00:41:55.515>you <00:41:55.715>finish <00:41:55.915>your <00:41:56.115>stream.

945
00:41:57.305 --> 00:41:58.765
<00:41:57.305>Uh, <00:41:57.567>you <00:41:57.830>can <00:41:58.093>add <00:41:58.356>download <00:41:58.618>support

946
00:41:58.785 --> 00:42:00.725
<00:41:58.785>by <00:41:58.984>adding <00:41:59.185>MP <00:41:59.384>four <00:41:59.585>support <00:41:59.785>to <00:41:59.984>your <00:42:00.185>assets.

947
00:42:00.985 --> 00:42:02.165
<00:42:00.985>Uh, <00:42:01.339>that, <00:42:01.693>that <00:42:02.047>allows

948
00:42:02.185 --> 00:42:04.125
<00:42:02.185>for <00:42:02.384>offline <00:42:02.585>viewing <00:42:02.785>or <00:42:02.985>taking <00:42:03.185>it <00:42:03.384>with <00:42:03.585>you.

949
00:42:05.105 --> 00:42:06.605
<00:42:05.105>Uh, <00:42:05.330>we <00:42:05.555>offer <00:42:05.780>a <00:42:06.005>reduced <00:42:06.230>latency <00:42:06.455>mode.

950
00:42:06.825 --> 00:42:08.245
<00:42:06.825>Uh, <00:42:07.038>this <00:42:07.250>is <00:42:07.464>a <00:42:07.676>really <00:42:07.890>interesting <00:42:08.103>one.

951
00:42:08.425 --> 00:42:12.965
<00:42:08.425>Um, <00:42:08.625>you <00:42:08.825>use, <00:42:09.025>uh, <00:42:09.225>a <00:42:09.425>reduced <00:42:09.625>latency <00:42:09.825>mode

952
00:42:12.965 --> 00:42:14.245
<00:42:12.965>to <00:42:13.157>bring <00:42:13.349>a <00:42:13.541>latency <00:42:13.733>of <00:42:13.924>stream <00:42:14.116>down.

953
00:42:14.265 --> 00:42:17.285
<00:42:14.265>But <00:42:14.420>one <00:42:14.576>of <00:42:14.731>the <00:42:14.887>biggest <00:42:15.042>challenges <00:42:15.198>today <00:42:15.353>in <00:42:15.509>streaming <00:42:15.665>video

954
00:42:17.745 --> 00:42:20.565
<00:42:17.745>is <00:42:17.944>there <00:42:18.145>is <00:42:18.345>always <00:42:18.545>a <00:42:18.745>trade-off <00:42:18.944>between <00:42:19.145>stability,

955
00:42:20.925 --> 00:42:22.965
<00:42:20.925>scalability, <00:42:21.391>and <00:42:21.858>end-to-end <00:42:22.325>latency.

956
00:42:23.385 --> 00:42:25.805
<00:42:23.385>Um, <00:42:23.560>the <00:42:23.735>latency <00:42:23.910>in <00:42:24.085>this <00:42:24.260>case <00:42:24.435>is <00:42:24.610>between <00:42:24.785>eight

957
00:42:25.805 --> 00:42:27.565
<00:42:25.805>and <00:42:26.085>14 <00:42:26.365>seconds <00:42:26.645>to <00:42:26.924>reduce <00:42:27.205>latency.

958
00:42:27.945 --> 00:42:30.605
<00:42:27.945>Um, <00:42:28.085>if <00:42:28.225>you <00:42:28.365>can <00:42:28.505>accept <00:42:28.645>a <00:42:28.785>higher <00:42:28.925>latency, <00:42:29.065>go <00:42:29.205>for <00:42:29.345>it.

959
00:42:30.615 --> 00:42:34.285
<00:42:30.615>It'll <00:42:30.770>make <00:42:30.926>your <00:42:31.081>viewers <00:42:31.237>experience <00:42:31.392>so <00:42:31.548>much <00:42:31.703>better. <00:42:31.859>Trust <00:42:32.015>me.

960
00:42:35.615 --> 00:42:37.915
<00:42:35.615>Uh, <00:42:35.790>we <00:42:35.964>can <00:42:36.140>also <00:42:36.314>do <00:42:36.490>things <00:42:36.665>like <00:42:36.839>social <00:42:37.015>distribution

961
00:42:38.005 --> 00:42:39.155
<00:42:38.005>using <00:42:38.350>this <00:42:38.695>approach, <00:42:39.040>right?

962
00:42:39.175 --> 00:42:42.755
<00:42:39.175>We <00:42:39.375>can <00:42:39.575>just <00:42:39.775>give <00:42:39.975>our, <00:42:40.175>uh, <00:42:40.375>Twitch <00:42:40.575>credentials

963
00:42:42.855 --> 00:42:43.955
<00:42:42.855>or <00:42:43.185>our <00:42:43.515>YouTube <00:42:43.845>credentials,

964
00:42:43.955 --> 00:42:46.115
<00:42:43.955>our <00:42:44.130>Facebook <00:42:44.305>credentials <00:42:44.480>when <00:42:44.654>we <00:42:44.830>create <00:42:45.005>a <00:42:45.180>live <00:42:45.355>stream

965
00:42:46.375 --> 00:42:49.115
<00:42:46.375>and <00:42:46.575>just <00:42:46.775>send <00:42:46.975>off, <00:42:47.175>uh, <00:42:47.375>these <00:42:47.575>live <00:42:47.775>streams.

966
00:42:49.115 --> 00:42:52.875
<00:42:49.115>So <00:42:49.290>Simulcasts <00:42:49.464>can <00:42:49.640>also <00:42:49.814>throw <00:42:49.990>on <00:42:50.165>some <00:42:50.339>watermarks, <00:42:50.515>uh,

967
00:42:52.875 --> 00:42:54.755
<00:42:52.875>things <00:42:53.225>like <00:42:53.575>JPEGs <00:42:53.925>or <00:42:54.275>PNGs.

968
00:42:54.855 --> 00:42:57.635
<00:42:54.855>If <00:42:54.995>we <00:42:55.135>didn't <00:42:55.275>wanna <00:42:55.415>embed <00:42:55.555>that <00:42:55.695>MO <00:42:55.835>logo <00:42:55.975>on <00:42:56.115>our <00:42:56.255>stream,

969
00:42:57.695 --> 00:43:00.355
<00:42:57.695>for <00:42:57.850>example, <00:42:58.006>we <00:42:58.161>can <00:42:58.317>do <00:42:58.472>that, <00:42:58.628>uh, <00:42:58.783>at <00:42:58.939>our, <00:42:59.095>uh,

970
00:43:00.355 --> 00:43:01.475
<00:43:00.355>encoding <00:43:00.859>point <00:43:01.363>instead.

971
00:43:02.055 --> 00:43:03.555
<00:43:02.055>And <00:43:02.205>of <00:43:02.355>course <00:43:02.504>we <00:43:02.654>can <00:43:02.805>put <00:43:02.955>all <00:43:03.105>of <00:43:03.254>those <00:43:03.404>together

972
00:43:03.695 --> 00:43:04.835
<00:43:03.695>and <00:43:03.951>create <00:43:04.208>a <00:43:04.464>fancy <00:43:04.721>stream.

973
00:43:05.935 --> 00:43:07.315
<00:43:05.935>Uh, <00:43:06.349>it's <00:43:06.763>really <00:43:07.177>simple.

974
00:43:07.545 --> 00:43:09.075
<00:43:07.545>This <00:43:07.774>is <00:43:08.004>just <00:43:08.233>something <00:43:08.462>you'd <00:43:08.692>pass <00:43:08.922>in

975
00:43:09.075 --> 00:43:10.195
<00:43:09.075>by <00:43:09.276>the <00:43:09.478>API <00:43:09.679>if <00:43:09.881>you <00:43:10.083>wanted.

976
00:43:12.295 --> 00:43:14.565
<00:43:12.295>Prove <00:43:12.495>it <00:43:12.695>out. <00:43:12.895>Create <00:43:13.095>a <00:43:13.295>new <00:43:13.495>live <00:43:13.695>stream.

977
00:43:15.825 --> 00:43:16.935
<00:43:15.825>Super <00:43:16.158>quick <00:43:16.491>and <00:43:16.824>painless.

978
00:43:17.205 --> 00:43:20.495
<00:43:17.205>Some <00:43:17.360>reason <00:43:17.516>it <00:43:17.671>always <00:43:17.827>gets <00:43:17.982>a <00:43:18.138>single.here, <00:43:18.293>I <00:43:18.449>dunno <00:43:18.605>why.

979
00:43:21.955 --> 00:43:24.215
<00:43:21.955>Hit <00:43:22.082>run. <00:43:22.209>And <00:43:22.336>then <00:43:22.464>of <00:43:22.591>course, <00:43:22.718>we've <00:43:22.845>got <00:43:22.973>a <00:43:23.100>new <00:43:23.227>live <00:43:23.355>stream.

980
00:43:24.435 --> 00:43:28.055
<00:43:24.435>All <00:43:24.562>we <00:43:24.689>have <00:43:24.816>to <00:43:24.944>do, <00:43:25.071>grab <00:43:25.198>our <00:43:25.325>new <00:43:25.453>stream, <00:43:25.580>key, <00:43:25.707>jump <00:43:25.835>off,

981
00:43:28.285 --> 00:43:30.415
<00:43:28.285>stop <00:43:28.518>our <00:43:28.751>stream, <00:43:28.984>jump <00:43:29.218>off <00:43:29.451>into <00:43:29.685>settings,

982
00:43:30.955 --> 00:43:35.465
<00:43:30.955>change <00:43:31.130>the <00:43:31.305>stream <00:43:31.480>key, <00:43:31.654>okay, <00:43:31.830>and <00:43:32.005>start <00:43:32.180>streaming <00:43:32.355>again.

983
00:43:35.965 --> 00:43:38.905
<00:43:35.965>And <00:43:36.165>then <00:43:36.365>we've <00:43:36.565>enabled, <00:43:36.765>uh, <00:43:36.965>MP <00:43:37.165>four <00:43:37.365>downloads.

984
00:43:39.075 --> 00:43:41.185
<00:43:39.075>We've <00:43:39.424>enabled, <00:43:39.774>uh, <00:43:40.125>reduced <00:43:40.475>latency

985
00:43:41.455 --> 00:43:43.065
<00:43:41.455>with <00:43:41.735>simul <00:43:42.015>casting <00:43:42.295>off <00:43:42.575>to <00:43:42.855>Facebook.

986
00:43:43.565 --> 00:43:44.985
<00:43:43.565>And <00:43:43.820>what <00:43:44.076>else <00:43:44.331>have <00:43:44.587>we <00:43:44.843>done?

987
00:43:45.305 --> 00:43:47.345
<00:43:45.305>Probably <00:43:45.460>something <00:43:45.616>else <00:43:45.771>as <00:43:45.927>well <00:43:46.082>that <00:43:46.238>I <00:43:46.393>don't <00:43:46.549>even <00:43:46.705>remember.

988
00:43:47.885 --> 00:43:49.705
<00:43:47.885>Uh, <00:43:48.040>so <00:43:48.196>if <00:43:48.351>we <00:43:48.507>jump <00:43:48.662>in <00:43:48.818>here, <00:43:48.973>there <00:43:49.129>we <00:43:49.285>go.

989
00:43:49.705 --> 00:43:51.945
<00:43:49.705>We've <00:43:49.938>got <00:43:50.171>our <00:43:50.404>simulcast <00:43:50.638>targets <00:43:50.871>becoming <00:43:51.105>active,

990
00:43:52.565 --> 00:43:54.185
<00:43:52.565>and <00:43:52.765>if <00:43:52.965>we <00:43:53.165>stop <00:43:53.365>this <00:43:53.565>stream, <00:43:53.765>oh <00:43:53.965>yeah,

991
00:43:54.185 --> 00:43:55.345
<00:43:54.185>we've <00:43:54.446>got <00:43:54.707>a <00:43:54.968>nice <00:43:55.229>watermark.

992
00:43:55.345 --> 00:43:57.665
<00:43:55.345>And <00:43:55.520>today <00:43:55.694>that <00:43:55.870>is <00:43:56.044>a <00:43:56.220>Joe <00:43:56.395>exotic <00:43:56.569>tv <00:43:56.745>uh,

993
00:43:57.665 --> 00:43:59.185
<00:43:57.665>watermark <00:43:57.938>on <00:43:58.212>our <00:43:58.485>video <00:43:58.759>as <00:43:59.033>well.

994
00:44:02.195 --> 00:44:04.385
<00:44:02.195>Great. <00:44:02.370>Uh, <00:44:02.545>I'm <00:44:02.720>gonna <00:44:02.895>stop <00:44:03.070>my <00:44:03.245>stream <00:44:03.420>as <00:44:03.595>well

995
00:44:04.405 --> 00:44:06.785
<00:44:04.405>so <00:44:04.638>it <00:44:04.871>doesn't <00:44:05.105>consume <00:44:05.338>my <00:44:05.571>entire <00:44:05.805>processor.

996
00:44:10.315 --> 00:44:12.175
<00:44:10.315>And <00:44:10.665>that <00:44:11.015>is <00:44:11.365>really <00:44:11.715>it.

997
00:44:12.315 --> 00:44:14.855
<00:44:12.315>Uh, <00:44:12.470>48 <00:44:12.626>minutes <00:44:12.781>past <00:44:12.937>the <00:44:13.092>hour <00:44:13.248>according <00:44:13.403>to <00:44:13.559>my <00:44:13.715>clock.

998
00:44:14.995 --> 00:44:16.455
<00:44:14.995>So <00:44:15.257>let's <00:44:15.520>have <00:44:15.783>a <00:44:16.046>quick <00:44:16.308>summary.

999
00:44:17.035 --> 00:44:19.375
<00:44:17.035>Uh, <00:44:17.174>we <00:44:17.315>looked <00:44:17.455>at <00:44:17.595>the <00:44:17.734>variety <00:44:17.875>of <00:44:18.015>platforms <00:44:18.154>you <00:44:18.295>can <00:44:18.435>use

1000
00:44:19.375 --> 00:44:20.375
<00:44:19.375>to <00:44:19.825>embed <00:44:20.275>live

1001
00:44:20.395 --> 00:44:24.255
<00:44:20.395>or <00:44:20.570>on <00:44:20.745>demand <00:44:20.920>video <00:44:21.095>experiences <00:44:21.270>into <00:44:21.445>your <00:44:21.620>apps, <00:44:21.795>your

1002
00:44:24.775 --> 00:44:26.935
<00:44:24.775>websites, <00:44:25.008>uh, <00:44:25.241>all <00:44:25.475>sorts <00:44:25.708>of <00:44:25.941>different <00:44:26.175>things.

1003
00:44:27.315 --> 00:44:30.095
<00:44:27.315>Um, <00:44:27.490>and <00:44:27.665>we <00:44:27.840>looked <00:44:28.015>at <00:44:28.190>those <00:44:28.365>fundamental <00:44:28.540>building <00:44:28.715>blocks,

1004
00:44:30.235 --> 00:44:33.805
<00:44:30.235>the <00:44:30.435>capture <00:44:30.635>stage, <00:44:30.835>processing, <00:44:31.035>stage <00:44:31.235>delivery, <00:44:31.435>and <00:44:31.635>playback.

1005
00:44:34.105 --> 00:44:36.605
<00:44:34.105>Uh, <00:44:34.305>we <00:44:34.505>looked <00:44:34.705>at <00:44:34.905>the <00:44:35.105>basics, <00:44:35.305>examples <00:44:35.505>of

1006
00:44:36.625 --> 00:44:39.485
<00:44:36.625>how <00:44:36.800>live <00:44:36.975>video <00:44:37.150>is <00:44:37.325>delivered, <00:44:37.500>including <00:44:37.675>the <00:44:37.850>HLS <00:44:38.025>protocol.

1007
00:44:40.065 --> 00:44:41.725
<00:44:40.065>Uh, <00:44:40.265>we <00:44:40.465>walked <00:44:40.665>through <00:44:40.865>creating <00:44:41.065>a <00:44:41.265>live <00:44:41.465>stream.

1008
00:44:41.785 --> 00:44:44.485
<00:44:41.785>We <00:44:41.940>used <00:44:42.096>MO <00:44:42.251>for <00:44:42.407>that. <00:44:42.562>Uh, <00:44:42.718>we <00:44:42.873>configured <00:44:43.029>our <00:44:43.185>encoder.

1009
00:44:44.485 --> 00:44:45.485
<00:44:44.485>We <00:44:44.710>used <00:44:44.935>OBS <00:44:45.160>of <00:44:45.385>that.

1010
00:44:45.785 --> 00:44:48.605
<00:44:45.785>We <00:44:45.940>looked <00:44:46.096>at, <00:44:46.251>uh, <00:44:46.407>a <00:44:46.562>single <00:44:46.718>open <00:44:46.873>source <00:44:47.029>player <00:44:47.185>this

1011
00:44:48.605 --> 00:44:49.845
<00:44:48.605>time, <00:44:49.163>hhl, <00:44:49.721>SJS.

1012
00:44:49.985 --> 00:44:51.965
<00:44:49.985>We <00:44:50.160>use <00:44:50.335>that <00:44:50.510>to <00:44:50.685>playback <00:44:50.860>video <00:44:51.035>in <00:44:51.210>our <00:44:51.385>website.

1013
00:44:52.145 --> 00:44:54.165
<00:44:52.145>And <00:44:52.345>then <00:44:52.545>we <00:44:52.745>fiddle <00:44:52.945>around <00:44:53.145>with <00:44:53.345>some <00:44:53.545>advanced,

1014
00:44:54.385 --> 00:44:55.405
<00:44:54.385>uh, <00:44:54.844>m <00:44:55.303>features.

1015
00:44:56.265 --> 00:44:57.925
<00:44:56.265>Now, <00:44:56.420>really, <00:44:56.576>the <00:44:56.731>next <00:44:56.887>thing <00:44:57.042>is <00:44:57.198>kind <00:44:57.353>of <00:44:57.509>a <00:44:57.665>call

1016
00:44:57.925 --> 00:44:59.045
<00:44:57.925>to <00:44:58.177>action <00:44:58.429>on <00:44:58.681>you, <00:44:58.933>right?

1017
00:44:59.425 --> 00:45:01.045
<00:44:59.425>Uh, <00:44:59.775>go <00:45:00.125>build <00:45:00.475>something <00:45:00.825>cool.

1018
00:45:01.245 --> 00:45:02.885
<00:45:01.245>I <00:45:01.400>would <00:45:01.556>love <00:45:01.711>to <00:45:01.867>see <00:45:02.022>what <00:45:02.178>people <00:45:02.333>build <00:45:02.489>using <00:45:02.645>this.

1019
00:45:02.885 --> 00:45:04.045
<00:45:02.885>We've <00:45:03.093>seen <00:45:03.302>some <00:45:03.511>really <00:45:03.720>cool <00:45:03.929>stuff.

1020
00:45:04.385 --> 00:45:06.005
<00:45:04.385>Uh, <00:45:04.585>a <00:45:04.785>lot <00:45:04.985>of <00:45:05.185>meetups <00:45:05.385>have <00:45:05.585>reached <00:45:05.785>out

1021
00:45:06.005 --> 00:45:07.125
<00:45:06.005>to <00:45:06.206>us <00:45:06.408>and <00:45:06.609>said, <00:45:06.811>Hey, <00:45:07.013>cool.

1022
00:45:07.285 --> 00:45:09.485
<00:45:07.285>I <00:45:07.440>can <00:45:07.596>stream <00:45:07.751>my <00:45:07.907>meetup <00:45:08.062>now <00:45:08.218>on <00:45:08.373>my <00:45:08.529>own <00:45:08.685>website.

1023
00:45:09.565 --> 00:45:11.245
<00:45:09.565>I <00:45:09.720>don't <00:45:09.876>have <00:45:10.031>to <00:45:10.187>use <00:45:10.342>Twitch <00:45:10.498>or <00:45:10.653>YouTube <00:45:10.809>or <00:45:10.965>whatever.

1024
00:45:11.785 --> 00:45:15.045
<00:45:11.785>Um, <00:45:11.924>like <00:45:12.065>we <00:45:12.205>said <00:45:12.345>at <00:45:12.484>the <00:45:12.625>beginning, <00:45:12.765>uh, <00:45:12.904>you <00:45:13.045>sign <00:45:13.185>up

1025
00:45:15.045 --> 00:45:16.725
<00:45:15.045>for <00:45:15.245>your <00:45:15.445>own <00:45:15.645>account, <00:45:15.845>you'll <00:45:16.045>get <00:45:16.245>$20 <00:45:16.445>credit.

1026
00:45:16.875 --> 00:45:19.325
<00:45:16.875>Drop <00:45:17.075>me <00:45:17.275>an <00:45:17.475>email, <00:45:17.675>philip <00:45:17.875>atms.com. <00:45:18.075>Pretty <00:45:18.275>easy.

1027
00:45:19.675 --> 00:45:21.045
<00:45:19.675>I'll <00:45:19.983>bump <00:45:20.291>at <00:45:20.599>$50 <00:45:20.908>credit.

1028
00:45:21.185 --> 00:45:22.485
<00:45:21.185>Uh, <00:45:21.352>that'll <00:45:21.519>get <00:45:21.686>you <00:45:21.853>a <00:45:22.020>lot <00:45:22.187>of <00:45:22.355>testing.

1029
00:45:22.985 --> 00:45:24.645
<00:45:22.985>Um, <00:45:23.265>if <00:45:23.545>you <00:45:23.825>make <00:45:24.105>something <00:45:24.385>cool

1030
00:45:24.665 --> 00:45:27.085
<00:45:24.665>and <00:45:24.865>open <00:45:25.065>source <00:45:25.265>as <00:45:25.465>well, <00:45:25.665>doesn't <00:45:25.865>necessarily <00:45:26.065>have

1031
00:45:27.085 --> 00:45:28.525
<00:45:27.085>to <00:45:27.247>be <00:45:27.409>cool, <00:45:27.571>just <00:45:27.733>has <00:45:27.895>to <00:45:28.057>be <00:45:28.219>open <00:45:28.381>source.

1032
00:45:28.585 --> 00:45:31.325
<00:45:28.585>But <00:45:28.712>uses <00:45:28.839>mo <00:45:28.966>uh, <00:45:29.094>we'll <00:45:29.221>also <00:45:29.348>send <00:45:29.475>you <00:45:29.603>over <00:45:29.730>a <00:45:29.857>swag <00:45:29.985>kit.

1033
00:45:31.425 --> 00:45:32.885
<00:45:31.425>Uh, <00:45:31.753>comes <00:45:32.082>with <00:45:32.410>a <00:45:32.739>t-shirt.

1034
00:45:32.885 --> 00:45:34.645
<00:45:32.885>Maybe <00:45:33.060>not <00:45:33.235>this <00:45:33.410>one, <00:45:33.585>one <00:45:33.760>of <00:45:33.935>the <00:45:34.110>newer <00:45:34.285>ones,

1035
00:45:34.645 --> 00:45:36.125
<00:45:34.645>but <00:45:35.089>yeah, <00:45:35.533>please <00:45:35.977>do.

1036
00:45:36.145 --> 00:45:37.445
<00:45:36.145>So <00:45:36.535>there's <00:45:36.925>a <00:45:37.315>bunch

1037
00:45:37.445 --> 00:45:39.245
<00:45:37.445>of <00:45:37.620>resources <00:45:37.795>I'm <00:45:37.970>happy <00:45:38.145>to <00:45:38.320>share <00:45:38.495>around <00:45:38.670>the <00:45:38.845>slides.

1038
00:45:39.315 --> 00:45:41.445
<00:45:39.315>I'll <00:45:39.455>also <00:45:39.595>share <00:45:39.735>around <00:45:39.875>the <00:45:40.015>code <00:45:40.155>Sandbox <00:45:40.295>when <00:45:40.435>this <00:45:40.575>is <00:45:40.715>done,

1039
00:45:41.595 --> 00:45:44.165
<00:45:41.595>that <00:45:41.722>I <00:45:41.849>can <00:45:41.976>send <00:45:42.104>'em <00:45:42.231>share <00:45:42.358>code <00:45:42.485>about <00:45:42.613>Sandbox <00:45:42.740>now <00:45:42.867>in <00:45:42.995>chat.

1040
00:45:44.745 --> 00:45:46.965
<00:45:44.745>Um, <00:45:44.978>do <00:45:45.211>have <00:45:45.444>a <00:45:45.678>play <00:45:45.911>around, <00:45:46.145>particularly

1041
00:45:46.965 --> 00:45:50.125
<00:45:46.965>with <00:45:47.140>Phil's <00:45:47.315>players <00:45:47.490>in <00:45:47.665>there, <00:45:47.840>Phil <00:45:48.015>k <00:45:48.190>slash <00:45:48.365>players.

1042
00:45:50.435 --> 00:45:53.885
<00:45:50.435>It's <00:45:50.610>a <00:45:50.785>great <00:45:50.960>place <00:45:51.134>to <00:45:51.310>experiment <00:45:51.485>with, <00:45:51.660>um, <00:45:51.835>understanding

1043
00:45:53.945 --> 00:45:55.485
<00:45:53.945>how <00:45:54.407>video <00:45:54.869>players <00:45:55.331>work

1044
00:45:55.545 --> 00:45:56.885
<00:45:55.545>and <00:45:55.695>what's <00:45:55.846>going <00:45:55.997>on <00:45:56.148>in <00:45:56.298>the <00:45:56.449>hood <00:45:56.600>when <00:45:56.751>you

1045
00:45:56.885 --> 00:45:57.925
<00:45:56.885>watch <00:45:57.119>a <00:45:57.353>video <00:45:57.587>as <00:45:57.821>well.

1046
00:45:58.495 --> 00:46:01.035
<00:45:58.495>And <00:45:58.670>with <00:45:58.845>that <00:45:59.020>spot <00:45:59.194>on <00:45:59.370>10 <00:45:59.545>minutes <00:45:59.720>left, <00:45:59.895>uh,

1047
00:46:01.375 --> 00:46:03.995
<00:46:01.375>please <00:46:01.608>ask <00:46:01.841>any <00:46:02.075>questions <00:46:02.308>you <00:46:02.541>do, <00:46:02.775>uh,

1048
00:46:04.355 --> 00:46:05.355
<00:46:04.355>anything <00:46:04.535>you <00:46:04.715>wanna <00:46:04.895>ask <00:46:05.075>about <00:46:05.255>video.

1049
00:46:05.375 --> 00:46:06.875
<00:46:05.375>It <00:46:05.543>doesn't <00:46:05.712>have <00:46:05.881>to <00:46:06.050>be <00:46:06.218>about <00:46:06.387>MOS <00:46:06.556>in <00:46:06.725>particular.

1050
00:46:07.015 --> 00:46:08.755
<00:46:07.015>It <00:46:07.190>could <00:46:07.365>be <00:46:07.540>about <00:46:07.714>any <00:46:07.890>other <00:46:08.065>platform <00:46:08.240>you've <00:46:08.415>seen

1051
00:46:09.055 --> 00:46:11.955
<00:46:09.055>or <00:46:09.194>how <00:46:09.335>anything, <00:46:09.475>uh, <00:46:09.615>works <00:46:09.754>when <00:46:09.895>it <00:46:10.035>comes <00:46:10.174>to <00:46:10.315>video <00:46:10.455>streaming

1052
00:46:21.485 --> 00:46:22.485
Soon.

1053
00:46:23.675 --> 00:46:24.675
Wow.

1054
00:46:27.035 --> 00:46:28.135
<00:46:27.035>Was <00:46:27.200>that <00:46:27.365>enough <00:46:27.530>of <00:46:27.695>a <00:46:27.860>crash <00:46:28.025>course?

1055
00:46:29.525 --> 00:46:31.935
<00:46:29.525>Yeah, <00:46:29.700>that <00:46:29.875>was <00:46:30.050>a <00:46:30.225>nice <00:46:30.400>crash <00:46:30.575>course. <00:46:30.750>I <00:46:30.925>think.

1056
00:46:32.475 --> 00:46:36.775
<00:46:32.475>Um, <00:46:32.630>we're <00:46:32.786>still <00:46:32.941>waiting <00:46:33.097>for <00:46:33.252>questions <00:46:33.408>to <00:46:33.563>come <00:46:33.719>in, <00:46:33.875>uh,

1057
00:46:37.395 --> 00:46:41.895
<00:46:37.395>but, <00:46:37.550>uh, <00:46:37.706>yeah, <00:46:37.861>look, <00:46:38.017>there <00:46:38.172>is <00:46:38.328>the <00:46:38.483>first <00:46:38.639>one. <00:46:38.795>Ah,

1058
00:46:42.255 --> 00:46:43.595
<00:46:42.255>Brilliant <00:46:43.461>question.

1059
00:46:43.905 --> 00:46:45.955
<00:46:43.905>What <00:46:44.060>is <00:46:44.216>the <00:46:44.371>best <00:46:44.527>way <00:46:44.682>to <00:46:44.838>stream <00:46:44.993>from <00:46:45.149>a <00:46:45.305>browser

1060
00:46:46.225 --> 00:46:47.875
<00:46:46.225>without <00:46:46.691>OBS <00:46:47.158>from <00:46:47.625>Pete?

1061
00:46:47.975 --> 00:46:49.315
<00:46:47.975>No, <00:46:48.377>great <00:46:48.779>question. <00:46:49.181>Um,

1062
00:46:50.695 --> 00:46:52.955
<00:46:50.695>we <00:46:50.928>recently <00:46:51.161>wrote <00:46:51.395>a <00:46:51.628>pretty <00:46:51.861>hefty <00:46:52.095>blog

1063
00:46:52.955 --> 00:46:54.075
<00:46:52.955>article <00:46:53.290>on <00:46:53.627>this, <00:46:53.962>actually.

1064
00:46:54.495 --> 00:46:56.635
<00:46:54.495>Um, <00:46:54.775>I <00:46:55.055>can <00:46:55.335>send <00:46:55.615>that <00:46:55.895>around.

1065
00:46:56.695 --> 00:46:58.955
<00:46:56.695>In <00:46:56.850>fact, <00:46:57.006>I'll <00:46:57.161>drop <00:46:57.317>it <00:46:57.472>in <00:46:57.628>the <00:46:57.783>chat <00:46:57.939>right <00:46:58.095>now.

1066
00:46:59.015 --> 00:47:03.435
<00:46:59.015>How <00:46:59.142>about <00:46:59.269>that, <00:46:59.396>uh, <00:46:59.524>M's <00:46:59.651>blog, <00:46:59.778>uh, <00:46:59.905>going <00:47:00.033>live <00:47:00.160>from <00:47:00.287>a <00:47:00.415>browser

1067
00:47:04.745 --> 00:47:08.115
<00:47:04.745>somewhere <00:47:04.920>down <00:47:05.095>here <00:47:05.270>might <00:47:05.444>be <00:47:05.620>on <00:47:05.795>the <00:47:05.970>next <00:47:06.145>page.

1068
00:47:12.945 --> 00:47:15.125
<00:47:12.945>He <00:47:13.178>says, <00:47:13.411>trying <00:47:13.645>to <00:47:13.878>find <00:47:14.111>it, <00:47:14.345>uh,

1069
00:47:15.125 --> 00:47:16.205
<00:47:15.125>state <00:47:15.319>of <00:47:15.513>go <00:47:15.708>live <00:47:15.902>from <00:47:16.096>browser.

1070
00:47:16.235 --> 00:47:18.125
<00:47:16.235>Here <00:47:16.435>it <00:47:16.635>is. <00:47:16.835>Uh, <00:47:17.035>we <00:47:17.235>recently <00:47:17.435>put <00:47:17.635>together

1071
00:47:18.185 --> 00:47:20.685
<00:47:18.185>yet <00:47:18.312>a <00:47:18.439>a <00:47:18.566>really <00:47:18.694>good <00:47:18.821>summary <00:47:18.948>of <00:47:19.075>how <00:47:19.203>you <00:47:19.330>can <00:47:19.457>approach <00:47:19.585>this.

1072
00:47:21.185 --> 00:47:23.965
<00:47:21.185>Uh, <00:47:21.325>and <00:47:21.465>there's <00:47:21.605>a <00:47:21.745>bunch <00:47:21.884>of <00:47:22.025>open <00:47:22.165>source <00:47:22.305>code <00:47:22.445>in <00:47:22.585>there

1073
00:47:24.025 --> 00:47:26.845
<00:47:24.025>as <00:47:24.200>well, <00:47:24.375>which <00:47:24.550>implements <00:47:24.725>going <00:47:24.900>live <00:47:25.075>from <00:47:25.250>a <00:47:25.425>browser.

1074
00:47:27.505 --> 00:47:29.805
<00:47:27.505>So, <00:47:27.660>uh, <00:47:27.816>the <00:47:27.971>challenges, <00:47:28.127>the <00:47:28.282>brow, <00:47:28.438>the <00:47:28.593>browser <00:47:28.749>can <00:47:28.905>kind

1075
00:47:29.805 --> 00:47:33.485
<00:47:29.805>of <00:47:29.980>do <00:47:30.154>video <00:47:30.330>in, <00:47:30.504>um, <00:47:30.680>one <00:47:30.855>of <00:47:31.029>two <00:47:31.205>ways.

1076
00:47:34.025 --> 00:47:36.325
<00:47:34.025>Uh, <00:47:34.180>the <00:47:34.336>browser <00:47:34.491>can <00:47:34.647>just <00:47:34.802>generate <00:47:34.958>you <00:47:35.113>kind <00:47:35.269>of <00:47:35.425>these

1077
00:47:36.915 --> 00:47:40.565
<00:47:36.915>oblique <00:47:37.070>web <00:47:37.226>m <00:47:37.381>blo, <00:47:37.537>uh, <00:47:37.692>blobs, <00:47:37.848>uh, <00:47:38.003>inside <00:47:38.159>the <00:47:38.315>browser

1078
00:47:40.675 --> 00:47:43.805
<00:47:40.675>that <00:47:40.830>you <00:47:40.986>can <00:47:41.141>shunt <00:47:41.297>off <00:47:41.452>through <00:47:41.608>whatever <00:47:41.763>transport <00:47:41.919>you <00:47:42.075>want.

1079
00:47:44.265 --> 00:47:47.205
<00:47:44.265>Uh, <00:47:44.440>provided <00:47:44.615>by <00:47:44.790>transport <00:47:44.964>is <00:47:45.140>either <00:47:45.315>kind <00:47:45.490>of, <00:47:45.665>uh,

1080
00:47:47.605 --> 00:47:49.045
<00:47:47.605>HDP <00:47:47.929>or <00:47:48.253>a <00:47:48.577>web <00:47:48.901>socket.

1081
00:47:49.505 --> 00:47:52.525
<00:47:49.505>Um, <00:47:49.660>and <00:47:49.816>then <00:47:49.971>the <00:47:50.127>other <00:47:50.282>option <00:47:50.438>is, <00:47:50.593>uh, <00:47:50.749>web <00:47:50.905>RTC.

1082
00:47:52.945 --> 00:47:56.685
<00:47:52.945>Um, <00:47:53.072>both <00:47:53.199>of <00:47:53.326>those <00:47:53.454>don't <00:47:53.581>tend <00:47:53.708>to <00:47:53.835>be <00:47:53.963>supported <00:47:54.090>very <00:47:54.217>well <00:47:54.345>by,

1083
00:47:56.945 --> 00:48:00.405
<00:47:56.945>uh, <00:47:57.100>platforms <00:47:57.256>like, <00:47:57.411>like <00:47:57.567>merch <00:47:57.722>or <00:47:57.878>even <00:47:58.033>things <00:47:58.189>like <00:47:58.345>Twitch.

1084
00:48:00.745 --> 00:48:02.845
<00:48:00.745>Um, <00:48:00.920>so <00:48:01.095>you <00:48:01.270>do <00:48:01.444>need <00:48:01.620>to <00:48:01.795>bridge <00:48:01.970>that <00:48:02.145>protocol.

1085
00:48:03.065 --> 00:48:07.005
<00:48:03.065>Uh, <00:48:03.220>some <00:48:03.376>level <00:48:03.531>we've <00:48:03.687>written <00:48:03.842>a, <00:48:03.998>a <00:48:04.153>tool <00:48:04.309>called, <00:48:04.465>um,

1086
00:48:08.145 --> 00:48:11.125
<00:48:08.145>ah <00:48:08.300>w <00:48:08.456>it, <00:48:08.611>we <00:48:08.767>called <00:48:08.922>it <00:48:09.078>in <00:48:09.233>the <00:48:09.389>end, <00:48:09.545>uh,

1087
00:48:11.135 --> 00:48:13.125
<00:48:11.135>which <00:48:11.368>takes <00:48:11.601>the <00:48:11.835>video <00:48:12.068>from <00:48:12.301>a <00:48:12.535>browser,

1088
00:48:13.645 --> 00:48:16.925
<00:48:13.645>shoves <00:48:13.761>it <00:48:13.878>down <00:48:13.995>a <00:48:14.111>web <00:48:14.228>socket <00:48:14.345>to, <00:48:14.461>uh, <00:48:14.578>an <00:48:14.695>f <00:48:14.811>fm <00:48:14.928>peg <00:48:15.045>instance,

1089
00:48:17.105 --> 00:48:19.605
<00:48:17.105>and <00:48:17.338>we <00:48:17.571>spun <00:48:17.805>that <00:48:18.038>up <00:48:18.271>on <00:48:18.505>fly.io.

1090
00:48:19.605 --> 00:48:21.605
<00:48:19.605>So <00:48:19.805>it's <00:48:20.005>really <00:48:20.205>easy, <00:48:20.405>really <00:48:20.605>lightweight, <00:48:20.805>really <00:48:21.005>simple,

1091
00:48:22.145 --> 00:48:23.285
<00:48:22.145>uh, <00:48:22.401>to <00:48:22.658>spin <00:48:22.914>up <00:48:23.171>yourself.

1092
00:48:23.285 --> 00:48:25.605
<00:48:23.285>It's <00:48:23.460>a <00:48:23.634>container. <00:48:23.810>We <00:48:23.984>run <00:48:24.160>it <00:48:24.335>on <00:48:24.509>Fly <00:48:24.685>io

1093
00:48:25.605 --> 00:48:26.845
<00:48:25.605>because <00:48:25.791>that's <00:48:25.977>really <00:48:26.163>close <00:48:26.348>to <00:48:26.535>the <00:48:26.721>edge.

1094
00:48:27.345 --> 00:48:31.765
<00:48:27.345>Um, <00:48:27.484>and <00:48:27.625>then <00:48:27.765>just <00:48:27.904>pipes <00:48:28.044>that <00:48:28.185>stream <00:48:28.325>back <00:48:28.464>out <00:48:28.605>into, <00:48:28.745>um,

1095
00:48:32.985 --> 00:48:36.845
<00:48:32.985>uh, <00:48:33.140>a <00:48:33.296>platform <00:48:33.451>like <00:48:33.607>Mux <00:48:33.762>or <00:48:33.918>any <00:48:34.073>other <00:48:34.229>RTMP <00:48:34.385>endpoint.

1096
00:48:37.545 --> 00:48:38.845
<00:48:37.545>So <00:48:37.691>yeah, <00:48:37.837>that <00:48:37.983>tends <00:48:38.130>to <00:48:38.276>be <00:48:38.422>how <00:48:38.568>it's <00:48:38.714>done.

1097
00:48:39.105 --> 00:48:40.845
<00:48:39.105>Um, <00:48:39.305>some <00:48:39.505>of <00:48:39.705>the, <00:48:39.905>some <00:48:40.105>of <00:48:40.305>the <00:48:40.505>better.

1098
00:48:41.145 --> 00:48:44.125
<00:48:41.145>Um, <00:48:41.300>so <00:48:41.456>a <00:48:41.611>lot <00:48:41.767>of <00:48:41.922>platforms <00:48:42.078>are <00:48:42.233>obviously <00:48:42.389>now <00:48:42.545>starting

1099
00:48:44.125 --> 00:48:46.805
<00:48:44.125>to <00:48:44.325>build, <00:48:44.525>uh, <00:48:44.725>like <00:48:44.925>studios <00:48:45.125>on <00:48:45.325>the <00:48:45.525>web.

1100
00:48:47.265 --> 00:48:51.175
<00:48:47.265>Um, <00:48:47.440>yep. <00:48:47.615>Things <00:48:47.790>like <00:48:47.964>Restream <00:48:48.140>Studio <00:48:48.315>is <00:48:48.490>very <00:48:48.665>comprehensive.

1101
00:48:51.635 --> 00:48:53.215
<00:48:51.635>It <00:48:51.790>starts <00:48:51.946>become <00:48:52.101>a <00:48:52.257>lot <00:48:52.412>more <00:48:52.568>complicated <00:48:52.723>when <00:48:52.879>you <00:48:53.035>build,

1102
00:48:53.215 --> 00:48:54.295
<00:48:53.215>want <00:48:53.377>to <00:48:53.539>build <00:48:53.701>a <00:48:53.863>platform <00:48:54.025>around <00:48:54.187>it.

1103
00:48:54.295 --> 00:48:56.615
<00:48:54.295>It's <00:48:54.450>great <00:48:54.606>for <00:48:54.761>one-off <00:48:54.917>events, <00:48:55.072>maybe <00:48:55.228>not <00:48:55.383>great <00:48:55.539>for, <00:48:55.695>uh,

1104
00:48:56.725 --> 00:48:58.215
<00:48:56.725>recurring, <00:48:57.395>uh, <00:48:58.066>events.

1105
00:48:59.875 --> 00:49:00.875
<00:48:59.875>Hope <00:49:00.325>that <00:49:00.775>helps.

1106
00:49:05.795 --> 00:49:09.195
<00:49:05.795>Interesting. <00:49:05.950>It's <00:49:06.106>also, <00:49:06.261>we <00:49:06.417>do <00:49:06.572>a <00:49:06.728>lot <00:49:06.883>of <00:49:07.039>live <00:49:07.195>streaming.

1107
00:49:09.295 --> 00:49:14.235
<00:49:09.295>We, <00:49:09.470>uh, <00:49:09.645>know <00:49:09.820>about <00:49:09.995>the <00:49:10.170>quirks <00:49:10.345>of <00:49:10.520>OBS. <00:49:10.695>Mm-hmm.

1108
00:49:14.455 --> 00:49:17.875
<00:49:14.455>The <00:49:14.654>ups <00:49:14.855>and <00:49:15.055>downs <00:49:15.255>and <00:49:15.455>the <00:49:15.654>fun, <00:49:15.855>the

1109
00:49:17.875 --> 00:49:19.635
<00:49:17.875>Crashes. <00:49:18.575>Oh, <00:49:19.275>yes.

1110
00:49:20.455 --> 00:49:24.915
<00:49:20.455>Uh, <00:49:20.654>I, <00:49:20.855>I, <00:49:21.055>I <00:49:21.255>would <00:49:21.455>never, <00:49:21.654>ever, <00:49:21.855>um,

1111
00:49:25.295 --> 00:49:27.755
<00:49:25.295>do <00:49:25.761>any <00:49:26.228>audio <00:49:26.695>changes

1112
00:49:28.555 --> 00:49:30.635
<00:49:28.555>when <00:49:28.835>the <00:49:29.115>thing <00:49:29.395>is <00:49:29.674>life, <00:49:29.955>because

1113
00:49:31.445 --> 00:49:32.875
<00:49:31.445>Never <00:49:31.766>unplug <00:49:32.088>a <00:49:32.410>monitor <00:49:32.732>either.

1114
00:49:33.015 --> 00:49:35.435
<00:49:33.015>That's <00:49:33.248>one <00:49:33.481>that <00:49:33.714>always <00:49:33.948>crashes <00:49:34.181>my <00:49:34.415>OPS.

1115
00:49:37.225 --> 00:49:38.235
<00:49:37.225>Yeah. <00:49:38.134>Yeah.

1116
00:49:41.495 --> 00:49:46.155
<00:49:41.495>So <00:49:41.622>there <00:49:41.749>is <00:49:41.876>a <00:49:42.004>next <00:49:42.131>thing. <00:49:42.258>Uh, <00:49:42.385>why, <00:49:42.513>where <00:49:42.640>is <00:49:42.767>it? <00:49:42.895>Duh.

1117
00:49:46.535 --> 00:49:49.355
<00:49:46.535>Any <00:49:46.768>plan <00:49:47.001>of <00:49:47.234>supporting <00:49:47.468>real <00:49:47.701>time <00:49:47.935>engagement?

1118
00:49:49.675 --> 00:49:53.715
<00:49:49.675>API <00:49:49.875>like <00:49:50.075>Agora, <00:49:50.275>like <00:49:50.475>more <00:49:50.675>than <00:49:50.875>streaming. <00:49:51.075>Ooh,

1119
00:49:53.885 --> 00:49:55.195
<00:49:53.885>Super <00:49:54.474>interesting <00:49:55.064>question.

1120
00:49:55.615 --> 00:49:59.905
<00:49:55.615>Um, <00:49:55.964>taking <00:49:56.314>kind <00:49:56.665>of <00:49:57.015>a,

1121
00:49:59.945 --> 00:50:03.385
<00:49:59.945>a <00:50:00.085>step <00:50:00.225>back <00:50:00.365>when, <00:50:00.505>when <00:50:00.645>developers <00:50:00.785>reach <00:50:00.925>a <00:50:01.065>a <00:50:01.205>video <00:50:01.345>product,

1122
00:50:03.805 --> 00:50:07.745
<00:50:03.805>um, <00:50:04.004>they <00:50:04.205>don't <00:50:04.404>care <00:50:04.605>what <00:50:04.805>technology <00:50:05.004>you're <00:50:05.205>using,

1123
00:50:07.745 --> 00:50:10.385
<00:50:07.745>whether <00:50:07.920>it's <00:50:08.095>HLS, <00:50:08.270>whether <00:50:08.444>it's <00:50:08.620>web <00:50:08.795>RTC, <00:50:08.970>whether <00:50:09.145>it's,

1124
00:50:10.415 --> 00:50:11.905
<00:50:10.415>it's <00:50:10.683>something <00:50:10.951>else, <00:50:11.219>something <00:50:11.487>else <00:50:11.756>magical.

1125
00:50:12.565 --> 00:50:13.945
<00:50:12.565>Um, <00:50:13.186>a <00:50:13.807>lot

1126
00:50:13.945 --> 00:50:17.185
<00:50:13.945>of <00:50:14.085>the <00:50:14.225>time <00:50:14.365>the <00:50:14.505>developers <00:50:14.645>just <00:50:14.785>want <00:50:14.925>real <00:50:15.065>time <00:50:15.205>communication <00:50:15.345>experiences.

1127
00:50:17.965 --> 00:50:20.985
<00:50:17.965>Um, <00:50:18.105>you <00:50:18.245>know, <00:50:18.385>for, <00:50:18.525>for <00:50:18.665>us <00:50:18.805>that's <00:50:18.945>like <00:50:19.085>a <00:50:19.225>sliding <00:50:19.365>scale,

1128
00:50:20.985 --> 00:50:22.465
<00:50:20.985>obviously, <00:50:21.651>of <00:50:22.317>reliability

1129
00:50:22.565 --> 00:50:26.025
<00:50:22.565>and <00:50:22.740>quality, <00:50:22.915>um, <00:50:23.090>through <00:50:23.265>to, <00:50:23.440>you <00:50:23.615>know, <00:50:23.790>lower <00:50:23.965>latency,

1130
00:50:26.085 --> 00:50:28.205
<00:50:26.085>but <00:50:26.318>you <00:50:26.551>know, <00:50:26.785>more <00:50:27.018>real <00:50:27.251>time <00:50:27.485>interactions.

1131
00:50:28.745 --> 00:50:31.925
<00:50:28.745>Um, <00:50:28.900>and <00:50:29.056>that <00:50:29.211>is <00:50:29.367>something <00:50:29.522>we're, <00:50:29.678>we're <00:50:29.833>super <00:50:29.989>interested <00:50:30.145>in.

1132
00:50:32.305 --> 00:50:36.565
<00:50:32.305>Um, <00:50:32.444>we <00:50:32.585>do <00:50:32.725>work <00:50:32.865>with, <00:50:33.004>one <00:50:33.145>of <00:50:33.285>great <00:50:33.424>things <00:50:33.565>is, <00:50:33.705>uh,

1133
00:50:36.565 --> 00:50:38.605
<00:50:36.565>we <00:50:36.720>do <00:50:36.876>work <00:50:37.031>in <00:50:37.187>a <00:50:37.342>lot <00:50:37.498>of <00:50:37.653>hybrid <00:50:37.809>environments <00:50:37.965>already.

1134
00:50:38.865 --> 00:50:42.925
<00:50:38.865>Things <00:50:39.020>like <00:50:39.176>using, <00:50:39.331>uh, <00:50:39.487>web <00:50:39.642>RTC <00:50:39.798>technology <00:50:39.953>like, <00:50:40.109>uh, <00:50:40.265>daily.co

1135
00:50:43.345 --> 00:50:44.885
<00:50:43.345>to <00:50:43.691>then <00:50:44.038>restream <00:50:44.384>into <00:50:44.731>mux

1136
00:50:45.025 --> 00:50:48.125
<00:50:45.025>or <00:50:45.165>even <00:50:45.305>using <00:50:45.445>things <00:50:45.585>like <00:50:45.725>talkbox <00:50:45.865>to <00:50:46.005>restream <00:50:46.145>into <00:50:46.285>m <00:50:46.425>so,

1137
00:50:48.125 --> 00:50:51.325
<00:50:48.125>you <00:50:48.300>know, <00:50:48.475>a <00:50:48.650>real <00:50:48.825>time <00:50:49.000>10 <00:50:49.175>person <00:50:49.350>conversation, <00:50:49.525>uh,

1138
00:50:51.325 --> 00:50:54.365
<00:50:51.325>then <00:50:51.480>stream <00:50:51.636>to <00:50:51.791>a <00:50:51.947>hundred <00:50:52.102>thousand <00:50:52.258>people <00:50:52.413>using <00:50:52.569>mucks, <00:50:52.725>um,

1139
00:50:54.385 --> 00:50:56.645
<00:50:54.385>in <00:50:54.525>terms <00:50:54.665>of <00:50:54.805>bringing <00:50:54.945>that <00:50:55.085>into <00:50:55.225>our <00:50:55.365>own <00:50:55.505>platform, <00:50:55.645>you <00:50:55.785>know?

1140
00:50:56.645 --> 00:51:00.205
<00:50:56.645>Yeah. <00:50:56.772>Uh, <00:50:56.899>because <00:50:57.026>we <00:50:57.154>wanna <00:50:57.281>have <00:50:57.408>a, <00:50:57.535>a <00:50:57.663>product <00:50:57.790>that <00:50:57.917>just, <00:50:58.045>uh,

1141
00:51:00.205 --> 00:51:02.765
<00:51:00.205>attracts <00:51:00.360>all <00:51:00.516>developers <00:51:00.671>regardless <00:51:00.827>of <00:51:00.982>how <00:51:01.138>we <00:51:01.293>wanna <00:51:01.449>do <00:51:01.605>video.

1142
00:51:02.875 --> 00:51:05.525
<00:51:02.875>Obviously <00:51:03.050>real <00:51:03.225>time <00:51:03.400>is <00:51:03.575>super <00:51:03.750>interesting <00:51:03.925>to <00:51:04.100>us <00:51:04.275>from

1143
00:51:05.525 --> 00:51:07.605
<00:51:05.525>that <00:51:05.805>perspective <00:51:06.085>in <00:51:06.365>terms <00:51:06.645>of <00:51:06.925>engagement.

1144
00:51:07.705 --> 00:51:10.325
<00:51:07.705>Uh, <00:51:07.938>also, <00:51:08.171>you <00:51:08.404>know, <00:51:08.638>super <00:51:08.871>interested <00:51:09.105>in

1145
00:51:10.325 --> 00:51:11.645
<00:51:10.325>that <00:51:10.622>from <00:51:10.919>our <00:51:11.216>analytics <00:51:11.513>product.

1146
00:51:11.945 --> 00:51:13.525
<00:51:11.945>Um, <00:51:12.295>so <00:51:12.645>yeah, <00:51:12.995>for <00:51:13.345>sure.

1147
00:51:15.555 --> 00:51:19.455
<00:51:15.555>Okay, <00:51:16.955>sure.

1148
00:51:20.005 --> 00:51:24.255
<00:51:20.005>Pete, <00:51:20.205>from <00:51:20.405>the, <00:51:20.605>uh, <00:51:20.805>browser <00:51:21.005>streaming <00:51:21.205>questions <00:51:21.405>says,

1149
00:51:24.255 --> 00:51:25.775
<00:51:24.255>thanks, <00:51:24.711>and <00:51:25.167>thank <00:51:25.623>too.

1150
00:51:27.035 --> 00:51:28.815
<00:51:27.035>So <00:51:27.734>that's <00:51:28.435>this.

1151
00:51:29.395 --> 00:51:33.895
<00:51:29.395>Um, <00:51:29.570>uh, <00:51:29.745>do <00:51:29.920>you <00:51:30.095>have <00:51:30.270>any <00:51:30.445>other <00:51:30.620>tips <00:51:30.795>to,

1152
00:51:34.195 --> 00:51:38.495
<00:51:34.195>um, <00:51:34.428>tips, <00:51:34.661>tips <00:51:34.895>getting <00:51:35.128>down <00:51:35.361>the <00:51:35.595>latency,

1153
00:51:38.915 --> 00:51:40.695
<00:51:38.915>uh, <00:51:39.615>video <00:51:40.315>stream?

1154
00:51:41.115 --> 00:51:44.055
<00:51:41.115>Or <00:51:41.464>when <00:51:41.814>should <00:51:42.165>I <00:51:42.515>stop?

1155
00:51:44.795 --> 00:51:48.735
<00:51:44.795>Um, <00:51:44.995>to <00:51:45.195>like <00:51:45.395>pushing <00:51:45.595>down <00:51:45.795>the <00:51:45.995>limit, <00:51:46.195>uh,

1156
00:51:48.865 --> 00:51:52.055
<00:51:48.865>while <00:51:49.064>still <00:51:49.265>delivering, <00:51:49.464>um, <00:51:49.665>some <00:51:49.865>kind <00:51:50.064>of <00:51:50.265>quality?

1157
00:51:52.195 --> 00:51:55.775
<00:51:52.195>You <00:51:52.350>know, <00:51:52.506>the, <00:51:52.661>the <00:51:52.817>thing <00:51:52.972>is, <00:51:53.128>for <00:51:53.283>instance, <00:51:53.439>if <00:51:53.595>you

1158
00:51:57.195 --> 00:52:00.855
<00:51:57.195>stream <00:51:57.428>in <00:51:57.661>4K <00:51:57.895>some <00:51:58.128>video <00:51:58.361>game <00:51:58.595>onto

1159
00:52:01.135 --> 00:52:02.295
<00:52:01.135>Twitch, <00:52:01.483>that's <00:52:01.831>one <00:52:02.179>thing.

1160
00:52:02.835 --> 00:52:07.775
<00:52:02.835>Um, <00:52:03.035>but <00:52:03.235>if <00:52:03.435>you <00:52:03.635>simply, <00:52:03.835>um, <00:52:04.035>have, <00:52:04.235>uh,

1161
00:52:08.055 --> 00:52:13.015
<00:52:08.055>a <00:52:08.182>coding <00:52:08.309>session, <00:52:08.436>but <00:52:08.564>you <00:52:08.691>still <00:52:08.818>want, <00:52:08.945>uh, <00:52:09.073>the <00:52:09.200>latency <00:52:09.327>to <00:52:09.455>be,

1162
00:52:14.305 --> 00:52:17.015
<00:52:14.305>let's <00:52:14.771>call <00:52:15.238>it <00:52:15.705>normal.

1163
00:52:17.285 --> 00:52:21.095
<00:52:17.285>Yeah. <00:52:17.484>Mm-hmm. <00:52:17.685>So <00:52:17.884>usually <00:52:18.085>we <00:52:18.285>experience <00:52:18.484>latencies <00:52:18.685>between,

1164
00:52:21.315 --> 00:52:23.735
<00:52:21.315>uh, <00:52:21.595>15 <00:52:21.875>and <00:52:22.155>30 <00:52:22.435>seconds <00:52:22.715>mm-hmm.

1165
00:52:23.815 --> 00:52:25.575
<00:52:23.815>So <00:52:24.048>that <00:52:24.281>the <00:52:24.515>code <00:52:24.748>is <00:52:24.981>still <00:52:25.215>readable.

1166
00:52:26.435 --> 00:52:31.135
<00:52:26.435>Um, <00:52:26.610>but <00:52:26.785>what <00:52:26.960>kind <00:52:27.134>or <00:52:27.310>how <00:52:27.485>would <00:52:27.660>you <00:52:27.835>go

1167
00:52:31.515 --> 00:52:33.695
<00:52:31.515>and, <00:52:31.795>uh, <00:52:32.075>tackle <00:52:32.355>this <00:52:32.634>problem <00:52:32.915>so

1168
00:52:33.695 --> 00:52:37.255
<00:52:33.695>that <00:52:33.870>you <00:52:34.045>get <00:52:34.220>the <00:52:34.395>best <00:52:34.570>quality <00:52:34.745>for <00:52:34.920>the <00:52:35.095>person

1169
00:52:37.355 --> 00:52:41.135
<00:52:37.355>who <00:52:37.705>is <00:52:38.055>actually, <00:52:38.405>um, <00:52:38.755>watching?

1170
00:52:41.805 --> 00:52:43.735
<00:52:41.805>Yeah, <00:52:42.271>yeah. <00:52:42.738>Great <00:52:43.205>question.

1171
00:52:44.195 --> 00:52:48.815
<00:52:44.195>Uh, <00:52:44.311>yeah, <00:52:44.428>as <00:52:44.545>I, <00:52:44.661>as <00:52:44.778>I <00:52:44.895>touched <00:52:45.011>on, <00:52:45.128>you <00:52:45.245>know, <00:52:45.361>uh, <00:52:45.478>latency <00:52:45.595>is,

1172
00:52:48.915 --> 00:52:51.215
<00:52:48.915>is <00:52:49.115>always <00:52:49.315>a <00:52:49.515>trade <00:52:49.715>off, <00:52:49.915>uh, <00:52:50.115>of <00:52:50.315>yeah.

1173
00:52:51.215 --> 00:52:52.295
<00:52:51.215>Quality <00:52:51.701>and <00:52:52.187>reliability.

1174
00:52:52.915 --> 00:52:56.205
<00:52:52.915>Um, <00:52:53.148>the <00:52:53.381>world <00:52:53.615>is <00:52:53.848>rapidly <00:52:54.081>changing <00:52:54.315>here,

1175
00:52:56.225 --> 00:52:57.685
<00:52:56.225>and <00:52:56.412>this <00:52:56.600>is <00:52:56.788>something <00:52:56.975>I, <00:52:57.163>I've <00:52:57.351>written <00:52:57.538>about,

1176
00:52:57.785 --> 00:53:00.325
<00:52:57.785>and <00:52:57.960>if <00:52:58.134>you <00:52:58.310>listen <00:52:58.484>to <00:52:58.660>my <00:52:58.835>podcast, <00:52:59.009>you <00:52:59.185>know,

1177
00:53:00.975 --> 00:53:02.205
<00:53:00.975>now's <00:53:01.159>a <00:53:01.344>chance <00:53:01.528>to <00:53:01.712>plug <00:53:01.897>my <00:53:02.082>podcast.

1178
00:53:02.465 --> 00:53:05.125
<00:53:02.465>No, <00:53:02.620>uh, <00:53:02.776>but <00:53:02.931>seriously, <00:53:03.087>listen <00:53:03.242>to <00:53:03.398>the <00:53:03.553>D <00:53:03.709>Mux <00:53:03.865>podcast.

1179
00:53:05.545 --> 00:53:08.245
<00:53:05.545>Um, <00:53:05.825>no, <00:53:06.105>uh, <00:53:06.385>it's <00:53:06.665>something <00:53:06.945>that,

1180
00:53:08.245 --> 00:53:09.725
<00:53:08.245>that <00:53:08.467>is <00:53:08.689>a <00:53:08.911>really <00:53:09.133>hot <00:53:09.355>topic <00:53:09.577>in

1181
00:53:09.725 --> 00:53:11.045
<00:53:09.725>the <00:53:09.923>industry <00:53:10.121>at <00:53:10.319>the <00:53:10.517>moment <00:53:10.715>as <00:53:10.913>well.

1182
00:53:11.305 --> 00:53:13.085
<00:53:11.305>Um, <00:53:11.654>about <00:53:12.004>a <00:53:12.355>year <00:53:12.705>ago,

1183
00:53:13.225 --> 00:53:15.485
<00:53:13.225>it <00:53:13.400>really <00:53:13.575>looked <00:53:13.750>like <00:53:13.924>we <00:53:14.100>were <00:53:14.275>gonna <00:53:14.450>have, <00:53:14.625>uh,

1184
00:53:15.685 --> 00:53:19.165
<00:53:15.685>a <00:53:15.860>low <00:53:16.035>latency <00:53:16.210>streaming <00:53:16.384>technology <00:53:16.560>that <00:53:16.735>we, <00:53:16.910>you <00:53:17.085>know,

1185
00:53:19.235 --> 00:53:23.005
<00:53:19.235>delivered, <00:53:19.410>uh, <00:53:19.585>latencies <00:53:19.760>in <00:53:19.935>the <00:53:20.110>two <00:53:20.285>to <00:53:20.460>five <00:53:20.635>seconds.

1186
00:53:23.385 --> 00:53:25.805
<00:53:23.385>Um, <00:53:23.585>but <00:53:23.785>still <00:53:23.985>had <00:53:24.185>a <00:53:24.385>level <00:53:24.585>of <00:53:24.785>reliability

1187
00:53:26.075 --> 00:53:29.125
<00:53:26.075>that <00:53:26.214>looked <00:53:26.355>a <00:53:26.495>lot <00:53:26.634>like <00:53:26.774>we'd <00:53:26.915>expect <00:53:27.055>from <00:53:27.194>traditional <00:53:27.335>Hhl <00:53:27.475>s

1188
00:53:29.125 --> 00:53:30.365
<00:53:29.125>or <00:53:29.497>EG <00:53:29.868>dash <00:53:30.241>delivery.

1189
00:53:30.905 --> 00:53:34.325
<00:53:30.905>Um, <00:53:31.032>EG <00:53:31.159>Dash <00:53:31.286>has <00:53:31.414>for <00:53:31.541>a <00:53:31.668>while <00:53:31.795>had <00:53:31.923>a <00:53:32.050>low <00:53:32.177>latency <00:53:32.305>mode

1190
00:53:34.325 --> 00:53:35.805
<00:53:34.325>that <00:53:34.658>works <00:53:34.991>really, <00:53:35.323>really <00:53:35.656>well.

1191
00:53:36.345 --> 00:53:37.605
<00:53:36.345>Um, <00:53:37.479>it,

1192
00:53:37.745 --> 00:53:40.885
<00:53:37.745>its <00:53:37.920>deployment <00:53:38.095>has <00:53:38.270>been <00:53:38.444>unfortunately <00:53:38.620>limited <00:53:38.795>a <00:53:38.970>little, <00:53:39.145>uh,

1193
00:53:41.625 --> 00:53:43.445
<00:53:41.625>by <00:53:41.905>the <00:53:42.185>fact <00:53:42.465>it's <00:53:42.745>not <00:53:43.025>platform.

1194
00:53:43.625 --> 00:53:45.845
<00:53:43.625>So <00:53:43.825>a <00:53:44.025>lot <00:53:44.225>of <00:53:44.425>your <00:53:44.625>major <00:53:44.825>sports <00:53:45.025>vendors

1195
00:53:45.985 --> 00:53:49.205
<00:53:45.985>and <00:53:46.160>broadcasters <00:53:46.335>don't <00:53:46.510>want <00:53:46.685>to <00:53:46.860>deliver <00:53:47.035>a <00:53:47.210>mixed <00:53:47.385>experience.

1196
00:53:49.505 --> 00:53:52.525
<00:53:49.505>And <00:53:49.645>because <00:53:49.785>you <00:53:49.925>can't <00:53:50.065>deliver <00:53:50.205>eg <00:53:50.345>dash <00:53:50.485>on, <00:53:50.625>you <00:53:50.765>know, <00:53:50.905>iOS,

1197
00:53:52.785 --> 00:53:55.365
<00:53:52.785>you <00:53:52.912>know, <00:53:53.039>the <00:53:53.166>last <00:53:53.294>thing <00:53:53.421>people <00:53:53.548>wanna <00:53:53.675>do <00:53:53.803>is <00:53:53.930>say, <00:53:54.057>hang <00:53:54.185>on,

1198
00:53:55.485 --> 00:53:57.605
<00:53:55.485>I <00:53:55.685>bought <00:53:55.885>this, <00:53:56.085>I <00:53:56.285>don't <00:53:56.485>know, <00:53:56.685>you <00:53:56.885>know,

1199
00:53:58.125 --> 00:53:59.245
<00:53:58.125>thousand <00:53:58.461>dollars <00:53:58.797>phone, <00:53:59.133>right?

1200
00:53:59.665 --> 00:54:02.925
<00:53:59.665>But <00:53:59.792>I <00:53:59.919>get <00:54:00.046>a <00:54:00.174>worse <00:54:00.301>latency <00:54:00.428>than <00:54:00.555>someone <00:54:00.683>on <00:54:00.810>this, <00:54:00.937>you <00:54:01.065>know,

1201
00:54:02.945 --> 00:54:05.005
<00:54:02.945>$200 <00:54:03.645>Android <00:54:04.345>phone.

1202
00:54:05.305 --> 00:54:07.845
<00:54:05.305>Um, <00:54:05.504>so <00:54:05.705>that <00:54:05.904>has <00:54:06.105>actually <00:54:06.305>hampered <00:54:06.504>the <00:54:06.705>deployment

1203
00:54:07.845 --> 00:54:09.285
<00:54:07.845>of <00:54:08.277>low <00:54:08.709>latency <00:54:09.140>technologies.

1204
00:54:09.905 --> 00:54:12.045
<00:54:09.905>Uh, <00:54:10.105>about <00:54:10.305>a <00:54:10.505>year <00:54:10.705>ago, <00:54:10.905>we <00:54:11.105>were <00:54:11.305>starting

1205
00:54:12.045 --> 00:54:14.725
<00:54:12.045>to <00:54:12.200>close <00:54:12.356>in <00:54:12.511>on <00:54:12.667>a <00:54:12.822>place <00:54:12.978>where, <00:54:13.133>uh, <00:54:13.289>you <00:54:13.445>know,

1206
00:54:14.725 --> 00:54:16.805
<00:54:14.725>it <00:54:14.924>was <00:54:15.125>a <00:54:15.325>open <00:54:15.525>proposal <00:54:15.725>by <00:54:15.924>the <00:54:16.125>guys

1207
00:54:16.805 --> 00:54:18.285
<00:54:16.805>who <00:54:17.249>actually <00:54:17.692>wrote <00:54:18.136>H-L-S-G-S

1208
00:54:18.505 --> 00:54:21.965
<00:54:18.505>for <00:54:18.680>an <00:54:18.855>interchangeable <00:54:19.030>low <00:54:19.205>latency <00:54:19.380>HLS, <00:54:19.555>which <00:54:19.730>is <00:54:19.905>great,

1209
00:54:21.965 --> 00:54:24.565
<00:54:21.965>which <00:54:22.140>had <00:54:22.315>interchangeability <00:54:22.490>with <00:54:22.665>low <00:54:22.840>latency <00:54:23.015>dash <00:54:23.190>as <00:54:23.365>well.

1210
00:54:25.145 --> 00:54:29.965
<00:54:25.145>Um, <00:54:25.285>unfortunately, <00:54:25.425>uh, <00:54:25.565>apple <00:54:25.705>then <00:54:25.845>decided <00:54:25.985>at <00:54:26.125>ww <00:54:26.265>DC <00:54:26.405>last <00:54:26.545>year

1211
00:54:29.985 --> 00:54:34.165
<00:54:29.985>to <00:54:30.125>say, <00:54:30.265>Hey, <00:54:30.405>we're <00:54:30.545>gonna <00:54:30.685>do <00:54:30.825>our <00:54:30.965>own <00:54:31.105>low <00:54:31.245>latency <00:54:31.385>HLS,

1212
00:54:34.165 --> 00:54:35.165
<00:54:34.165>and <00:54:34.465>it's <00:54:34.765>completely <00:54:35.065>different

1213
00:54:35.165 --> 00:54:37.885
<00:54:35.165>to <00:54:35.365>this <00:54:35.565>community <00:54:35.765>specification <00:54:35.965>everyone's <00:54:36.165>been <00:54:36.365>working <00:54:36.565>on.

1214
00:54:38.825 --> 00:54:41.405
<00:54:38.825>So <00:54:38.952>this <00:54:39.079>created <00:54:39.206>a <00:54:39.334>little <00:54:39.461>bit <00:54:39.588>of <00:54:39.715>drama, <00:54:39.843>as <00:54:39.970>you <00:54:40.097>might <00:54:40.225>imagine.

1215
00:54:42.025 --> 00:54:46.445
<00:54:42.025>Um, <00:54:42.165>and, <00:54:42.305>uh, <00:54:42.445>effectively <00:54:42.585>we, <00:54:42.725>we <00:54:42.865>kind <00:54:43.005>of <00:54:43.145>had <00:54:43.285>a <00:54:43.425>series

1216
00:54:46.465 --> 00:54:49.445
<00:54:46.465>of <00:54:46.640>meetings, <00:54:46.815>the, <00:54:46.990>the <00:54:47.165>video <00:54:47.340>streaming <00:54:47.515>community, <00:54:47.690>um, <00:54:47.865>kind

1217
00:54:49.445 --> 00:54:50.725
<00:54:49.445>of, <00:54:49.733>uh, <00:54:50.021>30 <00:54:50.309>of <00:54:50.596>the,

1218
00:54:50.725 --> 00:54:52.805
<00:54:50.725>the <00:54:50.924>biggest <00:54:51.125>video <00:54:51.325>streaming <00:54:51.525>organizations <00:54:51.725>in <00:54:51.924>the <00:54:52.125>world.

1219
00:54:52.865 --> 00:54:55.525
<00:54:52.865>And <00:54:53.004>Apple <00:54:53.145>to <00:54:53.285>say, <00:54:53.424>Hey, <00:54:53.564>there's <00:54:53.705>some <00:54:53.845>stuff <00:54:53.984>in <00:54:54.125>this <00:54:54.265>protocol.

1220
00:54:55.525 --> 00:54:57.725
<00:54:55.525>It's <00:54:55.680>gonna <00:54:55.836>make <00:54:55.991>it <00:54:56.147>really <00:54:56.302>hard <00:54:56.458>to <00:54:56.613>deploy <00:54:56.769>at <00:54:56.925>scale.

1221
00:54:57.945 --> 00:55:02.325
<00:54:57.945>Uh, <00:54:58.085>in <00:54:58.225>particular, <00:54:58.365>it <00:54:58.505>relied <00:54:58.645>heavily <00:54:58.785>on <00:54:58.925>http <00:54:59.065>two <00:54:59.205>push, <00:54:59.345>uh,

1222
00:55:02.335 --> 00:55:06.125
<00:55:02.335>which, <00:55:02.490>uh, <00:55:02.646>while <00:55:02.801>is, <00:55:02.957>is <00:55:03.112>supported <00:55:03.268>well <00:55:03.423>in <00:55:03.579>playback, <00:55:03.735>um,

1223
00:55:07.225 --> 00:55:11.765
<00:55:07.225>is <00:55:07.380>not <00:55:07.536>currently <00:55:07.691>well <00:55:07.847>supported <00:55:08.002>for, <00:55:08.158>uh, <00:55:08.313>delivery <00:55:08.469>over <00:55:08.625>CDNs,

1224
00:55:12.105 --> 00:55:14.365
<00:55:12.105>um, <00:55:12.305>which <00:55:12.505>makes <00:55:12.705>it <00:55:12.905>really <00:55:13.105>hard <00:55:13.305>to <00:55:13.505>scale.

1225
00:55:14.545 --> 00:55:16.245
<00:55:14.545>Uh, <00:55:14.745>was <00:55:14.945>only <00:55:15.145>one <00:55:15.345>CDN <00:55:15.545>at <00:55:15.745>the <00:55:15.945>time

1226
00:55:16.515 --> 00:55:18.405
<00:55:16.515>that <00:55:16.714>could <00:55:16.915>support <00:55:17.115>Apple's <00:55:17.315>approach <00:55:17.515>at <00:55:17.714>the <00:55:17.915>time.

1227
00:55:18.865 --> 00:55:20.685
<00:55:18.865>Um, <00:55:19.020>so <00:55:19.176>we <00:55:19.331>gave <00:55:19.487>a <00:55:19.642>lot <00:55:19.798>of <00:55:19.953>feedback <00:55:20.109>to <00:55:20.265>Apple,

1228
00:55:20.945 --> 00:55:22.005
<00:55:20.945>the <00:55:21.263>whole <00:55:21.581>industry <00:55:21.899>did.

1229
00:55:22.145 --> 00:55:25.445
<00:55:22.145>And <00:55:22.272>Apple, <00:55:22.399>uh, <00:55:22.526>cycled <00:55:22.654>around <00:55:22.781>of <00:55:22.908>us <00:55:23.035>in <00:55:23.163>a <00:55:23.290>couple <00:55:23.417>of <00:55:23.545>meetings,

1230
00:55:25.545 --> 00:55:28.205
<00:55:25.545>uh, <00:55:25.700>one <00:55:25.856>after <00:55:26.011>deux, <00:55:26.167>uh, <00:55:26.322>and <00:55:26.478>one <00:55:26.633>after <00:55:26.789>Mahi <00:55:26.945>video.

1231
00:55:28.825 --> 00:55:30.245
<00:55:28.825>Um, <00:55:29.144>and <00:55:29.464>they <00:55:29.783>actually <00:55:30.103>changed

1232
00:55:30.245 --> 00:55:31.645
<00:55:30.245>their <00:55:30.665>strategy <00:55:31.085>pretty <00:55:31.505>significantly.

1233
00:55:32.025 --> 00:55:35.925
<00:55:32.025>Um, <00:55:32.225>but <00:55:32.425>unfortunately <00:55:32.625>that <00:55:32.825>kind <00:55:33.025>of <00:55:33.225>delayed <00:55:33.425>everything.

1234
00:55:36.025 --> 00:55:37.245
<00:55:36.025>We, <00:55:36.208>we <00:55:36.391>really <00:55:36.574>thought <00:55:36.757>by <00:55:36.940>the <00:55:37.123>end

1235
00:55:37.245 --> 00:55:40.085
<00:55:37.245>of <00:55:37.384>last <00:55:37.525>year <00:55:37.665>we <00:55:37.805>would <00:55:37.944>have <00:55:38.085>a <00:55:38.225>technology <00:55:38.365>that <00:55:38.505>was <00:55:38.645>available

1236
00:55:40.145 --> 00:55:42.445
<00:55:40.145>to <00:55:40.320>the <00:55:40.495>general <00:55:40.670>public <00:55:40.845>that <00:55:41.020>delivered, <00:55:41.195>you <00:55:41.370>know, <00:55:41.545>two

1237
00:55:42.445 --> 00:55:44.125
<00:55:42.445>to <00:55:42.725>five <00:55:43.005>seconds <00:55:43.285>latency <00:55:43.565>at <00:55:43.845>scale.

1238
00:55:44.665 --> 00:55:47.605
<00:55:44.665>Uh, <00:55:44.865>unfortunately, <00:55:45.065>you <00:55:45.265>know, <00:55:45.465>because <00:55:45.665>of <00:55:45.865>these <00:55:46.065>delays

1239
00:55:47.745 --> 00:55:51.165
<00:55:47.745>and <00:55:47.920>changing <00:55:48.095>Apple <00:55:48.270>schedule, <00:55:48.444>honestly, <00:55:48.620>um, <00:55:48.795>means <00:55:48.970>that <00:55:49.145>we,

1240
00:55:51.225 --> 00:55:53.685
<00:55:51.225>we <00:55:51.400>didn't <00:55:51.575>have <00:55:51.750>it <00:55:51.924>last <00:55:52.100>year <00:55:52.275>as <00:55:52.450>an <00:55:52.625>industry.

1241
00:55:54.345 --> 00:55:57.965
<00:55:54.345>And, <00:55:54.472>uh, <00:55:54.599>the <00:55:54.726>good <00:55:54.854>news <00:55:54.981>is <00:55:55.108>that'll <00:55:55.235>be <00:55:55.363>in <00:55:55.490>iOS <00:55:55.617>14, <00:55:55.745>uh,

1242
00:55:57.985 --> 00:55:59.205
<00:55:57.985>and <00:55:58.204>it'll <00:55:58.424>be <00:55:58.643>in <00:55:58.863>Big <00:55:59.083>Sur

1243
00:55:59.305 --> 00:56:02.205
<00:55:59.305>and <00:55:59.444>it'll <00:55:59.585>be <00:55:59.725>in, <00:55:59.865>you <00:56:00.004>know, <00:56:00.145>TV <00:56:00.285>os <00:56:00.424>14 <00:56:00.565>as <00:56:00.705>well,

1244
00:56:02.205 --> 00:56:03.765
<00:56:02.205>which <00:56:02.485>is <00:56:02.765>great <00:56:03.045>for <00:56:03.325>everyone, <00:56:03.605>right?

1245
00:56:03.825 --> 00:56:05.125
<00:56:03.825>So <00:56:04.214>we <00:56:04.605>will <00:56:04.995>at

1246
00:56:05.125 --> 00:56:07.845
<00:56:05.125>that <00:56:05.325>point <00:56:05.525>have <00:56:05.725>a <00:56:05.925>interchangeable <00:56:06.125>live <00:56:06.325>streaming <00:56:06.525>technology,

1247
00:56:08.265 --> 00:56:12.925
<00:56:08.265>but <00:56:08.420>works <00:56:08.576>at <00:56:08.731>scale, <00:56:08.887>um, <00:56:09.042>reliably <00:56:09.198>at <00:56:09.353>scale, <00:56:09.509>hopefully, <00:56:09.665>uh,

1248
00:56:12.995 --> 00:56:16.845
<00:56:12.995>with <00:56:13.150>a <00:56:13.306>latency <00:56:13.461>between, <00:56:13.617>you <00:56:13.772>know, <00:56:13.928>two <00:56:14.083>and <00:56:14.239>five <00:56:14.395>seconds.

1249
00:56:17.125 --> 00:56:20.245
<00:56:17.125>I <00:56:17.405>would <00:56:17.685>say. <00:56:17.965>Um, <00:56:18.245>what, <00:56:18.525>uh,

1250
00:56:21.585 --> 00:56:23.965
<00:56:21.585>is <00:56:21.725>gonna <00:56:21.865>be <00:56:22.005>interesting <00:56:22.145>is <00:56:22.285>see <00:56:22.425>how <00:56:22.565>far <00:56:22.705>people <00:56:22.845>push <00:56:22.985>that.

1251
00:56:24.385 --> 00:56:28.045
<00:56:24.385>Um, <00:56:24.560>it <00:56:24.735>will <00:56:24.910>certainly <00:56:25.085>go <00:56:25.260>down <00:56:25.435>to <00:56:25.610>500 <00:56:25.785>milliseconds.

1252
00:56:28.675 --> 00:56:30.365
<00:56:28.675>Yeah, <00:56:28.908>Whoever <00:56:29.141>you <00:56:29.375>can <00:56:29.608>do <00:56:29.841>that <00:56:30.075>reliably.

1253
00:56:30.875 --> 00:56:32.885
<00:56:30.875>Very <00:56:31.225>different <00:56:31.575>question. <00:56:31.925>Different <00:56:32.275>question.

1254
00:56:32.985 --> 00:56:34.405
<00:56:32.985>So <00:56:33.144>yeah, <00:56:33.304>the <00:56:33.464>world <00:56:33.624>is, <00:56:33.783>the <00:56:33.943>world <00:56:34.103>is <00:56:34.263>changing,

1255
00:56:34.625 --> 00:56:36.325
<00:56:34.625>and <00:56:34.905>that <00:56:35.185>will <00:56:35.465>change, <00:56:35.745>I <00:56:36.025>think.

1256
00:56:36.545 --> 00:56:37.765
<00:56:36.545>Um, <00:56:36.819>a <00:56:37.094>lot <00:56:37.368>of <00:56:37.643>people

1257
00:56:37.765 --> 00:56:40.805
<00:56:37.765>who <00:56:37.920>are <00:56:38.076>using <00:56:38.231>web <00:56:38.387>RTC <00:56:38.542>based <00:56:38.698>technologies <00:56:38.853>now, <00:56:39.009>uh, <00:56:39.165>just

1258
00:56:40.805 --> 00:56:43.725
<00:56:40.805>to <00:56:40.960>get <00:56:41.116>that <00:56:41.271>latency <00:56:41.427>down, <00:56:41.582>don't <00:56:41.738>necessarily <00:56:41.893>need, <00:56:42.049>you <00:56:42.205>know,

1259
00:56:43.905 --> 00:56:45.285
<00:56:43.905>uh, <00:56:44.319>real <00:56:44.733>time <00:56:45.147>interaction.

1260
00:56:45.595 --> 00:56:47.485
<00:56:45.595>They <00:56:45.770>just <00:56:45.944>need, <00:56:46.120>you <00:56:46.294>know, <00:56:46.470>a <00:56:46.645>couple <00:56:46.819>of <00:56:46.995>seconds.

1261
00:56:47.905 --> 00:56:49.685
<00:56:47.905>Um, <00:56:48.138>so <00:56:48.371>yeah, <00:56:48.605>I <00:56:48.838>think <00:56:49.071>that'll <00:56:49.305>change

1262
00:56:49.685 --> 00:56:51.005
<00:56:49.685>the <00:56:49.982>industry, <00:56:50.279>uh, <00:56:50.576>big <00:56:50.873>time.

1263
00:56:51.005 --> 00:56:52.405
<00:56:51.005>So <00:56:51.320>I'm <00:56:51.635>really <00:56:51.950>excited, <00:56:52.265>uh,

1264
00:56:52.405 --> 00:56:53.725
<00:56:52.405>if <00:56:52.574>you <00:56:52.744>wanna <00:56:52.914>hear <00:56:53.083>more <00:56:53.253>about <00:56:53.423>that <00:56:53.593>yet.

1265
00:56:53.745 --> 00:56:56.565
<00:56:53.745>The <00:56:53.884>Dux <00:56:54.025>podcast, <00:56:54.165>the <00:56:54.305>last <00:56:54.444>two <00:56:54.585>episodes, <00:56:54.725>we <00:56:54.865>went <00:56:55.005>into <00:56:55.145>this

1266
00:56:56.625 --> 00:56:58.325
<00:56:56.625>for <00:56:56.858>two <00:56:57.091>straight <00:56:57.325>hours, <00:56:57.558>so <00:56:57.791>if <00:56:58.025>you,

1267
00:56:58.745 --> 00:57:01.085
<00:56:58.745>if <00:56:59.025>you're <00:56:59.305>interested, <00:56:59.585>subscribe, <00:56:59.865>don't <00:57:00.145>forget.

1268
00:57:01.285 --> 00:57:02.285
Subscribe.

1269
00:57:03.685 --> 00:57:08.245
<00:57:03.685>I <00:57:03.884>will, <00:57:04.085>I <00:57:04.285>will. <00:57:04.485>Munks <00:57:04.685>the <00:57:04.884>podcast. <00:57:05.085>Okay.

1270
00:57:08.425 --> 00:57:12.925
<00:57:08.425>Uh, <00:57:08.600>I <00:57:08.775>think <00:57:08.950>Pang <00:57:09.125>already <00:57:09.300>is <00:57:09.475>listening <00:57:09.650>to <00:57:09.825>that.

1271
00:57:13.745 --> 00:57:18.205
<00:57:13.745>Uh, <00:57:13.884>another <00:57:14.025>question, <00:57:14.165>uh, <00:57:14.305>which, <00:57:14.444>uh, <00:57:14.585>came <00:57:14.725>to <00:57:14.865>my <00:57:15.005>mind <00:57:15.145>when,

1272
00:57:18.205 --> 00:57:20.165
<00:57:18.205>uh, <00:57:18.485>you <00:57:18.765>were <00:57:19.045>talking <00:57:19.325>about, <00:57:19.605>uh,

1273
00:57:20.235 --> 00:57:22.565
<00:57:20.235>that <00:57:20.468>you <00:57:20.701>are <00:57:20.935>supporting <00:57:21.168>Video <00:57:21.401>on <00:57:21.635>demand.

1274
00:57:23.025 --> 00:57:27.085
<00:57:23.025>Yep. <00:57:23.200>Um, <00:57:23.375>uh, <00:57:23.550>or <00:57:23.725>let's, <00:57:23.900>let's <00:57:24.075>put <00:57:24.250>that <00:57:24.425>one

1275
00:57:27.085 --> 00:57:30.085
<00:57:27.085>because <00:57:27.318>that's <00:57:27.551>kind <00:57:27.785>of <00:57:28.018>a <00:57:28.251>nice <00:57:28.485>one.

1276
00:57:31.905 --> 00:57:34.165
<00:57:31.905>So <00:57:32.255>Benito <00:57:32.605>wants <00:57:32.955>to, <00:57:33.305>hi.

1277
00:57:34.345 --> 00:57:37.245
<00:57:34.345>Do <00:57:34.578>you <00:57:34.811>have <00:57:35.044>a <00:57:35.278>EU <00:57:35.511>based <00:57:35.745>solution?

1278
00:57:37.645 --> 00:57:40.925
<00:57:37.645>I <00:57:37.845>think <00:57:38.045>this <00:57:38.245>is <00:57:38.445>a <00:57:38.645>security <00:57:38.845>privacy <00:57:39.045>thing.

1279
00:57:41.335 --> 00:57:43.205
<00:57:41.335>Great <00:57:41.615>question. <00:57:41.895>Uh, <00:57:42.175>really <00:57:42.455>good <00:57:42.735>question.

1280
00:57:43.585 --> 00:57:46.885
<00:57:43.585>Uh, <00:57:43.760>I'll <00:57:43.935>ask <00:57:44.110>for <00:57:44.285>more <00:57:44.460>context <00:57:44.635>in <00:57:44.810>a <00:57:44.985>second.

1281
00:57:47.105 --> 00:57:51.285
<00:57:47.105>Uh, <00:57:47.245>the <00:57:47.385>simple <00:57:47.525>answer <00:57:47.665>is, <00:57:47.805>uh, <00:57:47.945>no. <00:57:48.085>We <00:57:48.225>leverage <00:57:48.365>Global <00:57:48.505>CDNs.

1282
00:57:51.465 --> 00:57:54.445
<00:57:51.465>Um, <00:57:51.620>our <00:57:51.776>origin <00:57:51.931>is <00:57:52.087>in <00:57:52.242>the <00:57:52.398>US <00:57:52.553>a <00:57:52.709>right <00:57:52.865>now.

1283
00:57:54.785 --> 00:57:59.325
<00:57:54.785>Um, <00:57:54.924>we <00:57:55.065>do <00:57:55.205>leverage <00:57:55.345>yet <00:57:55.484>global <00:57:55.625>CDNs <00:57:55.765>with <00:57:55.904>caches <00:57:56.045>in <00:57:56.185>region.

1284
00:57:59.625 --> 00:58:01.885
<00:57:59.625>So <00:57:59.858>content <00:58:00.091>does <00:58:00.325>get <00:58:00.558>cashed <00:58:00.791>in <00:58:01.025>eu

1285
00:58:02.105 --> 00:58:04.365
<00:58:02.105>and <00:58:02.338>the <00:58:02.571>performance <00:58:02.805>is <00:58:03.038>good <00:58:03.271>in <00:58:03.505>eu.

1286
00:58:04.745 --> 00:58:08.965
<00:58:04.745>Uh, <00:58:04.872>if <00:58:04.999>your <00:58:05.126>question <00:58:05.254>is <00:58:05.381>based <00:58:05.508>from <00:58:05.635>a, <00:58:05.763>uh, <00:58:05.890>GDPR <00:58:06.017>or <00:58:06.145>privacy

1287
00:58:09.105 --> 00:58:11.245
<00:58:09.105>or <00:58:09.571>compliance <00:58:10.038>perspective, <00:58:10.505>um,

1288
00:58:11.545 --> 00:58:15.365
<00:58:11.545>if <00:58:11.672>you <00:58:11.799>just <00:58:11.926>using <00:58:12.054>our <00:58:12.181>video <00:58:12.308>product, <00:58:12.435>we <00:58:12.563>don't <00:58:12.690>store <00:58:12.817>any <00:58:12.945>PII,

1289
00:58:15.785 --> 00:58:17.645
<00:58:15.785>uh, <00:58:15.984>for <00:58:16.185>example, <00:58:16.384>we <00:58:16.585>don't <00:58:16.785>store <00:58:16.984>IP <00:58:17.185>addresses

1290
00:58:17.645 --> 00:58:19.485
<00:58:17.645>or <00:58:17.845>anything <00:58:18.045>else <00:58:18.245>that <00:58:18.445>can <00:58:18.645>be <00:58:18.845>considered <00:58:19.045>PII.

1291
00:58:19.905 --> 00:58:22.085
<00:58:19.905>So <00:58:20.105>as <00:58:20.305>such, <00:58:20.505>we, <00:58:20.705>we <00:58:20.905>are, <00:58:21.105>you <00:58:21.305>know,

1292
00:58:22.085 --> 00:58:23.725
<00:58:22.085>fundamentally <00:58:22.785>GPR <00:58:23.485>compliant.

1293
00:58:24.025 --> 00:58:25.885
<00:58:24.025>Uh, <00:58:24.225>if <00:58:24.425>you <00:58:24.625>are <00:58:24.825>interested, <00:58:25.025>I'm <00:58:25.225>super <00:58:25.425>happy

1294
00:58:25.885 --> 00:58:26.965
<00:58:25.885>to <00:58:26.079>go <00:58:26.273>into <00:58:26.468>that <00:58:26.662>in <00:58:26.857>detail.

1295
00:58:27.185 --> 00:58:30.685
<00:58:27.185>Uh, <00:58:27.340>our <00:58:27.496>analytics <00:58:27.651>product <00:58:27.807>also <00:58:27.962>does <00:58:28.118>have <00:58:28.273>an <00:58:28.429>extensive, <00:58:28.585>uh,

1296
00:58:30.785 --> 00:58:34.485
<00:58:30.785>set <00:58:30.984>of, <00:58:31.185>uh, <00:58:31.384>data <00:58:31.585>processing <00:58:31.785>addendums <00:58:31.984>for, <00:58:32.185>uh,

1297
00:58:35.025 --> 00:58:37.165
<00:58:35.025>the <00:58:35.225>GDPR <00:58:35.425>and <00:58:35.625>VU <00:58:35.825>in <00:58:36.025>general <00:58:36.225>as <00:58:36.425>well.

1298
00:58:37.385 --> 00:58:40.205
<00:58:37.385>Um, <00:58:37.525>but <00:58:37.665>beyond <00:58:37.805>that, <00:58:37.945>we <00:58:38.085>do <00:58:38.225>obviously <00:58:38.365>wanna <00:58:38.505>build <00:58:38.645>out <00:58:38.785>more

1299
00:58:40.235 --> 00:58:43.285
<00:58:40.235>origins <00:58:40.375>in <00:58:40.515>more <00:58:40.655>regions <00:58:40.795>if <00:58:40.935>you <00:58:41.075>do <00:58:41.215>have <00:58:41.355>a <00:58:41.495>harder <00:58:41.635>requirement

1300
00:58:43.285 --> 00:58:45.165
<00:58:43.285>for <00:58:43.518>not <00:58:43.751>letting <00:58:43.984>your <00:58:44.218>content <00:58:44.451>leave <00:58:44.685>vu.

1301
00:58:45.465 --> 00:58:46.845
<00:58:45.465>Um, <00:58:45.672>for <00:58:45.879>example, <00:58:46.086>if <00:58:46.293>you <00:58:46.500>are <00:58:46.707>working

1302
00:58:46.845 --> 00:58:48.045
<00:58:46.845>with <00:58:47.205>public <00:58:47.565>service <00:58:47.925>broadcasters,

1303
00:58:48.045 --> 00:58:49.445
<00:58:48.045>that <00:58:48.255>can <00:58:48.465>often <00:58:48.675>be <00:58:48.885>a <00:58:49.095>harder <00:58:49.305>requirement.

1304
00:58:49.985 --> 00:58:51.925
<00:58:49.985>Um, <00:58:50.218>so <00:58:50.451>that <00:58:50.685>is <00:58:50.918>absolutely <00:58:51.151>something <00:58:51.385>we're,

1305
00:58:51.925 --> 00:58:54.285
<00:58:51.925>we're <00:58:52.080>interested <00:58:52.236>in <00:58:52.391>doing <00:58:52.547>in, <00:58:52.702>you <00:58:52.858>know, <00:58:53.013>the <00:58:53.169>next, <00:58:53.325>uh,

1306
00:58:54.425 --> 00:58:56.845
<00:58:54.425>the <00:58:54.565>next <00:58:54.705>few <00:58:54.845>months, <00:58:54.985>certainly <00:58:55.125>as <00:58:55.265>we <00:58:55.405>build <00:58:55.545>out <00:58:55.685>the <00:58:55.825>platform.

1307
00:58:57.765 --> 00:59:02.535
<00:58:57.765>Yeah, <00:58:57.940>this <00:58:58.115>actually <00:58:58.290>matches <00:58:58.464>also <00:58:58.640>with <00:58:58.815>my <00:58:58.990>question, <00:58:59.165>uh,

1308
00:59:02.585 --> 00:59:04.975
<00:59:02.585>which <00:59:02.818>was <00:59:03.051>with <00:59:03.285>the <00:59:03.518>video <00:59:03.751>on <00:59:03.985>demand.

1309
00:59:05.115 --> 00:59:08.975
<00:59:05.115>How <00:59:05.254>do <00:59:05.395>you <00:59:05.535>tackle, <00:59:05.674>or <00:59:05.814>how <00:59:05.955>do <00:59:06.095>you <00:59:06.234>answer <00:59:06.375>to <00:59:06.515>security

1310
00:59:09.355 --> 00:59:11.655
<00:59:09.355>and <00:59:09.705>privacy <00:59:10.055>doubts? <00:59:10.405>So <00:59:10.755>on.

1311
00:59:12.145 --> 00:59:14.175
<00:59:12.145>Great <00:59:12.611>question. <00:59:13.078>That's, <00:59:13.545>yeah.

1312
00:59:15.005 --> 00:59:17.095
<00:59:15.005>Well, <00:59:15.205>I <00:59:15.405>think <00:59:15.605>we <00:59:15.805>need <00:59:16.005>to, <00:59:16.205>is <00:59:16.405>typing,

1313
00:59:17.345 --> 00:59:20.055
<00:59:17.345>maybe <00:59:17.578>we <00:59:17.811>need <00:59:18.044>to <00:59:18.278>typing. <00:59:18.511>Yeah, <00:59:18.745>no,

1314
00:59:20.555 --> 00:59:24.485
<00:59:20.555>To <00:59:20.710>touch <00:59:20.866>on <00:59:21.021>social, <00:59:21.177>on <00:59:21.332>security, <00:59:21.488>I <00:59:21.643>guess, <00:59:21.799>um, <00:59:21.955>security

1315
00:59:24.485 --> 00:59:26.405
<00:59:24.485>and <00:59:24.685>video <00:59:24.885>is <00:59:25.085>a, <00:59:25.285>is <00:59:25.485>a <00:59:25.685>fascinating <00:59:25.885>topic,

1316
00:59:26.665 --> 00:59:27.845
<00:59:26.665>uh, <00:59:26.930>of <00:59:27.196>itself <00:59:27.461>as <00:59:27.727>well.

1317
00:59:27.845 --> 00:59:31.205
<00:59:27.845>And <00:59:27.972>again, <00:59:28.099>kind <00:59:28.226>of <00:59:28.354>a <00:59:28.481>topic <00:59:28.608>you <00:59:28.735>could <00:59:28.863>really <00:59:28.990>easily <00:59:29.117>get <00:59:29.245>into

1318
00:59:31.265 --> 00:59:34.485
<00:59:31.265>for <00:59:31.464>hours <00:59:31.665>and <00:59:31.865>hours, <00:59:32.065>um, <00:59:32.265>you <00:59:32.464>know, <00:59:32.665>security

1319
00:59:34.505 --> 00:59:36.925
<00:59:34.505>and <00:59:34.738>video <00:59:34.971>ranges <00:59:35.205>anywhere <00:59:35.438>from, <00:59:35.671>you <00:59:35.905>know,

1320
00:59:36.925 --> 00:59:40.245
<00:59:36.925>the <00:59:37.080>simplest <00:59:37.236>signed <00:59:37.391>your <00:59:37.547>roles <00:59:37.702>for <00:59:37.858>playback <00:59:38.013>all <00:59:38.169>the <00:59:38.325>way

1321
00:59:40.245 --> 00:59:42.405
<00:59:40.245>through <00:59:40.595>to <00:59:40.944>complex <00:59:41.295>DRM <00:59:41.645>strategies.

1322
00:59:42.405 --> 00:59:45.805
<00:59:42.405>When <00:59:42.580>you're <00:59:42.755>dealing <00:59:42.930>with <00:59:43.105>large <00:59:43.280>studios, <00:59:43.455>um, <00:59:43.630>you <00:59:43.805>know,

1323
00:59:45.805 --> 00:59:48.725
<00:59:45.805>often <00:59:45.944>you'll, <00:59:46.085>when <00:59:46.225>you <00:59:46.365>get <00:59:46.504>the <00:59:46.645>content, <00:59:46.785>uh, <00:59:46.924>it'll <00:59:47.065>come <00:59:47.205>with,

1324
00:59:48.785 --> 00:59:52.405
<00:59:48.785>you <00:59:48.924>know, <00:59:49.065>a, <00:59:49.205>a <00:59:49.345>50 <00:59:49.484>page <00:59:49.625>contract <00:59:49.765>from <00:59:49.904>the <00:59:50.045>studio, <00:59:50.185>um,

1325
00:59:52.815 --> 00:59:55.445
<00:59:52.815>where <00:59:52.970>you'll <00:59:53.126>say, <00:59:53.281>oh, <00:59:53.437>hey, <00:59:53.592>you <00:59:53.748>must <00:59:53.903>have, <00:59:54.059>you <00:59:54.215>know,

1326
00:59:55.675 --> 00:59:58.645
<00:59:55.675>wide <00:59:55.815>Vine <00:59:55.955>and <00:59:56.095>Play <00:59:56.235>Ready <00:59:56.375>and <00:59:56.515>this <00:59:56.655>DRM <00:59:56.795>and <00:59:56.935>that <00:59:57.075>DRM,

1327
00:59:58.825 --> 01:00:02.725
<00:59:58.825>and <00:59:58.952>that <00:59:59.079>is <00:59:59.206>a <00:59:59.334>very <00:59:59.461>complex, <00:59:59.588>um, <00:59:59.715>uh, <00:59:59.843>piece <00:59:59.970>of <01:00:00.097>the <01:00:00.225>puzzle.

1328
01:00:03.265 --> 01:00:06.285
<01:00:03.265>Um, <01:00:03.420>overwhelmingly, <01:00:03.576>DRM <01:00:03.731>is <01:00:03.887>overkill. <01:00:04.042>If <01:00:04.198>you <01:00:04.353>don't <01:00:04.509>need <01:00:04.665>it.

1329
01:00:06.285 --> 01:00:07.605
<01:00:06.285>My <01:00:06.582>recommendation <01:00:06.879>is <01:00:07.176>avoid <01:00:07.473>it.

1330
01:00:07.945 --> 01:00:11.125
<01:00:07.945>Um, <01:00:08.145>we <01:00:08.345>use, <01:00:08.545>uh, <01:00:08.745>signed <01:00:08.945>URLs, <01:00:09.145>tokenized <01:00:09.345>URLs,

1331
01:00:11.125 --> 01:00:14.165
<01:00:11.125>and <01:00:11.252>that'll <01:00:11.379>get <01:00:11.506>you <01:00:11.634>a <01:00:11.761>very <01:00:11.888>long <01:00:12.015>way <01:00:12.143>in <01:00:12.270>securing <01:00:12.397>your <01:00:12.525>content

1332
01:00:14.275 --> 01:00:17.205
<01:00:14.275>from <01:00:14.450>a <01:00:14.625>practical <01:00:14.800>perspective, <01:00:14.975>as <01:00:15.150>opposed <01:00:15.325>to <01:00:15.500>from <01:00:15.675>a,

1333
01:00:17.285 --> 01:00:20.605
<01:00:17.285>a <01:00:17.440>box <01:00:17.596>ticking <01:00:17.751>exercise, <01:00:17.907>which <01:00:18.062>honestly, <01:00:18.218>DRM <01:00:18.373>tends <01:00:18.529>to <01:00:18.685>become.

1334
01:00:21.035 --> 01:00:23.805
<01:00:21.035>Yeah. <01:00:21.210>Uh, <01:00:21.384>Benito <01:00:21.560>was <01:00:21.734>doubling <01:00:21.910>down <01:00:22.085>on <01:00:22.259>the <01:00:22.435>question,

1335
01:00:24.025 --> 01:00:26.485
<01:00:24.025>and <01:00:24.258>he <01:00:24.491>says <01:00:24.725>it's <01:00:24.958>about <01:00:25.191>privacy <01:00:25.425>regulation,

1336
01:00:26.785 --> 01:00:28.885
<01:00:26.785>and <01:00:26.960>so <01:00:27.134>he <01:00:27.310>wants <01:00:27.484>to <01:00:27.660>know <01:00:27.835>if <01:00:28.009>it's <01:00:28.185>possible

1337
01:00:28.885 --> 01:00:30.165
<01:00:28.885>to <01:00:29.269>disable <01:00:29.653>the <01:00:30.037>analytics.

1338
01:00:31.005 --> 01:00:32.565
<01:00:31.005>Absolutely, <01:00:31.285>yep. <01:00:31.565>You <01:00:31.845>can <01:00:32.125>disable <01:00:32.405>the

1339
01:00:32.565 --> 01:00:33.885
<01:00:32.565>analytics, <01:00:33.159>uh, <01:00:33.753>completely.

1340
01:00:34.105 --> 01:00:35.565
<01:00:34.105>Uh, <01:00:34.543>it's <01:00:34.981>entirely <01:00:35.419>opt-in.

1341
01:00:35.785 --> 01:00:38.445
<01:00:35.785>The <01:00:35.984>analytics <01:00:36.185>are <01:00:36.384>free <01:00:36.585>and <01:00:36.785>really <01:00:36.984>valuable, <01:00:37.185>uh,

1342
01:00:38.445 --> 01:00:40.445
<01:00:38.445>but <01:00:38.645>you <01:00:38.845>can <01:00:39.045>absolutely <01:00:39.245>disable <01:00:39.445>the <01:00:39.645>analytics <01:00:39.845>entirely.

1343
01:00:40.825 --> 01:00:43.765
<01:00:40.825>Um, <01:00:40.980>and <01:00:41.136>as <01:00:41.291>we <01:00:41.447>don't <01:00:41.602>then <01:00:41.758>store <01:00:41.913>any <01:00:42.069>PII, <01:00:42.225>uh,

1344
01:00:43.785 --> 01:00:45.805
<01:00:43.785>you're <01:00:44.065>pretty <01:00:44.345>simple <01:00:44.625>on <01:00:44.904>a, <01:00:45.185>uh,

1345
01:00:45.805 --> 01:00:47.125
<01:00:45.805>privacy <01:00:46.399>regulation <01:00:46.993>perspective.

1346
01:00:48.075 --> 01:00:50.845
<01:00:48.075>Perfect. <01:00:48.774>So <01:00:49.475>interesting.

1347
01:00:52.345 --> 01:00:55.765
<01:00:52.345>So <01:00:52.520>I <01:00:52.694>think <01:00:52.870>people <01:00:53.044>are <01:00:53.220>a <01:00:53.395>little <01:00:53.569>bit <01:00:53.745>too

1348
01:00:55.765 --> 01:00:56.805
<01:00:55.765>tired <01:00:56.077>to <01:00:56.388>ask <01:00:56.701>questions.

1349
01:00:57.405 --> 01:00:59.525
<01:00:57.405>Yeah, <01:00:57.545>me <01:00:57.685>too. <01:00:57.825>I'm <01:00:57.965>tired. <01:00:58.105>I'm <01:00:58.245>too <01:00:58.385>tired <01:00:58.525>to <01:00:58.665>answer <01:00:58.805>them.

1350
01:00:59.905 --> 01:01:04.805
<01:00:59.905>Uh, <01:01:00.255>it's <01:01:00.605>all <01:01:00.955>good. <01:01:01.305>Okay.

1351
01:01:05.305 --> 01:01:09.685
<01:01:05.305>So, <01:01:05.432>um, <01:01:05.559>that's <01:01:05.686>a <01:01:05.814>maybe <01:01:05.941>also <01:01:06.068>a, <01:01:06.195>a <01:01:06.323>good <01:01:06.450>point <01:01:06.577>to <01:01:06.705>say,

1352
01:01:09.945 --> 01:01:11.125
<01:01:09.945>uh, <01:01:10.299>thank <01:01:10.653>you, <01:01:11.007>Phil.

1353
01:01:11.505 --> 01:01:14.765
<01:01:11.505>Um, <01:01:11.738>also <01:01:11.971>for, <01:01:12.205>uh, <01:01:12.438>putting <01:01:12.671>in, <01:01:12.905>uh,

1354
01:01:14.945 --> 01:01:17.085
<01:01:14.945>the <01:01:15.645>hippopotamus <01:01:16.345>ls.

1355
01:01:17.525 --> 01:01:18.525
<01:01:17.525>I <01:01:18.425>see,

1356
01:01:19.805 --> 01:01:20.885
<01:01:19.805>I <01:01:20.048>was <01:01:20.291>listening, <01:01:20.534>I <01:01:20.777>promise.

1357
01:01:23.625 --> 01:01:25.965
<01:01:23.625>And <01:01:24.091>yeah, <01:01:24.558>I <01:01:25.025>hope

1358
01:01:26.065 --> 01:01:30.125
<01:01:26.065>to <01:01:26.265>see <01:01:26.465>something <01:01:26.665>more <01:01:26.865>in <01:01:27.065>the <01:01:27.265>future, <01:01:27.465>um,

1359
01:01:31.215 --> 01:01:35.285
<01:01:31.215>especially <01:01:31.415>when, <01:01:31.615>uh, <01:01:31.815>maybe <01:01:32.015>we <01:01:32.215>can <01:01:32.415>make, <01:01:32.615>uh,

1360
01:01:35.795 --> 01:01:40.525
<01:01:35.795>when <01:01:35.922>Big <01:01:36.049>SIR <01:01:36.176>and <01:01:36.304>iOS <01:01:36.431>14 <01:01:36.558>comes <01:01:36.685>out, <01:01:36.813>maybe <01:01:36.940>we <01:01:37.067>can <01:01:37.195>like

1361
01:01:41.555 --> 01:01:44.725
<01:01:41.555>grab <01:01:41.730>and <01:01:41.904>revisit <01:01:42.080>the <01:01:42.254>topic <01:01:42.430>if <01:01:42.605>something <01:01:42.779>big <01:01:42.955>changes

1362
01:01:44.905 --> 01:01:46.005
<01:01:44.905>or <01:01:45.235>smaller <01:01:45.565>changes <01:01:45.895>or

1363
01:01:46.565 --> 01:01:47.965
<01:01:46.565>Whatever, <01:01:46.775>we'd <01:01:46.985>love <01:01:47.195>to, <01:01:47.405>that'd <01:01:47.615>be <01:01:47.825>amazing.

1364
01:01:48.515 --> 01:01:51.085
<01:01:48.515>Yeah. <01:01:48.748>In <01:01:48.981>the <01:01:49.214>meantime, <01:01:49.448>I <01:01:49.681>think, <01:01:49.915>uh,

1365
01:01:51.185 --> 01:01:52.645
<01:01:51.185>our <01:01:51.513>communication <01:01:51.842>will <01:01:52.170>be <01:01:52.499>kind

1366
01:01:52.645 --> 01:01:54.605
<01:01:52.645>of <01:01:52.820>one <01:01:52.995>way <01:01:53.170>when <01:01:53.345>I <01:01:53.520>listen <01:01:53.695>to <01:01:53.870>the <01:01:54.045>podcast.

1367
01:01:55.505 --> 01:01:57.605
<01:01:55.505>Ah, <01:01:55.645>well, <01:01:55.785>I'll <01:01:55.925>give <01:01:56.065>you <01:01:56.205>a <01:01:56.345>shout <01:01:56.485>out. <01:01:56.625>Does <01:01:56.765>that <01:01:56.905>help?

1368
01:01:59.105 --> 01:02:03.085
<01:01:59.105>Ooh, <01:01:59.338>ooh. <01:01:59.571>When <01:01:59.805>is <01:02:00.038>the <01:02:00.271>next <01:02:00.505>episode?

1369
01:02:03.785 --> 01:02:06.165
<01:02:03.785>Ooh, <01:02:04.134>I'm <01:02:04.484>recording <01:02:04.835>one <01:02:05.185>tomorrow.

1370
01:02:06.805 --> 01:02:08.925
<01:02:06.805>Actually, <01:02:07.085>I'm <01:02:07.365>recording <01:02:07.645>one <01:02:07.924>now. <01:02:08.205>Tomorrow.

1371
01:02:09.105 --> 01:02:10.925
<01:02:09.105>Uh, <01:02:09.338>this, <01:02:09.571>this <01:02:09.805>time <01:02:10.038>tomorrow <01:02:10.271>I'll <01:02:10.505>be

1372
01:02:10.925 --> 01:02:12.525
<01:02:10.925>recording, <01:02:11.391>uh, <01:02:11.858>an <01:02:12.325>episode.

1373
01:02:12.945 --> 01:02:15.565
<01:02:12.945>Uh, <01:02:13.120>spoiler. <01:02:13.295>It's <01:02:13.470>gonna <01:02:13.645>be <01:02:13.820>about <01:02:13.995>real <01:02:14.170>time <01:02:14.345>video.

1374
01:02:16.025 --> 01:02:19.405
<01:02:16.025>Um, <01:02:16.165>so <01:02:16.305>there <01:02:16.445>you <01:02:16.585>go. <01:02:16.725>So <01:02:16.865>that <01:02:17.005>will <01:02:17.145>be <01:02:17.285>really <01:02:17.425>applicable.

1375
01:02:20.155 --> 01:02:24.765
<01:02:20.155>Yeah, <01:02:20.330>true, <01:02:20.505>true. <01:02:20.680>That. <01:02:20.855>Yeah. <01:02:21.030>So <01:02:21.205>thank <01:02:21.380>you, <01:02:21.555>Phil.

1376
01:02:25.065 --> 01:02:28.605
<01:02:25.065>Um, <01:02:25.240>and <01:02:25.415>for <01:02:25.590>the <01:02:25.765>audience, <01:02:25.940>thank <01:02:26.115>you <01:02:26.290>for <01:02:26.465>listening,

1377
01:02:28.705 --> 01:02:32.605
<01:02:28.705>for <01:02:28.985>asking <01:02:29.265>and, <01:02:29.545>uh, <01:02:29.825>for <01:02:30.105>wanting

1378
01:02:32.665 --> 01:02:34.645
<01:02:32.665>to <01:02:32.945>know <01:02:33.225>everything <01:02:33.505>about <01:02:33.785>streaming <01:02:34.065>video.

1379
01:02:35.345 --> 01:02:37.685
<01:02:35.345>I'm <01:02:35.811>really <01:02:36.278>looking <01:02:36.745>forward

1380
01:02:38.065 --> 01:02:41.165
<01:02:38.065>to <01:02:38.240>all <01:02:38.415>the <01:02:38.590>products <01:02:38.765>I <01:02:38.940>will <01:02:39.115>find <01:02:39.290>on <01:02:39.465>GitHub

1381
01:02:41.385 --> 01:02:45.045
<01:02:41.385>or <01:02:41.560>wherever <01:02:41.735>you <01:02:41.910>put <01:02:42.085>your <01:02:42.260>open <01:02:42.435>source <01:02:42.610>stuff, <01:02:42.785>or

1382
01:02:45.155 --> 01:02:46.155
<01:02:45.155>It's <01:02:45.455>all <01:02:45.755>in <01:02:46.055>GitHub.

1383
01:02:46.715 --> 01:02:48.205
<01:02:46.715>Yeah. <01:02:48.056>Most.

1384
01:02:49.065 --> 01:02:53.725
<01:02:49.065>Um, <01:02:49.172>and <01:02:49.280>now <01:02:49.388>I <01:02:49.495>need <01:02:49.603>to <01:02:49.711>find <01:02:49.818>a <01:02:49.926>strategy, <01:02:50.034>uh, <01:02:50.141>for <01:02:50.249>my <01:02:50.357>boss, <01:02:50.465>how

1385
01:02:53.825 --> 01:02:58.005
<01:02:53.825>to <01:02:53.964>sell <01:02:54.105>him <01:02:54.245>the <01:02:54.384>idea <01:02:54.524>to <01:02:54.665>make <01:02:54.805>our <01:02:54.944>own <01:02:55.085>streaming <01:02:55.225>software.

1386
01:02:58.915 --> 01:03:00.685
<01:02:58.915>Yeah, <01:02:59.615>yeah, <01:03:00.315>Yeah.

1387
01:03:01.585 --> 01:03:04.405
<01:03:01.585>Now <01:03:01.785>I, <01:03:01.985>there <01:03:02.185>is <01:03:02.385>no <01:03:02.585>excuse <01:03:02.785>for <01:03:02.985>me.

1388
01:03:04.475 --> 01:03:06.405
<01:03:04.475>It's <01:03:04.708>only <01:03:04.941>from <01:03:05.174>the <01:03:05.408>other <01:03:05.641>side. <01:03:05.875>Yeah.

1389
01:03:06.585 --> 01:03:08.205
<01:03:06.585>Can <01:03:06.818>make <01:03:07.051>your <01:03:07.285>own <01:03:07.518>Apple <01:03:07.751>TV <01:03:07.985>app

1390
01:03:08.345 --> 01:03:09.525
<01:03:08.345>puking, <01:03:08.699>you <01:03:09.053>know, <01:03:09.407>everything.

1391
01:03:09.955 --> 01:03:14.605
<01:03:09.955>Yeah. <01:03:10.154>Yeah. <01:03:10.355>I'm, <01:03:10.555>I'm, <01:03:10.755>uh, <01:03:10.955>I'm <01:03:11.154>also, <01:03:11.355>uh,

1392
01:03:14.725 --> 01:03:19.205
<01:03:14.725>thinking <01:03:14.958>about <01:03:15.191>this <01:03:15.424>whole <01:03:15.658>flatter <01:03:15.891>thing, <01:03:16.125>maybe

1393
01:03:20.185 --> 01:03:21.645
<01:03:20.185>we <01:03:20.513>should <01:03:20.842>dive <01:03:21.170>into <01:03:21.499>that.