HTML5 Video implementation improvements (codec and video output)




9 years ago
9 years ago


(Reporter: Jimmy Happy, Unassigned)


Firefox Tracking Flags

(Not tracked)




9 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5

Currently, Firefox only implements OGG Vorbis as the primary
codec for the HTML5 <video tag. However, Youtube only wants to encode
the video into H.264. Safari and Chrome already (or will) implement H.264 

That leaves 3 choices:
  1) Don't implement H.264, wait until Youtube encodes the videos to OGG
  2) Implement H.264 silently, but don't push it. (As in don't release
     a Firefox with H.264 support.) Wait for Youtube to encode
     videos to OGG. (If not, implement.)
  3) Implement H.264 immediately. Don't wait for Youtube to change.

I would prefer option 2, since it lets Firefox keep up, but
not let the open video part down. **

So where do we get the codec from?
FFMPEG. FFMPEG is a project widely known, and is used in many
applications for video decoding (and encoding).

There is one problem though - H.264 is patented
(one reason I would wait and see for Youtube).

FFMPEG describes the legal issues here:

Strangely enough, Google Chrome will use FFMPEG in their browser for video decoding. I would wait and see, since Google/Youtube may adapt Theora as a

Apple's Safari implements their own Quicktime library, which they purchased 
the software rights to use the MPEG and H.264 libraries.

You can talk to the FFMPEG developers about their library and the legal issues
that surround it, and they might help you.

That's all for codecs. 

The current method of displaying video is not efficient.
For some computers, it may work, but others will have choppy video.

The solution is accelerated video output.
Accelerated video output is where the video is sent to
the video card directly, instead of going through the
normal display method.

For Linux, there are quite a few. Here are the commonly used ones:
 - XVideo (default)
 - GL (OpenGL 1)
 - GL2 (OpenGL 2)
 - X11 (standard, nearly no acceleration)
For Windows:
 - DirectX (obviously)
 - DirectX 3D
 - OpenGL
 - GDI
 - Video Card Memory
For Mac OS X:
 - CoreVideo
 - Quartz

These options SHOULD be placed in the Options dialog, in the Advanced
section. Since each computer has a different video configuration,
the option should be changeable.
So who will implement it? You can ask MPlayer and VLC for help.

If you're lucky, they may code the video output stuff for you.
They probably (at least) will help you develop the video outputs.

** For the video codecs, I would prefer Theora.
There's no patenting issues with it. 
Theora, by all means, is not as good as H.264.
However, if the Theora codec developers get serious and
improve the codec to the point it meets or exceeds
H.264's quality and features, there will be no reason
to not include it in the HTML5 specification.
If Theora can be improved a lot, and (maybe)
redesigned, it will happen.
XVid is also an option.... but is based from MPEG4
specs, and is subject to patents.

Reproducible: Always

Steps to Reproduce:
Actual Results:  

Expected Results:  


Comment 1

9 years ago
Closing this bugs as invalid, as it touches many other bugs together.

- implementing H264 : that belongs to the various blogs, websites, newsgroups, etc ... This is a location for filing bugs, not for a discussion. And yes, everybody already knows about all these options.

- the different backend implementations are bugs 422540 for GStreamer, bug 435298 for QuickTime, bug 435339 for DirectShow
Last Resolved: 9 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.