Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > New and alternative video codecs

Reply
 
Thread Tools Search this Thread Display Modes
Old 14th September 2018, 09:07   #941  |  Link
SmilingWolf
I am maddo saientisto!
 
SmilingWolf's Avatar
 
Join Date: Aug 2018
Posts: 78
Quote:
Originally Posted by Nintendo Maniac 64 View Post
Now I'm a bit out-of-the-loop, but I couldn't help but notice that YouTube-DL was using the .MP4 extension for AV1 downloads - is that in fact correct behavior? (and no, I don't mean AVC1, otherwise my Xeon would have been playing back the videos easy-peasy).
I can only answer to this part: the ISO-BMFF bindings for AV1 have been finalized first (just a few days ago in fact), while the Matroska/WebM ones are still WIP

So MP4-only for the time being

Also:
GCC 8.2, static builds, 32/64bits, CONFIG_LOWBITDEPTH=1
av1-1.0.0-577-g8ae39302e: https://mega.nz/#!14REmAwB!AO8Sta2C3...KVcSKPnnuyEOeI
SmilingWolf is offline   Reply With Quote
Old 14th September 2018, 09:11   #942  |  Link
marcomsousa
Registered User
 
Join Date: Jul 2018
Posts: 51
Quote:
Originally Posted by Nintendo Maniac 64 View Post
I just did some performance testing with the 1080p 30fps AV1 encode of the Gus Kenworthy & Tom Wallisch X Games Slopestyle GoPro Preview video in MPC-HC v1.8.1 x64 with its built-in LAVfilters
I was able to play 1080p with MPC-HC v1.8.1 x64 in real time, with some hitches in middle part of the video.
CPU at 62%
Intel Core i7-8550U (Kaby Lake-R U4+2)

With ffplay.exe 20180912 I play this 1080p video, realy realy slow, but play well the 720p video.


Quote:
Originally Posted by Nintendo Maniac 64 View Post
Now I'm a bit out-of-the-loop, but I couldn't help but notice that YouTube-DL was using the .MP4 extension for AV1 downloads - is that in fact correct behavior?
It's correct, since webm support for av1 isn't finalized. Also youtube-dl download what youtube give, and Youtube have av1 in mp4 container with mp4 schema (av01.0.05M.08).

Last edited by marcomsousa; 14th September 2018 at 10:43.
marcomsousa is offline   Reply With Quote
Old 14th September 2018, 10:59   #943  |  Link
SmilingWolf
I am maddo saientisto!
 
SmilingWolf's Avatar
 
Join Date: Aug 2018
Posts: 78
Quote:
Originally Posted by marcomsousa View Post
With ffplay.exe 20180912 I play this 1080p video, realy realy slow, but play well the 720p video.
ffplay 20180912 is, for whatever reason, a very poor version to test with. Don't know if it depends on the aom library revision used, on the ffmpeg revision, or something in the middle, but on my system it performs at half the perf on my own minimal ffmpeg+aom build

CPU: Intel i7-4770 @ 3.4 GHz

Zeranoe build:
Code:
# ffmpeg -threads 4 -i "Gus Kenworthy & Tom Wallisch X Games Slopestyle GoPro Preview.1080.mp4" -benchmark -f null -
ffmpeg version N-91931-gb69ea742ab Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20180813
[libaom-av1 @ 0000000000485ac0] 1.0.0-507-g5d963cb57
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Gus Kenworthy & Tom Wallisch X Games Slopestyle GoPro Preview.1080.mp4':
frame= 1736 fps= 18 q=-0.0 Lsize=N/A time=00:00:57.92 bitrate=N/A speed=0.602x
video:909kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
bench: utime=95.473s stime=0.187s rtime=96.195s
bench: maxrss=234036kB
My own:
Code:
# ./ffmpeg -threads 4 -i "Gus Kenworthy & Tom Wallisch X Games Slopestyle GoPro Preview.1080.mp4" -benchmark -f null -
ffmpeg version N-91943-g1b98bfb932 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20180913
[libaom-av1 @ 0000000000338500] 1.0.0-577-g8ae39302e
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Gus Kenworthy & Tom Wallisch X Games Slopestyle GoPro Preview.1080.mp4':
frame= 1736 fps= 37 q=-0.0 Lsize=N/A time=00:00:57.92 bitrate=N/A speed=1.24x
video:909kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
bench: utime=98.234s stime=1.076s rtime=46.544s
bench: maxrss=272452kB
SmilingWolf is offline   Reply With Quote
Old 14th September 2018, 12:09   #944  |  Link
Mr_Khyron
Member
 
Mr_Khyron's Avatar
 
Join Date: Nov 2002
Location: Sweden
Posts: 106
http://download.opencontent.netflix.com/?prefix=AV1/
Quote:
************** Netflix AV1 Encodes Readme **************************************

This is the readme for the Netflix AV1 Encodes.

The assets covered in this readme can be browsed on the Netflix OpenContent
bucket here:
http://download.opencontent.netflix.com/?prefix=AV1/

Each asset has its license posted to its main directory in the file license.txt.

********** Downloading with AWS CLI ********************************************

You can download single files directly through your web browser on the
OpenContent page, but for large files and long frame sequence, you may wish to
use command line tools such as aws cli.
Detailled instructions are posted here:
http://download.opencontent.netflix....ets/README.txt

********** Encoding and Packaging **********************************************

The IVF files were produced using AOM aomenc (Libaom v1.0) using 2-pass, CQP,
tiles on higher resolutions, and Film Grain. Additionally, the following
parameters were used for all encodes:
--passes=2 --fpf=twopassStats --i420 --profile=0 --arnr-maxframes=7
--arnr-strength=5 --lag-in-frames=25 --aq-mode=0 --bias-pct=100
--minsection-pct=1 --maxsection-pct=10000 --end-usage=q --min-q=0 --max-q=63
--input-bit-depth=[8|10] --cpu-used=1 --auto-alt-ref=1 --max-gf-interval=12
--min-gf-interval=[4|5|6] --frame-parallel=0 --threads=8
--tile-columns=[1|2|4] --ivf

The IVF files were then packaged into (non-fragmented and non-encrypted) MP4
files conforming to https://aomediacodec.github.io/av1-isobmff/using
GPAC's MP4Box (GPAC version 0.7.2-DEV-rev654-gb6f7409ce-master) as follows:

MP4Box -add input.ivf output.mp4

********************************************************************************

Last updated: 2018 Sept 4
Copyright NETFLIX INC.
100 Winchester Circle, Los Gatos, CA 95032, USA
Mr_Khyron is offline   Reply With Quote
Old 14th September 2018, 12:34   #945  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,451
Screenshots 8 vs 10 bit (8 bit has 40% more bitrate):
Netflix Chimera 8 bit
Netflix Chimera 10 bit

Is this an inherent problem of AV1 8 bit or just because it isn't very tuned yet (bitrate allocation, aq, psy)? Though 10 bit encode also has some problems, those "boxes" on the power lines between the two skyscrapers on the left go missing. Then again 10 bit was given much lower bitrate here ..

Last edited by sneaker_ger; 14th September 2018 at 12:39.
sneaker_ger is offline   Reply With Quote
Old 14th September 2018, 12:43   #946  |  Link
MoSal
Registered User
 
Join Date: Jun 2013
Posts: 82
Quote:
Originally Posted by TD-Linux View Post
ffmpeg bug, should be fixed in newer builds of mpv:+ffmpeg: https://git.ffmpeg.org/gitweb/ffmpeg...0015c26f4b09ba
That's not the (only) issue. Note the decoding bottleneck in this sample five seconds in, at the scene change.
__________________
saldl: a command-line downloader optimized for speed and early preview.
MoSal is offline   Reply With Quote
Old 14th September 2018, 12:48   #947  |  Link
marcomsousa
Registered User
 
Join Date: Jul 2018
Posts: 51
Quote:
Originally Posted by SmilingWolf View Post
Zeranoe build:
Code:
libaom-av1 @ 0000000000485ac0] 1.0.0-507-g5d963cb57
My own:
Code:
[libaom-av1 @ 0000000000338500] 1.0.0-577-g8ae39302e
ffmpeg/Zeranoe build don't have the 70 optimization commits that you have in libaom-av1.

