Hacker News new | ask | show | jobs
by gnur 4450 days ago
I don't know the details, but how is the quality on both? I can image that webm takes longer, but if it creates a file that has a higher visual quality for the same filesize that is great. I think nearly all streaming providers would take an increase in processing time for a decrease in bandwith, while quality stays the same..
3 comments

I'm pretty sure h264 is the superior codec in all regards except for that pesky license issue. It encodes faster and creates smaller files that look better. From (lead x264 developer and HN user) DarkShikari[1]:

"Overall, VP8 appears to be significantly weaker than H.264 compression-wise. The primary weaknesses mentioned above are the lack of proper adaptive quantization, lack of B-frames, lack of an 8×8 transform, and non-adaptive loop filter. With this in mind, I expect VP8 to be more comparable to VC-1 or H.264 Baseline Profile than with H.264. Of course, this is still significantly better than Theora, and in my tests it beats Dirac quite handily as well.

...

Finally, the problem of patents appears to be rearing its ugly head again. VP8 is simply way too similar to H.264: a pithy, if slightly inaccurate, description of VP8 would be “H.264 Baseline Profile with a better entropy coder..."

I won't pretend to know what all of those terms mean off the top of my head, but if the lead x264 developer sees absolutely no technical advantage in WebM vs. h264, that sounds pretty damning to me.

As for why x264 encodes h264 so much faster than ffmpeg or whatever encodes WebM, the simplest explanation would be that there is much greater demand for an optimized h264 encoder. WebM has some admittedly large users (Wikimedia Foundation, Youtube for browsers with no h264 support and no flash player, and now 4chan), but they're still vanishingly small in comparison to the users of h264 ("the entire video industry").

[1] http://x264dev.multimedia.cx/archives/377

I think you are underplaying the support of H.264. Almost every single camera (video or photo), console, handheld device, browser, editing tool, effects tool, phone, tablet, OS, digital video player, website available today supports H.264.

People complain about it being closed but actually it is far more open on the hardware side since each of the big manufacturers are part of the H.264 process.

If I came across as downplaying the adoption of H.264, it wasn't my intent.

Pretty sure Firefox doesn't support H.264 out of the box on Linux, though. I couldn't wrangle the gstreamer plugin into displaying it either.

h.264 has several profiles. Support for particular profiles in hardware varies. If you want to do low latency encoding with a hardware "h.264 encoder" for video conferencing you may find that you're out of luck. Since there is only one VP8 profile, hardware VP8 means hardware VP8.
> a pithy, if slightly inaccurate, description of VP8 would be “H.264 Baseline Profile with a better entropy coder..."

and

> Overall, VP8 appears to be significantly weaker than H.264 compression-wise.

don't seem to go very well together, to me. How can VP8 be a better H.264 and worse than H.264 at the same time?

H.264 defines a number of profiles and levels that define the acceptable tools from the overall suite that a conforming decoder implementation can rely on. "Baseline" uses very few of these tools, relative to the more sophisticated profiles.
Oh, I didn't know about that, thanks!
They are of comparable quality. I find the h264 slightly better, but I have not done extensive testing.

I did try dropping the quality significantly with my webm profile, but it had a trivial performance improvement.

My hypothesis for the performance disparity is that h264 encoding is hardware accelerated and webm is not.
x264 does not use GPU hardware, so they're both using just the CPU. WebM fails to use more threads or 256bit or 128bit registers correctly.
recent versions of x264 do use GPU hardware via OpenCL, but the performance gain is questionable.

http://www.planet3dnow.de/vbulletin/showthread.php/406096-Be...