lisamelton / video_transcoding

Tools to transcode, inspect and convert videos.
MIT License
2.39k stars 160 forks source link

AOM AV1 Codec #201

Closed damorrison closed 6 years ago

damorrison commented 6 years ago

Hi Don,

I was just wondering your thoughts on the newly agreed AOM AV1 codec, which seems to have a lot of support from the major streaming players.

Is it likely to have a place inside handbrake/ffmpeg and your scripts for archival, or is it more for the streaming world?

lisamelton commented 6 years ago

@damorrison Thanks for asking this here instead of Twitter. :) There's still not enough room in a tweet to respond properly to a question like this.

I haven't seen any AV1 content yet. I don't even know where any samples are. Since VLC 3.0 can actually decode an AV1 bitstream you would think the Alliance for Open Media would make samples available on their website but, alas, they don't seem to understand marketing at all. This does not bode well.

So I can't comment on the quality of AV1 compared to HEVC or even AVC (H.264). But you should know that I don't consider HEVC a clear improvement over AVC in terms of quality, at least with the x265 encoder available to me now. But it's possible other HEVC encoders do produce better quality than AVC. I just haven't seen them yet.

However, HEVC can deliver similar quality to AVC at significantly lower bitrates, even with x265. And AV1 is supposed to match the efficiency of HEVC. But, again, I can't confirm that's the case yet.

The big advantage with AV1 is the royalty-free license. HEVC is a bag of broken glass as far as licensing goes. I'm not even sure current implementations are entirely legal. So we're all hoping for AV1 to succeed and at least give us an alternative to HEVC.

Will an AV1 encoder make it into FFmpeg and HandBrake via LibAV or some other library? Eventually. Even the big players in the streaming world use FFmpeg so they will likely help make this happen.

But here's the problem---the current reference encoder for AV1 is an order of magnitude slower than the typical HEVC encoder. And most HEVC encoders are at least twice as slow as AVC encoders.

So, it's going to take awhile before AV1 encoding is practical for anyone in production, even big streaming operations with enough hardware to significantly raise the temperature of the earth.

Right now using HEVC is not really practical for home transcoders, even those with the latest multi-core hardware. So using AV1 to transcode your entire disc collection won't be happening anytime soon. Not unless the developers kick the optimization work into high gear.

There's also the problem of playback. Sure, VLC 3.0 can decode AV1. But can an Apple TV, Roku or other streaming device? Not as far as I know. I haven't heard any plans for that yet. I'm sure it's coming but, again, not anytime soon.

BTW, there's no such thing as an "archival" transcoding, at least when you're using lossy encoders. Your "archival" version is your original. That's why you should never delete your originals.

Lossy transcoding is best thought of as a way to make something smaller and more portable. And hopefully good enough quality to be mistaken for the original. But never think of lossy transcoding as a way to replace your original.

This is why my goal, especially with my --quick and --veryquick options, is to make the process of producing your transcodings as fast as possible without sacrificing more quality than necessary.

I hope that answers your question. Thanks for letting me blather! :)

lisamelton commented 6 years ago

@damorrison Did my long, rambling response answer your question sufficiently? If so, can we close this now?

damorrison commented 6 years ago

It seems it's still very early days for AV1. I was almost expecting that now the standard has been agreed we'd see a lot more tools being made ready for it but it seems not.

I did build the AV1 encoder from their website, but have yet to successfully build anything with it (i expect it doesn't come with a decoder, so needs uncompressed video as a source). I'll try and uncompress a clip or two but my MBP I have here over the Easter weekend doesn't have a huge amount of space to play with so not sure I'll manage it until after the break.

We can close this now, and maybe reopen in another couple of months when the tools start arriving.

On 31 March 2018 at 16:01, Don Melton notifications@github.com wrote:

@damorrison https://github.com/damorrison Did my long, rambling response answer your question sufficiently? If so, can we close this now?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/donmelton/video_transcoding/issues/201#issuecomment-377699086, or mute the thread https://github.com/notifications/unsubscribe-auth/AAYJDduHyAlN6JiR6ioYsLvwmiFkh44uks5tj5pGgaJpZM4TBkHk .

-- Kind regards, Dave

lisamelton commented 6 years ago

@damorrison I'll close this now but you should really open a new issue with the FFmpeg or HandBrake teams. There's nothing I can do until those projects implement and/or include an AV1 encoder.

ghost commented 6 years ago

as of now ffmpeg 4.0 supports av1 via libaom

lisamelton commented 6 years ago

@ggrats Unfortunately, decoding and encoding with libaom are not enabled by default in FFmpeg 4.0 and there doesn't appear a way to enable them via Homebrew build options. Unless, of course, you know of a way to do that.

ghost commented 6 years ago

I just compiled libaom and ffmpeg with --enable-libaom, but 1 minute of encode time for h265 is about 50 hours for av1 so not sure it's worth it to anyone.. yet (maybe?) I've never used homebrew so no idea

lisamelton commented 6 years ago

@ggrats The Homebrew script hasn't been updated yet.

And, yes, libaom is a completely impractical implementation at the moment. See my earlier rant in this very issue. :)