| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Video On The Web, will HTML Save Us

Page history last edited by Jake Stevenson 13 years, 11 months ago

Video is a complex subject, and being able to provide video that will work for a majority of end users is not an easy task.  When dealing with video, you have to consider the following:

 

Containers  Video Codec  Audio Codecs 
AVI  Vorbis  WAV 
MKV  H264  Mp3 
M4V  Quicktime  Ogg/Vorbis 
FLV  DivX/XVid  AAC 
MOV  VP8 (Rumored Google codec)  AC3 
OGG    DTA (DTS) 
     

 

Containers

The container is a package that can encapsulate multiple video and audio streams.  Some examples of contianer formats are:

DIVX, OGG, MP4, MKV

 

Video Encoding

The encoding is the algorithm used to store the video information. Some examples of video encoding algorithms are:

Quicktime, Theora, h.264

 

Audio Encoding

Audio may also be stored in different encoding formats.  Some examples of audio encodings are:

mp3, aac, wav

 

Distribution Protocol

In addition to worrying about the format of the file, there are also multiple methods of distribution.  These can include:

HTTP Progressive Download

PseudoStreaming over HTTP

RTP/RTSP streaming

RTMP

 

Players

Most players like Windows Media Player rely on a codec being installed on the operating system to be able to decode the videos.  There are a variety of players which may be embedded in a web page:

Windows Media Player

VLC

QuickTime

Silverlight

Flash

 

Encoding Tools:

You'll want a flexible tool to encode your files in whatever format and container you choose.  Some suggestions:

ffmpeg -- command-line

x264 -- command-line

handbrake -- GUI on top of x264

 

Hardware Accelleration

For any sort of high-definition video, hardware acceleration is a must.  This requires the proper combination of video drivers and player software on the client PC.  Silverlight and the newer flash betas have this built-in.

 

Streaming Servers

HTTP based streaming and pseudostreaming are available on almost any web server. 

RTP/RTSP/RTMP require a special streaming server.  These include

Flash Media Server

Red5

Wowza

 

IPhone is special!

IPhone has a special way of handling streams -- HTTP segmenting.  It requires a properly-encoded video be run through a "segmenter" which splits it up into many small video files and generates a single .m3u8 playlist.  The iphone uses that playlist to determine which of the segments to download.

 

Current HTML5 Pitfals

Different browsers support different containers and encodings.  Firefox currently only supports Ogg Theora/Vorbis.  Chrome supports those + MP4/h.264. 

Only supports http progressive download.  There is no real "streaming" support.

Does not include any sort of "automatic-switching" of bitrates to adjust quality/bandwidth like Silverlight.

 

One more thing -- Recording

Currently the only way to record from a webcam within a video page (ala chat-roullette) is to use flash with the approriate backend server.  Flash will capture and encode with Sorenson as it streams to the server. 

Silverlight4 does not currently support this, but may have enough access to the underlying OS to allow for it with some work.

 

Comments (0)

You don't have permission to comment on this page.