ffmpeg-20180913-1b98bfb-win64

Code:
ffmpeg -threads 4 -i 1080.mp4  -benchmark -f null -
ffmpeg version N-91943-g1b98bfb932 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20180813
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
  libavutil      56. 19.101 / 56. 19.101
  libavcodec     58. 30.100 / 58. 30.100
  libavformat    58. 18.100 / 58. 18.100
  libavdevice    58.  4.103 / 58.  4.103
  libavfilter     7. 31.100 /  7. 31.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
  libpostproc    55.  2.100 / 55.  2.100
[libaom-av1 @ 000001e19c898940] 1.0.0-507-g5d963cb57
Stream mapping:
  Stream #0:0 -> #0:0 (av1 (libaom-av1) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6av01mp41
    encoder         : Lavf58.18.100
    Stream #0:0(und): Video: wrapped_avframe, yuv420p, 1920x1080, q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default)
    Metadata:
      creation_time   : 2018-09-12T19:11:12.000000Z
      handler_name    : ISO Media file produced by Google Inc. Created on: 09/12/2018.
      encoder         : Lavc58.30.100 wrapped_avframe
frame= 1736 fps= 19 q=-0.0 Lsize=N/A time=00:00:57.92 bitrate=N/A speed=0.637x
video:909kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
bench: utime=88.703s stime=0.938s rtime=90.919s
bench: maxrss=233580kB

