This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

When will the AV1 codec be implemented in Hybrid?
#1
Please, read the 'Infos needed to fix&reproduce bugs,..'-sticky before you post about a problem.

Hello Selur!

As you know , the AV1 codec is considered the most state-of-art high tech codec.

It is implemented in FFMPEG a long time ago: https://trac.ffmpeg.org/wiki/Encode/AV1

When will the Hybrid adopt it?

Thank you!
Reply
#2
I already have support for it, but atm. I'm reluctaned to release that support since:

a. it's slow as hell (even when using rav1e instead of aomenc)
b. mkv doesn't support it, so no container to put it into atm. (support for av1 inside mkv hasn't been finalized/finished/...), so it would be video only output atm.

-> I will probably release a version with av1 support once mkvtoolnix supports it (and libav supports mkv(av1))

Cu Selur
Reply
#3
(01.10.2018, 18:18)Selur Wrote: I already have support for it, but atm. I'm reluctaned to release that support since:

a. it's slow as hell (even when using rav1e instead of aomenc)
b. mkv doesn't support it, so no container to put it into atm. (support for av1 inside mkv hasn't been finalized/finished/...), so it would be video only output atm.

-> I will probably release a version with av1 support once mkvtoolnix supports it (and libav supports mkv(av1))

Cu Selur
Interestingly Potplayer adopted it: https://www.videohelp.com/software/PotPlayer
Reply
#4
mkv(av1) or just av1 as ivf ?
Because the later could be supported by anything that uses latest libav. (works in MPC-HC)
Last thing I know is that Mosu (the author of mkvtoolnix) stated this:
Quote:mkvmerge's AV1 support isn't usable yet. Neither does it conform to the finalized AV1 bitstream spec, nor had the AV1-in-Matroska specs been finalized when I last worked on that code (which was several weeks ago).
source: https://forum.doom9.org/showthread.php?p...ost1852503
On the 22th of September.
Since Mosu is the main constant supporter of Matroska that I know of, I wait till be gives his 'okay' and support the format in mkvtoolnix.

Cu Selur
Reply
#5
(01.10.2018, 19:29)Selur Wrote: mkv(av1) or just av1 as ivf ?
Because the later could be supported by anything that uses latest libav. (works in MPC-HC)
Last thing I know is that Mosu (the author of mkvtoolnix) stated this:
Quote:mkvmerge's AV1 support isn't usable yet. Neither does it conform to the finalized AV1 bitstream spec, nor had the AV1-in-Matroska specs been finalized when I last worked on that code (which was several weeks ago).
source: https://forum.doom9.org/showthread.php?p...ost1852503
On the 22th of September.
Since Mosu is the main constant supporter of Matroska that I know of, I wait till be gives his 'okay' and support the format in mkvtoolnix.

Cu Selur

Hi!

I downloaded av1 files from elecrad's homepage in webm format. Can you download and try them? here are they https://www.elecard.com/videos

Latest Chrome dev and Firefox dev browsers can play them too.
Reply
#6
I'll look into it whether using ffmpeg for muxing to 'webm' and restricting AV1 to webm would be a solution.
+ I'll ask Mosu whether the av1 inside webm specificaiton is finished.

Cu Selur
Reply
#7
Smile 
(02.10.2018, 16:42)Selur Wrote: I'll look into it whether using ffmpeg for muxing to 'webm' and restricting AV1 to webm would be a solution.
+ I'll ask Mosu whether the av1 inside webm specificaiton is finished.

Cu Selur

Hi.

I'm a happy user of FFmpeg (CLI) on Windows 10 built by the media autobuild suite and recently I decided to try encoding an AV1 video in FFmpeg via libaom-av1 and in rav1e (since FFmpeg does not wrap rav1e yet) respectively.

First off, FFmpeg encoding via libaom-av1 to an mkv file fails for no reason ― it simply stops encoding. (My FFmpeg build is the most recent one.) I faithfully followed the AV1 encoding guide on the FFmpeg site but it doesn't help. I didn't know why but I found out from your post that mkvmerge doesn't support muxing an AV1 IVF file as of yet.

Second, rav1e encoding succeeded but converting the resulting IVF file to the webm format via FFmpeg fails. I don't have any idea how I can do this. BTW, the IVF file plays OK in MPC-HC albeit not seekable.

Seeing the Hybrid update notice yesterday that the new version 2018.10.07.1 includes 'AV-1 support through aomenc and rav1e, I decided to see how Hybrid does it. And the result is that Hybrid does it successfully in rav1e encoding albeit in the webm format only but fails (muxing crashes) as well in aomenc encoding.

My aomenc encoding setting that caused crashing is as follows:

[Image: sVfeZzah.png]

And the error message:

[Image: gMxa1Ofh.png]

