Silvia Pfeiffer & Tom Green, “Beginning HTML5 Media”, book, APRESS, June 2015, http://www.apress.com/9781484204610.
When I set out to improve accessibility on the Web and we started developing WebSRT – later to be renamed to WebVTT – I needed an example video to demonstrate captions / subtitles, audio descriptions, transcripts, navigation markers and sign language.
I needed a freely available video with spoken text that either already had such data available or that I could create it for. Naturally I chose “Elephants Dream” by the Orange Open Movie Project , because it was created under the Creative Commons Attribution 2.5 license.
As it turned out, the Blender Foundation had already created a collection of SRT files that would represent the English original as well as the translated languages. I was able to reuse them by merely adding a WEBVTT header.
Then there was a need for a textual audio description. I read up on the plot online and finally wrote up a time-alignd audio description. I’m hereby making that file available under the Create Commons Attribution 4.0 license. I’ve added a few lines to the medadata headers so it doesn’t confuse players. Feel free to reuse at will – I know there are others out there that have a similar need to demonstrate accessibility features.
Putting that talk together reminded me about how far we have come in the last year both with the progress of WebRTC, its standards and browser implementations, as well as with our own small team at NICTA and our rtc.io WebRTC toolbox.
One of the most exciting opportunities is still under-exploited: the data channel. When I talked about the above slide and pointed out Bananabread, PeerCDN, Copay, PubNub and also later WebTorrent, that’s where I really started to get Web Developers excited about WebRTC. They can totally see the shift in paradigm to peer-to-peer applications away from the Server-based architecture of the current Web.
For those that – like myself – found it difficult to understand how to tap into the sheer power of npm modules as a font end developer, simply use browserify. npm modules are prepared following the CommonJS module definition spec. Browserify works natively with that and “compiles” all the dependencies of a npm modules into a single bundle.js file that you can use on the front end through a script tag as you would in plain HTML. You can learn more about browserify and module definitions and how to use browserify.
So, I hope you enjoy rtc.io and I hope you enjoy my slides and large collection of interesting links inside the deck, and of course: enjoy WebRTC! Thanks to Damon, JEeff, Cathy, Pete and Nathan – you’re an awesome team!
On a side note, I was really excited to meet the author of browserify, James Halliday (@substack) at WDCNZ, whose talk on “building your own tools” seemed to take me back to the times where everything was done on the command-line. I think James is using Node and the Web in a way that would appeal to a Linux Kernel developer. Fascinating!!
If you’ve been interested in WebRTC and haven’t lived under a rock, you will know about Google’s open source testing application for WebRTC: AppRTC.
When you go to the site, a new video conferencing room is automatically created for you and you can share the provided URL with somebody else and thus connect (make sure you’re using Google Chrome, Opera or Mozilla Firefox).
We’ve been using this application forever to check whether any issues with our own WebRTC applications are due to network connectivity issues, firewall issues, or browser bugs, in which case AppRTC breaks down, too. Otherwise we’re pretty sure to have to dig deeper into our own code.
Now, AppRTC creates a pretty poor quality video conference, because the browsers use a 640×480 resolution by default. However, there are many query parameters that can be added to the AppRTC URL through which the connection can be manipulated.
Here are my favourite parameters:
- hd=true : turns on high definition, ie. minWidth=1280,minHeight=720
- stereo=true : turns on stereo audio
- debug=loopback : connect to yourself (great to check your own firewalls)
- tt=60 : by default, the channel is closed after 30min – this gives you 60 (max 1440)
For example, here’s how a stereo, HD loopback test would look like: https://apprtc.appspot.com/?r=82313387&hd=true&stereo=true&debug=loopback .
This is not the limit of the available parameter, though. Here are some others that you may find interesting for some more in-depth geekery:
- ss=[stunserver] : in case you want to test a different STUN server to the default Google ones
- ts=[turnserver] : in case you want to test a different TURN server to the default Google ones
- tp=[password] : password for the TURN server
- audio=true&video=false : audio-only call
- audio=false : video-only call
- audio=googEchoCancellation=false,googAutoGainControl=true : disable echo cancellation and enable gain control
- audio=googNoiseReduction=true : enable noise reduction (more Google-specific parameters)
- asc=ISAC/16000 : preferred audio send codec is ISAC at 16kHz (use on Android)
- arc=opus/48000 : preferred audio receive codec is opus at 48kHz
- dtls=false : disable datagram transport layer security
- dscp=true : enable DSCP
- ipv6=true : enable IPv6
Have fun playing with the main and always up-to-date WebRTC application: AppRTC.
UPDATE 12 May 2014
AppRTC now also supports the following bitrate controls:
- arbr=[bitrate] : set audio receive bitrate
- asbr=[bitrate] : set audio send bitrate
- vsbr=[bitrate] : set video receive bitrate
- vrbr=[bitrate] : set video send bitrate
Example usage: https://apprtc.appspot.com/?r=&asbr=128&vsbr=4096&hd=true
An introduction into the WebVTT (Web Video Text Tracks) file format and how it is used to provide captions, subtitles and text video descriptions for HTML5 video. WebVTT is a simple line-based file format, which is currently in development at the WHATWG and under consideration for native implementation in the major browsers using the HTML5 element.
You would think that publishing video on the Web – YouTube-style – is all that is required to make video a core part of the Web. Far from it: work on accessibility features and synchronization of several audio and video resources has been ongoing since video was introduced into HTML5. One browser has rolled out preview support for captions, others are close. But other features are still in the works. Silvia will give us an update about the latest developments at the WHATWG and W3C.