Last edited by marcomsousa; 14th September 2018 at 12:59.
marcomsousa is offline   Reply With Quote
Old 14th September 2018, 13:51   #948  |  Link
SmilingWolf
I am maddo saientisto!
 
SmilingWolf's Avatar
 
Join Date: Aug 2018
Posts: 78
Sure, which was one of the options considered in my post. The 20180913 build with the current ffmpeg HEAD (91943-g1b98bfb932) wasn't out when I tested, so I couldn't be sure.
Still, to double performance in just about 8 days (Zeranoe aom revision: 20180906-5d963cb) is really a LOT, especially considering a lot of the commits are either bugfixes or encoding-related.

Turns out the commit that really made the difference is f820da0 - Turn on the row-based multi-thread decoder by default.

Code:
# time ./aomdec.850e126ac.exe --threads=4 -o /dev/null "Gus Kenworthy & Tom Wallisch X Games Slopestyle GoPro Preview.1080.ivf"

real    1m0,929s
user    0m0,000s
sys     0m0,000s

# time ./aomdec.f820da02b.exe --threads=4 -o /dev/null "Gus Kenworthy & Tom Wallisch X Games Slopestyle GoPro Preview.1080.ivf"

real    0m37,947s
user    0m0,000s
sys     0m0,000s
SmilingWolf is offline   Reply With Quote
Old 14th September 2018, 14:59   #949  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 5,903
New uploads:

AOM v1.0.0-577-g8ae39302e noVO (MSYS2; MinGW32: GCC 7.3.0 / MinGW64: GCC 8.2.0 with -fno-tree-slp-vectorize)
AOM v1.0.0-577-g8ae39302e (MSYS2; MinGW32: GCC 7.3.0 / MinGW64: GCC 8.2.0) – no crash in 2-pass for me

rav1e 0.1.0 (1fa32bb / 2018-09-14) (MSYS2; MinGW32: GCC 7.3.0 / MinGW64: GCC 8.2.0)
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid

Last edited by LigH; 23rd September 2018 at 17:42.
LigH is offline   Reply With Quote
Old 14th September 2018, 16:12   #950  |  Link
birdie
.
 
birdie's Avatar
 