But I think it's pretty weird since the rav1e encoding succeeds using almost the same muxing process. Anyway, here's my question:

According to the Jobs log, it seems that Hybrid muxes the resulting IVF file from rav1e encoding to an avi file via FFmpeg and gets a webm file. How is that possible and what command line does Hybrid use?

Second, the resulting webm file from rav1e encoding has the Hybrid version info as a 'Movie Name' metadata field.

[Image: rWzvxxjl.png]

I think you should change the metadata field name for the Hybrid version info. Smile
Reply
#8
will look into the tagging issue.
Command lines can be will be shown in the debug log. (and partially in the job queue if you disable 'Jobs->Queue->Minimize job command lines')

Cu Selur
Reply
#9
Had a quick look at the muxing call used by Hybrid, which is for example:
ffmpeg -y  -i "E:\Temp\test_05_23_16_7610_01.ivf" -vcodec copy -map 0:0  -aspect 181818:100000 -metadata handler_name="Hybrid 2018.10.09.1" -r 25 "E:\Output\test.webm"
since Hybrid sets the 'handler_name' tag I suspect that the problem with the tagging is probably a MediaInfo bug with webm.
Since calling
ffmpeg -i "E:\Output\test.webm"
on the output, properly shows
[libaom-av1 @ 0000024874713980] 1.0.0-708-gdf7131064
Input #0, matroska,webm, from 'e:\Output\test.webm':
  Metadata:
    HANDLER_NAME    : Hybrid 2018.10.09.1
    ENCODER         : Lavf58.18.104
  Duration: 00:00:17.16, start: 0.000000, bitrate: 240 kb/s
    Stream #0:0: Video: av1 (Main), yuv420p(tv), 640x352, SAR 1:1 DAR 20:11, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      DURATION        : 00:00:17.160000000
At least one output file must be specified

Regarding the aomenc crash I would need a more details (read sticky), probably a debug output level 9 of the job processing.

Cu Selur
Reply
#10
(10.10.2018, 05:30)Selur Wrote: Had a quick look at the muxing call used by Hybrid, which is for example:
ffmpeg -y  -i "E:\Temp\test_05_23_16_7610_01.ivf" -vcodec copy -map 0:0  -aspect 181818:100000 -metadata handler_name="Hybrid 2018.10.09.1" -r 25 "E:\Output\test.webm"
since Hybrid sets the 'handler_name' tag I suspect that the problem with the tagging is probably a MediaInfo bug with webm.
Since calling
ffmpeg -i "E:\Output\test.webm"
on the output, properly shows
[libaom-av1 @ 0000024874713980] 1.0.0-708-gdf7131064
Input #0, matroska,webm, from 'e:\Output\test.webm':
 Metadata:
   HANDLER_NAME    : Hybrid 2018.10.09.1
   ENCODER         : Lavf58.18.104
 Duration: 00:00:17.16, start: 0.000000, bitrate: 240 kb/s
   Stream #0:0: Video: av1 (Main), yuv420p(tv), 640x352, SAR 1:1 DAR 20:11, 25 fps, 25 tbr, 1k tbn, 1k tbc (default)
   Metadata:
     DURATION        : 00:00:17.160000000
At least one output file must be specified

Regarding the aomenc crash I would need a more details (read sticky), probably a debug output level 9 of the job processing.

Cu Selur

Thanks a million.

Now I finally figured out why the rav1e encoded IVF file couldn't be converted to the webm/mkv format via the media-autobuild_suite built FFmpeg. The libaom ver. 1.0.0-729-ged7d0d090 was the culprit. It's the most recent version available the most recent version that doesn't conflict with libvpx as of now (see m-a_s issue #954 that I opened to report this bug), and the media-autobuild_suite script fetches this version in order to build aomenc.exeaomdec.exe along with libaom-av1 in FFmpeg. It is, however, problematic and the resulting libaom-av1 constantly fails to decode AV1 frames. And since I couldn't encode an AV1 mkv video from an AVC mp4 file via libaom-av1, it is certain that this version of libaom-av1 has an issue with encoding as well.

I downloaded the Zeranoe version, and it solves all the problems. There, the libaom-av1 version is 1.0.0-691-gbb8157b89.

Since Hybrid 2018.10.07.1 succeeds in rav1e encoding including webm conversion while failing in aomenc encoding and webm conversion ― based on my test ― I suspect that the libaom version that Hybrid adopts has an issue with encoding while it is OK with decoding. Well, this is just my guess, and I need to double check this with further testing. I will set up the debug mode and set the output level to 9 and report the log file if the problem persists.

(BTW, I can see that the libaom version of Hybrid 2018.10.07.1 is 1.0.0-708-gdf7131064. Correct me if I'm wrong.)

And about the metadata tag, I could confirm that it was a MediaInfo bug. Thanks for letting me know.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)