Join Date: Dec 2006
Posts: 135
AV1 in MP4 has been standardized: https://cdn.rawgit.com/AOMediaCodec/...0.0/index.html
birdie is offline   Reply With Quote
Old 14th September 2018, 16:49   #951  |  Link
Tommy Carrot
Registered User
 
Tommy Carrot's Avatar
 
Join Date: Mar 2002
Posts: 852
Thanks Ligh and Smilingwolf for the builds. For some reason, Smilingwolf's build is considerably faster (finished the same encode in 40 minutes vs 67). I used your unpatched build, Ligh, and 64 bit versions. I don't know if this happens because of difference in the compiler settings, or because Smilingwolf sets CONFIG_LOWBITDEPTH=1. The outputs are identical.

Last edited by Tommy Carrot; 14th September 2018 at 16:53.
Tommy Carrot is offline   Reply With Quote
Old 14th September 2018, 20:42   #952  |  Link
Nintendo Maniac 64
Registered User
 
Nintendo Maniac 64's Avatar
 
Join Date: Nov 2009
Location: Northeast Ohio
Posts: 407
Quote:
Originally Posted by marcomsousa View Post
It's correct, since webm support for av1 isn't finalized. Also youtube-dl download what youtube give, and Youtube have av1 in mp4 container with mp4 schema (av01.0.05M.08).
Again, kind of out-of-the-loop, but since AV1 will support MP4 and WebM unlike VP8/9, one has to wonder which container would be "better?"

(I would imagine that AV1 in MP4 would have better compatibility on Apple devices in the future, but I wasn't really concerned about the difference in support as so much if either of the MP4 or WebM containers are objectively "better" on a technological level than the other).
Nintendo Maniac 64 is offline   Reply With Quote
Old 14th September 2018, 20:52   #953  |  Link
mzso
Registered User
 
Join Date: Oct 2009
Posts: 838
Quote:
Originally Posted by Nintendo Maniac 64 View Post
Again, kind of out-of-the-loop, but since AV1 will support MP4 and WebM unlike VP8/9, one has to wonder which container would be "better?"

(I would imagine that AV1 in MP4 would have better compatibility on Apple devices in the future, but I wasn't really concerned about the difference in support as so much if either of the MP4 or WebM containers are objectively "better" on a technological level than the other).
I don't think that mp4 store opus/vorbis for one. Probably the most efficient lossy audio codecs.
mzso is offline   Reply With Quote
Old 14th September 2018, 20:58   #954  |  Link
Nintendo Maniac 64
Registered User
 
Nintendo Maniac 64's Avatar
 
Join Date: Nov 2009
Location: Northeast Ohio
Posts: 407
Quote:
Originally Posted by marcomsousa View Post
CPU at 62%
Intel Core i7-8550U
Interesting how both of our CPUs have the exact same 4c/8t configuration, yet you're seeing more than 2x the CPU utilization than I am...


Mathmatically that would mean that you're utilizing at least 5 threads, which would equal out to being something like 4 cores and 1 SMT thread.

I do know that that my Nehalem predates AVX and that newer CPUs also have stronger SMT (this is particularly true with Zen cores), so I've got to wonder if something between those two variables is resulting in AV1 utilizing multiple threads much better on your Kabylake i7 than it does on my Nehalem Xeon.

I mean, I know that Sky/Kaby/Coffee lake will have anywhere from 30% to 50% higher single core IPC than Nehalem, but I wouldn't think that would account for any difference in how many cores are being utilized at any given time (outside of SMT threads being used, but I'm not even seeing any utilization on my fourth hardware core let alone SMT).

Last edited by Nintendo Maniac 64; 14th September 2018 at 21:11.
Nintendo Maniac 64 is offline   Reply With Quote
Old 14th September 2018, 21:54   #955  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,451
Quote:
Originally Posted by mzso View Post
I don't think that mp4 store opus/vorbis for one.
http://opus-codec.org/docs/opus_in_isobmff.html
sneaker_ger is offline   Reply With Quote
Old 14th September 2018, 22:55   #956  |  Link
mzso
Registered User
 
Join Date: Oct 2009
Posts: 838
Quote:
Originally Posted by sneaker_ger View Post
Quote:
Version 0.6.8 (incomplete)

last updated: April 28, 2016
So, not done yet. If it'll ever be.
mzso is offline   Reply With Quote
Old 15th September 2018, 04:31   #957  |  Link
Nintendo Maniac 64
Registered User
 
Nintendo Maniac 64's Avatar
 
Join Date: Nov 2009
Location: Northeast Ohio
Posts: 407
Well then, as someone with much more expertise in audio than video, Opus not being compatible with MP4 is a big win for WebM in my book.

...unless you do streaming in the same manner that YouTube does whereby you just deliver completely independent streams for audio and video, therefore allowing you to use MP4 and WebM streams concurrently (sometimes a recently-uploaded video will have VP9 video encodes but only AAC audio encodes for whatever reason; here's an example video of such that has VP9 video yet only AAC audio as of this comment).
Nintendo Maniac 64 is offline   Reply With Quote
Old 15th September 2018, 07:38   #958  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,518
Quote:
Originally Posted by Nintendo Maniac 64 View Post
Well then, as someone with much more expertise in audio than video, Opus not being compatible with MP4 is a big win for WebM in my book.

...unless you do streaming in the same manner that YouTube does whereby you just deliver completely independent streams for audio and video, therefore allowing you to use MP4 and WebM streams concurrently (sometimes a recently-uploaded video will have VP9 video encodes but only AAC audio encodes for whatever reason; here's an example video of such that has VP9 video yet only AAC audio as of this comment).
So - speaking from the perspective of an OTT operator, having separate audio and video files is quite common for both HLS and DASH. This is basically mandatory the second you want to offer more than one audio track (e.g. multiple languages or 2.0 vs 5.1 etc).

I believe YouTube uses DASH by default on modern browsers. I know you can do fMP4 and webm via DASH but I didn't realize you could mix both in a DASH manifest, but YouTube is clearly doing this with their AV1 + Opus streams.

I do imagine that YouTube's JavaScript player is quite specialized though. I wouldn't expect this to work OOTB on other DASH clients like a Roku or something like dash.js (even if the underlying audio / video decoders supported AV1 and Opus) - but then again I've never tried
Blue_MiSfit is offline   Reply With Quote
Old 15th September 2018, 12:59   #959  |  Link
benwaggoner
Moderator
 
Join Date: Jan 2006
Location: Portland, OR
Posts: 2,928
Quote:
Originally Posted by mzso View Post
I don't think that mp4 store opus/vorbis for one. Probably the most efficient lossy audio codecs.
xHE-AAC is really very good and going to be widely adopted in the mobile ecosystem. Similar mixed voice/other encoding like Opus. significantly better quality <24 Kbps in my limited testing.

As for container, WebM and MKV just aren't used for mainstream commercial content or streaming outside of YouTube. MP4 has a huge and mature ecosystem that is already deployed, and there's nothing about WebM that would justify the cost of switching ALL those components to ones that support WebM. There are so many components for transport, muxing, demuxing, encryption, decryption, fragmentation, ALL of which would have to be updated for WebM to be viable. All it takes is a few legacy-but-supported devices that can't use WebM to keep an organization from even contemplating switching. And even if all the components were updated, what would switching from MP4 improve?

I can't imagine any container format replacing MPEG-4 for at least a decade. If new container features are needed, they'll most likely be done as an official extension of MP4 by MPEG.
__________________
Ben Waggoner
Principal Video Specialist, Amazon Prime Video

My Compression Book
benwaggoner is offline   Reply With Quote
Old 15th September 2018, 15:10   #960  |  Link
mzso
Registered User
 
Join Date: Oct 2009
Posts: 838
@benwaggoner
Well, I for one don't care at all about <100kbps crappines whatever the codec may be.
mzso is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 00:25.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.