I have compiled with both aom 3.8 and aom 3.6 patches without errors. The rendering test results are: aom 3.4: 34 fps aom 3.6: 39 fps aom 3.8: 48 fps The speed increase is noticeable. The videos result visually of the same quality. aom 3.4 and 3.6 give files of equal size while aom 3.8 gives a slightly smaller file.
чт, 21 дек. 2023 г., 18:32 Andrea paz via Cin <[email protected]>:
I have compiled with both aom 3.8 and aom 3.6 patches without errors. The rendering test results are:
aom 3.4: 34 fps aom 3.6: 39 fps aom 3.8: 48 fps
The speed increase is noticeable. The videos result visually of the same quality. aom 3.4 and 3.6 give files of equal size while aom 3.8 gives a slightly smaller file.
Thanks. So, according to this upgrade to 3.8 is more desirable than just to 3.6. Not sure if keeping both versions (one perfixed with _ underscore) in src actually good idea size-wide? Hopefully if ppl can get cingg from internet for self-build they also can get libaom and flip the switch in configure.ac ? So may be just keeping prefixed patches for both versions and having line in BUILDING explainin configure.ac edit (well, we do not have BUILDING yet as txt file in our root, but hopefully this can be fixed easily by copypasting manual section on this ?)
well, then if you have libaom 3.8 system-wide may be you should try to disable internal libaom and build with system version? look at bld/termux.bld script for example .... I also have idea about integrating libsvtav1 but keep it disabled by default (due to high cmake requrements) --
Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin
Despite the fact that libaom v3.8.0 does not build on Ubuntu 16, I have tested it on 5 different levels of operating systems and found no issues AND you all have been testing it A LOT ! For Ubuntu 16 and earlier cmake versions the --enable-libaom=no added to the bld.sh configure line allows for CinGG to build without libaom. So the user who does their own builds can either (1) update cmake, (2) build libaom v3.4.0 by changing configure.ac AND deleting libaom parts in ./thirdparty/src, or (3) build without it as --enable-libaom-no on the bld.sh configure line. Any objections to checking libaom v3.8.0 into GIT for wide usage? Andrew, what about TERMUX? I have compiled with both aom 3.8 and aom 3.6 patches without errors.
The rendering test results are:
aom 3.4: 34 fps aom 3.6: 39 fps aom 3.8: 48 fps
The speed increase is noticeable. The videos result visually of the same quality. aom 3.4 and 3.6 give files of equal size while aom 3.8 gives a slightly smaller file.
Thanks. So, according to this upgrade to 3.8 is more desirable than just to 3.6. Not sure if keeping both versions (one perfixed with _ underscore) in src actually good idea size-wide? Hopefully if ppl can get cingg from internet for self-build they also can get libaom and flip the switch in configure.ac ? So may be just keeping prefixed patches for both versions and having line in BUILDING explainin configure.ac edit (well, we do not have BUILDING yet as txt file in our root, but hopefully this can be fixed easily by copypasting manual section on this ?)
вс, 31 дек. 2023 г., 03:38 Phyllis Smith <[email protected]>:
Despite the fact that libaom v3.8.0 does not build on Ubuntu 16, I have tested it on 5 different levels of operating systems and found no issues AND you all have been testing it A LOT ! For Ubuntu 16 and earlier cmake versions the --enable-libaom=no added to the bld.sh configure line allows for CinGG to build without libaom. So the user who does their own builds can either (1) update cmake, (2) build libaom v3.4.0 by changing configure.ac AND deleting libaom parts in ./thirdparty/src, or (3) build without it as --enable-libaom-no on the bld.sh configure line.
Any objections to checking libaom v3.8.0 into GIT for wide usage? Andrew, what about TERMUX?
Few days ago it was working, I might need another tweak for static termux bld script due to always rolling nature of Termux but I think I'll deal with it on my end (and send patches).
I have compiled with both aom 3.8 and aom 3.6 patches without errors.
The rendering test results are:
aom 3.4: 34 fps aom 3.6: 39 fps aom 3.8: 48 fps
The speed increase is noticeable. The videos result visually of the same quality. aom 3.4 and 3.6 give files of equal size while aom 3.8 gives a slightly smaller file.
Thanks. So, according to this upgrade to 3.8 is more desirable than just to 3.6. Not sure if keeping both versions (one perfixed with _ underscore) in src actually good idea size-wide? Hopefully if ppl can get cingg from internet for self-build they also can get libaom and flip the switch in configure.ac ? So may be just keeping prefixed patches for both versions and having line in BUILDING explainin configure.ac edit (well, we do not have BUILDING yet as txt file in our root, but hopefully this can be fixed easily by copypasting manual section on this ?)
Any objections to checking libaom v3.8.0 into GIT for wide usage? Andrew, what about TERMUX? One possible reason not to upgrade liabaom to 3.8 is that it gets you even more work. The performance advantage over version 3.4 is there (in my tests it is a good advantage, in Terje's there is not much difference), but these become insignificant compared to using svt. With this the advantage is huge. So one could neglect libaom and keep only av1-svt.
вс, 31 дек. 2023 г., 19:36 Andrea paz <[email protected]>:
Any objections to checking libaom v3.8.0 into GIT for wide usage? Andrew, what about TERMUX? One possible reason not to upgrade liabaom to 3.8 is that it gets you even more work. The performance advantage over version 3.4 is there (in my tests it is a good advantage, in Terje's there is not much difference), but these become insignificant compared to using svt. With this the advantage is huge. So one could neglect libaom and keep only av1-svt.
just to say libaom supports more more pixelformats, and also compress betters (even if MUCH slower).
It seems best to keep libraries updated if at all possible, so I checked into GIT, libaom version 3.8.0. It seems to have performance advantages worthwhile. Again as a reminder, default cmake version on Ubuntu 16 is too low to compile but can workaround as mentioned earlier (--enable-libaom=no on the configure line). Will be verifying av1-svt work in the next few days as time permits. One possible reason not to upgrade liabaom to 3.8 is that it gets you
even more work. The performance advantage over version 3.4 is there (in my tests it is a good advantage, in Terje's there is not much difference), but these become insignificant compared to using svt. With this the advantage is huge. So one could neglect libaom and keep only av1-svt.
Hi all! What is libaom for? Which encoder? Thanks! IgorBeg Il 31/12/2023 20:26, Phyllis Smith via Cin ha scritto:
It seems best to keep libraries updated if at all possible, so I checked into GIT, libaom version 3.8.0. It seems to have performance advantages worthwhile. Again as a reminder, default cmake version on Ubuntu 16 is too low to compile but can workaround as mentioned earlier (--enable-libaom=no on the configure line).
пн, 1 янв. 2024 г., 11:39 Igor BEGHETTO via Cin <[email protected]
:
Hi all! What is libaom for? Which encoder? Thanks!
AV1 - new libre codec, relatively fast on decompression via dav1d but quite slow at encoding. Mostly used by Netflix/google and other big players where some bandwidth savings big enough for offsetting bigger server or new GPU needed for fast encode.
IgorBeg
Il 31/12/2023 20:26, Phyllis Smith via Cin ha scritto:
It seems best to keep libraries updated if at all possible, so I checked into GIT, libaom version 3.8.0. It seems to have performance advantages worthwhile. Again as a reminder, default cmake version on Ubuntu 16 is too low to compile but can workaround as mentioned earlier (--enable-libaom=no on the configure line). -- Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin
Thanks Andrew! I have never used av1 in CinelerraGG until now. For Archive I use FFV1 (level=1; GOP=1) in the AVI container using FFmpeg by CLI. Before I used HuffYUV. IgorBeg (OS: UbuntuStudio_16.04-64bit) Il 01/01/2024 09:46, Andrew Randrianasulu ha scritto:
AV1 - new libre codec, relatively fast on decompression via dav1d but quite slow at encoding.
Mostly used by Netflix/google and other big players where some bandwidth savings big enough for offsetting bigger server or new GPU needed for fast encode.
Thanks Andrea! Unfortunately these types of codecs are cpu consuming on my old systems. Instead, "m2ts" codec is very good! IgorBeg Il 02/01/2024 10:40, Andrea paz ha scritto:
I have never used av1 in CinelerraGG until now. For Archive I use FFV1 Be careful, though. AV1 is not an archive codec, but a competitor to Hevc...
What kind of video/properties did you test with?
I used: 1- Two h264 (mp4) files queued. 2- EXR image sequence. No filter or editing action. Rendering preset: av1.webm. I did not change any parameters, leaving everything to default. @Andrew I don't understand how to use system libaom. I had stuck to using system ffmpeg by disabling the whole "thirdparty".
чт, 21 дек. 2023 г., 19:56 Andrea paz via Cin <[email protected]>:
What kind of video/properties did you test with?
I used: 1- Two h264 (mp4) files queued. 2- EXR image sequence. No filter or editing action.
I think Terje was interesting in image dimensions of source video ? In my very limited testing speed was inverse proportional to horizontal size ...i.e. 640*xxx was rendering twice as fast as 1280*xxx at 16:9 image proportions ...
Rendering preset: av1.webm. I did not change any parameters, leaving everything to default.
@Andrew I don't understand how to use system libaom. I had stuck to using system ffmpeg by disabling the whole "thirdparty".
Well, I think we better to clarify that --without-Piece disables part of cingg AND internal version of library (AND system wide linking?) so, --without-lv2 disables any attempt at use lv2 support code. --disable-Piece AND --with-Piece only disables building internal library version part, leaving it up to system to provide headers and libs. so you can specify BOTH --with-lv2 and --disable-lv2 and this will mean "use system version of lv2" -( sadly currently not working on Phyllis's Fedora multiarch system ?) --disable-Piece AND --without-Piece disables both building of int. copy and linking/using of this code part --disable-libdav1d will turn off building internal copy of libdav1d but you can still pass flags enabling use of system libdav1d. Issues is a bit complicated by fact that some libs needed for 'cin' executable, and some indirectly for libav* libraries. So, for ffmpeg-support libs you need additional env variables for letting it use system components. There are variable (like auto) in configure.ac block for many libraries, so default state does not require unreasonably long string of --with-* and --enable-* configure arguments. At least this is my understanding of difference between --with-something, --enable-something, --without-something and --disable-something. --
Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin
Den 21.12.2023 18:19, skrev Andrew Randrianasulu via Cin:
чт, 21 дек. 2023 г., 19:56 Andrea paz via Cin <[email protected]>:
> What kind of video/properties did you test with?
I used: 1- Two h264 (mp4) files queued. 2- EXR image sequence. No filter or editing action.
I think Terje was interesting in image dimensions of source video ? In my very limited testing speed was inverse proportional to horizontal size ...i.e. 640*xxx was rendering twice as fast as 1280*xxx at 16:9 image proportions ...
Yes, I thought of the output of the streams from ffprobe -hide_banner av1_output file Stream # ......
Rendering preset: av1.webm. I did not change any parameters, leaving everything to default.
@Andrew I don't understand how to use system libaom. I had stuck to using system ffmpeg by disabling the whole "thirdparty".
Well, I think we better to clarify that
--without-Piece disables part of cingg AND internal version of library (AND system wide linking?)
so, --without-lv2 disables any attempt at use lv2 support code.
--disable-Piece AND --with-Piece only disables building internal library version part, leaving it up to system to provide headers and libs.
so you can specify BOTH --with-lv2 and --disable-lv2 and this will mean "use system version of lv2" -( sadly currently not working on Phyllis's Fedora multiarch system ?)
--disable-Piece AND --without-Piece disables both building of int. copy and linking/using of this code part
--disable-libdav1d will turn off building internal copy of libdav1d but you can still pass flags enabling use of system libdav1d.
Issues is a bit complicated by fact that some libs needed for 'cin' executable, and some indirectly for libav* libraries. So, for ffmpeg-support libs you need additional env variables for letting it use system components.
There are variable (like auto) in configure.ac <http://configure.ac> block for many libraries, so default state does not require unreasonably long string of --with-* and --enable-* configure arguments.
At least this is my understanding of difference between --with-something, --enable-something, --without-something and --disable-something.
-- Cin mailing list [email protected] https://lists.cinelerra-gg.org/mailman/listinfo/cin
@Terje Sorry, I have already deleted the videos :( I have redone only those with exr and libaom 3.4 (original) and 3.6 (patched). I attach the text file. @Andrew Thanks for the explanation; I didn't know about it. Later I will try using --disable-libaom and --with-libaom. I will tell you the result.
I tried a build with --disable-libaom and --with-libaom. The disable- works while the with- is not recognized. The build proceeds without errors but, of course, CinGG does not present the av1 codec. I saw that the Arch package is not libaom but is aom. I then tried using --with-aom but it is still not recognized. Looking at the installed files from the aom package it is found: usr/ usr/bin/ usr/bin/aomdec usr/bin/aomenc usr/include/ usr/include/aom/ usr/include/aom/aom.h usr/include/aom/aom_codec.h usr/include/aom/aom_decoder.h usr/include/aom/aom_encoder.h usr/include/aom/aom_external_partition.h usr/include/aom/aom_frame_buffer.h usr/include/aom/aom_image.h usr/include/aom/aom_integer.h usr/include/aom/aomcx.h usr/include/aom/aomdx.h usr/lib/ usr/lib/libaom.so usr/lib/libaom.so.3 usr/lib/libaom.so.3.8.0 usr/lib/pkgconfig/ usr/lib/pkgconfig/aom.pc usr/share/ usr/share/licenses/ usr/share/licenses/aom/ usr/share/licenses/aom/LICENSE usr/share/licenses/aom/PATENTS In configure.ac I see that it looks for the following paths: PKG_3RD([libaom],[auto], [libaom-v3.4.0], [ usr/local/lib*/libaom*.a ], [ usr/local/include ]) While in my system they are found in: usr/lib/libaom* usr/include In Arch there are usr/local and usr/include, but they are empty folders. I tried replacing these paths in configure.ac but --with-libaom and --with-aom are still not recognized. I attach the config.log if you have any ideas to suggest.
пт, 22 дек. 2023 г., 00:36 Andrea paz <[email protected]>:
I tried a build with --disable-libaom and --with-libaom. The disable- works while the with- is not recognized.
yeah, looks like because libaom used in ffmpeg build only: ./configure --help | grep libaom --enable-libaom build libaom (auto) The build proceeds without
errors but, of course, CinGG does not present the av1 codec.
you need to try and setup little sh file that says export FFMPEG_EXTRA_CFG="--disable-debug --target-os=android --enable-libaom " export EXTRA_LIBS="-laom" ./configure {other params like --disable-libaom} lib param found via pkg-config --libs aom while you are here you can also try to enable libsvtav1 in same manner. use "--enable-libsvtav1" as additional ffmpeg switch and "-lSvtAv1Enc" as additional library. I saw that the Arch package is not libaom but is aom. I then tried
using --with-aom but it is still not recognized. Looking at the installed files from the aom package it is found:
usr/ usr/bin/ usr/bin/aomdec usr/bin/aomenc usr/include/ usr/include/aom/ usr/include/aom/aom.h usr/include/aom/aom_codec.h usr/include/aom/aom_decoder.h usr/include/aom/aom_encoder.h usr/include/aom/aom_external_partition.h usr/include/aom/aom_frame_buffer.h usr/include/aom/aom_image.h usr/include/aom/aom_integer.h usr/include/aom/aomcx.h usr/include/aom/aomdx.h usr/lib/ usr/lib/libaom.so usr/lib/libaom.so.3 usr/lib/libaom.so.3.8.0 usr/lib/pkgconfig/ usr/lib/pkgconfig/aom.pc usr/share/ usr/share/licenses/ usr/share/licenses/aom/ usr/share/licenses/aom/LICENSE usr/share/licenses/aom/PATENTS
In configure.ac I see that it looks for the following paths:
PKG_3RD([libaom],[auto], [libaom-v3.4.0], [ usr/local/lib*/libaom*.a ], [ usr/local/include ])
While in my system they are found in:
usr/lib/libaom* usr/include
In Arch there are usr/local and usr/include, but they are empty folders. I tried replacing these paths in configure.ac but --with-libaom and --with-aom are still not recognized. I attach the config.log if you have any ideas to suggest.
you need to try and setup little sh file that says
Is the following script okay? Should I use it after "./autogen.sh" and instead of the usual "./configure"? #!/bin/bash export FFMPEG_EXTRA_CFG="--disable-debug --target-os=android --enable-libaom " export EXTRA_LIBS="-laom" ./configure --with-single-user --with-config-dir=/home/paz/.bcast6 --disable-libaom --enable-libsvtav1 #lib param found via pkg-config --libs aom --libs lSvtAv1Enc Trying to run it I get an error at the end of ./configure: [...] configure: WARNING: unrecognized options: --enable-libsvtav1 Package lSvtAv1Enc was not found in the pkg-config search path. Perhaps you should add the directory containing `lSvtAv1Enc.pc' to the PKG_CONFIG_PATH environment variable Package 'lSvtAv1Enc', required by 'virtual:world', not found Do I need to apply any patches for Intel? About libaom: it keeps getting unrecognized during the build. I think my script is wrong.
пт, 22 дек. 2023 г., 20:09 Andrea paz <[email protected]>:
you need to try and setup little sh file that says
Is the following script okay? Should I use it after "./autogen.sh" and instead of the usual "./configure"?
no,as long as you not modified configure.ac you can just re-run configure, whileI think running "make clean" will delete it. So, if you run make clean - then yes,rerun ./autogen.sh too.
#!/bin/bash export FFMPEG_EXTRA_CFG="--disable-debug --target-os=android --enable-libaom " export EXTRA_LIBS="-laom" ./configure --with-single-user --with-config-dir=/home/paz/.bcast6 --disable-libaom --enable-libsvtav1
#lib param found via pkg-config --libs aom --libs lSvtAv1Enc
--enable-libsvtav1 should go into FFMPEG_EXTRA_CFG variable. I do not think you need target-os to be set there, just remove this part. But see my another email with svt-av1 webm profile
Trying to run it I get an error at the end of ./configure:
[...] configure: WARNING: unrecognized options: --enable-libsvtav1 Package lSvtAv1Enc was not found in the pkg-config search path. Perhaps you should add the directory containing `lSvtAv1Enc.pc' to the PKG_CONFIG_PATH environment variable Package 'lSvtAv1Enc', required by 'virtual:world', not found
Do I need to apply any patches for Intel?
About libaom: it keeps getting unrecognized during the build. I think my script is wrong.
yes, a bit messed up ... I was not trying to say you need pkg-config line (two lines actually, not one) in it, just tried to show how I found exact strings I put in those " " quotes describing variables. you ran pkg-config commands separately. For me for some reason svtav1 cflags come up empty, may be Arch patched this already ... Just for checking that pkg-config can know about library settings for compilation.
This time I used the modified script: #!/bin/bash export FFMPEG_EXTRA_CFG="--disable-debug --enable-libaom --enable-libsvtav1 " export EXTRA_LIBS="-laom" ./configure --with-single-user --with-config-dir=/home/paz/.bcast6 --disable-libaom ./configure still does not recognize me intel svt-av1. In fact in the log there is this line: ERROR: SvtAv1Enc >= 0.9.0 not found using pkg-config I think I should install the driver in Arch since, not having Intel, I do not have any of its components. (I don't intend to install anything though because I currently have too many problems with amd/rocm already). Anyway, this time the build didn't go all the way through. Strange, because looking at the config.log it seems to me that this time the build succeeds in using the system libaom. I attach the cin5.log. I redid another build by removing "--enable-libsvtav1" from the script. This time the build succeeded and I think it uses the system libaom, but I don't know how to verify other than the config.log; you can see that it uses "laom" which should pertain to the system libaom and not the internal CinGG libaom. I also attach the config.log.
сб, 23 дек. 2023 г., 00:53 Andrea paz <[email protected]>:
This time I used the modified script:
#!/bin/bash export FFMPEG_EXTRA_CFG="--disable-debug --enable-libaom --enable-libsvtav1 " export EXTRA_LIBS="-laom" ./configure --with-single-user --with-config-dir=/home/paz/.bcast6 --disable-libaom
./configure still does not recognize me intel svt-av1. In fact in the log there is this line:
ERROR: SvtAv1Enc >= 0.9.0 not found using pkg-config
I think I should install the driver in Arch since, not having Intel, I do not have any of its components. (I don't intend to install anything though because I currently have too many problems with amd/rocm already). Anyway, this time the build didn't go all the way through. Strange, because looking at the config.log it seems to me that this time the build succeeds in using the system libaom. I attach the cin5.log.
I redid another build by removing "--enable-libsvtav1" from the script.
==== quote myself from another mail ==== EXTRA_LIBS=" -lOpenCL -lSvtAv1Enc -ldav1d -lxvidcore -lass -lbluray -lsnappy -lzimg" \ FFMPEG_EXTRA_CFG=" --disable-doc --enable-opencl --enable-libsvtav1 --enable-frei0r --enable-libdav1d --enable-libzimg --enable-libxvid --enable-libass --enable-libbluray --enable-libsnappy --disable-debug --extra-cflags=-I/usr/include/svt-av1" \ without --extra-cflags ffmpeg fails to find includes for me. ====== you missed -lSvtAv1Enc for libs .... I am sorry this turned out harder that I initially thought. This time the build succeeded and I think it uses the system libaom,
but I don't know how to verify other than the config.log;
mmm.. try speed test again? :). well,after some sleep .... you can see
that it uses "laom" which should pertain to the system libaom and not the internal CinGG libaom. I also attach the config.log.
you missed -lSvtAv1Enc for libs ....
Sorry, I didn't tell you that pkg-config can't find anything about svtav1: $ pkg-config --libs lSvtAv1Enc Package lSvtAv1Enc was not found in the pkg-config search path. Perhaps you should add the directory containing `lSvtAv1Enc.pc' to the PKG_CONFIG_PATH environment variable Package 'lSvtAv1Enc', required by 'virtual:world', not found Same error as my first attempt with the wrong script.
mmm.. try speed test again? :).
Yes, I did the speed test and it matches sometimes libaom 3.6, sometimes 3.8; never 3.4 :) Now it's bedtime for me too...
сб, 23 дек. 2023 г., 01:33 Andrea paz <[email protected]>:
you missed -lSvtAv1Enc for libs ....
Sorry, I didn't tell you that pkg-config can't find anything about svtav1:
$ pkg-config --libs lSvtAv1Enc Package lSvtAv1Enc was not found in the pkg-config search path.
try to delete first "l" ... so it become "pkg-config --cflags SvtAv1Enc" for me on termux it says: pkg-config --libs SvtAv1Enc -L/data/data/com.termux/files/usr/lib -lSvtAv1Enc ~/storage/downloads $ pkg-config --cflags SvtAv1Enc -DEB_DLL -I/data/data/com.termux/files/usr/include/svt-av1 ++++++++++ Perhaps you should add the directory containing `lSvtAv1Enc.pc'
to the PKG_CONFIG_PATH environment variable Package 'lSvtAv1Enc', required by 'virtual:world', not found
Same error as my first attempt with the wrong script.
mmm.. try speed test again? :).
Yes, I did the speed test and it matches sometimes libaom 3.6, sometimes 3.8; never 3.4 :)
Now it's bedtime for me too...
try to delete first "l" ... so it become "pkg-config --cflags SvtAv1Enc"
I did several tests with system libaom and with Intel svt. One thing for sure is that when I tried to compile with svt I always got crashes. I don't know if it depends on the fact that I don't have Intel hardware. I attach cin5_aom_svt.log as an example, it was produced using the following libaom.sh: #!/bin/bash export FFMPEG_EXTRA_CFG="--disable-debug --enable-libaom --enable-lSvtAv1Enc" \ export EXTRA_LIBS="-laom -SvtAv1Enc " ./configure --with-single-user --with-config-dir=/home/paz/.bcast6 --disable-libaom Trying to use system libaom (without svt) the compilation succeeds. Renders are comparable to those obtained with patch 3.8.0 for internal ffmpeg. The results however are very variable: efficient with image sequences, slower with video.
вт, 26 дек. 2023 г., 12:11 Andrea paz <[email protected]>:
try to delete first "l" ... so it become "pkg-config --cflags SvtAv1Enc"
I did several tests with system libaom and with Intel svt. One thing for sure is that when I tried to compile with svt I always got crashes. I don't know if it depends on the fact that I don't have Intel hardware. I attach cin5_aom_svt.log as an example, it was produced using the following libaom.sh:
#!/bin/bash export FFMPEG_EXTRA_CFG="--disable-debug --enable-libaom --enable-lSvtAv1Enc --extra-cflags=-I/usr/include/svt-av1" \ export EXTRA_LIBS="-laom -SvtAv1Enc " ./configure --with-single-user --with-config-dir=/home/paz/.bcast6 --disable-libaom
sorry to point out, but you missed " --extra-cflags=-I/usr/include/svt-av1" substring for FFMPEG_EXTRA_CFG variable. Open quotation of your mail above this text, I tried to edit it in place ....
Trying to use system libaom (without svt) the compilation succeeds. Renders are comparable to those obtained with patch 3.8.0 for internal ffmpeg. The results however are very variable: efficient with image sequences, slower with video.
Well .... even slower than original (internal/3.4)? Or just among other results with updated libaom ?
sorry to point out, but you missed " --extra-cflags=-I/usr/include/svt-av1" substring for FFMPEG_EXTRA_CFG variable.
My apologize. Same crash with "include". Same row in the log: Unknown option "--enable-lSvtAv1Enc". I append the cin5_include.loglevel
Well .... even slower than original (internal/3.4)? Or just among other results with updated libaom ?
A little more slow with internal 3.4, but very variable results.
вт, 26 дек. 2023 г., 20:07 Andrea paz <[email protected]>:
sorry to point out, but you missed " --extra-cflags=-I/usr/include/svt-av1" substring for FFMPEG_EXTRA_CFG variable.
My apologize. Same crash with "include". Same row in the log:
Unknown option "--enable-lSvtAv1Enc".
well, try --enable-libsvtav1 instead ? yeah, ffmpeg's enable flag and libname differs ...
I append the cin5_include.loglevel
Well .... even slower than original (internal/3.4)? Or just among other results with updated libaom ?
A little more slow with internal 3.4, but very variable results.
well, try --enable-libsvtav1 instead ?
With libsvtav1 change the message in the log: "gcc is unable to create an executable file. If gcc is a cross-compiler, use the --enable-cross-compile option. Only do this if you know what cross compiling means. C compiler test failed." But I think there is no such thing as libsvtav1: $ pkg-config --libs libsvtav1 Package libsvtav1 was not found in the pkg-config search path. Perhaps you should add the directory containing `libsvtav1.pc' to the PKG_CONFIG_PATH environment variable Package 'libsvtav1', required by 'virtual:world', not found Instead using SvtAv1Enc: $ pkg-config --libs SvtAv1Enc -lSvtAv1Enc Using lSvtAv1Enc (with "l"): $ pkg-config --libs lSvtAv1Enc Package lSvtAv1Enc was not found in the pkg-config search path. Perhaps you should add the directory containing `lSvtAv1Enc.pc' to the PKG_CONFIG_PATH environment variable Package 'lSvtAv1Enc', required by 'virtual:world', not found
вт, 26 дек. 2023 г., 23:19 Andrea paz <[email protected]>:
well, try --enable-libsvtav1 instead ?
With libsvtav1 change the message in the log:
"gcc is unable to create an executable file. If gcc is a cross-compiler, use the --enable-cross-compile option. Only do this if you know what cross compiling means. C compiler test failed."
send me sh file I'll try to edit it ...
But I think there is no such thing as libsvtav1:
$ pkg-config --libs libsvtav1 Package libsvtav1 was not found in the pkg-config search path. Perhaps you should add the directory containing `libsvtav1.pc' to the PKG_CONFIG_PATH environment variable Package 'libsvtav1', required by 'virtual:world', not found
Instead using SvtAv1Enc:
$ pkg-config --libs SvtAv1Enc -lSvtAv1Enc
Using lSvtAv1Enc (with "l"):
$ pkg-config --libs lSvtAv1Enc Package lSvtAv1Enc was not found in the pkg-config search path. Perhaps you should add the directory containing `lSvtAv1Enc.pc' to the PKG_CONFIG_PATH environment variable Package 'lSvtAv1Enc', required by 'virtual:world', not found
try this edited ver? I am really sorry for mess, may be we should continue after good sleep ( I walk Fennec at night usually, so much less humans around!) вт, 26 дек. 2023 г., 23:32 Andrea paz <[email protected]>:
send me sh file I'll try to edit it ...
./configure --help | grep av1 --enable-libdav1d enable AV1 decoding via libdav1d [no] --enable-librav1e enable AV1 encoding via rav1e [no] --enable-libsvtav1 enable AV1 encoding via SVT [no] sVt not sTv - typo! ср, 27 дек. 2023 г., 00:07 Andrea paz <[email protected]>:
try this edited ver?
Same crash:
"Unknown option "--enable-libstvav1".
hopefully fixed for good ... ср, 27 дек. 2023 г., 00:07 Andrea paz <[email protected]>:
try this edited ver?
Same crash:
"Unknown option "--enable-libstvav1".
hopefully fixed for good ... With your libaom.sh (with the correction of libstvav1 to libsvtav1) the compilation was successful. [All this was before your latest patch.] I also loaded your "av1-svt.webm" preset and rendered the exr sequence:
Svt[info]: ------------------------------------------- Svt[info]: SVT [version]: SVT-AV1 Encoder Lib v1.8.0-dirty Svt[info]: SVT [build] : GCC 13.2.1 20230801 64 bit Svt[info]: LIB Build date: Dec 16 2023 03:09:40 Svt[info]: ------------------------------------------- Svt[info]: Number of logical cores available: 24 Svt[info]: Number of PPCS 173 Svt[info]: [asm level on system : up to avx2] Svt[info]: [asm level selected : up to avx2] Svt[info]: ------------------------------------------- Svt[info]: SVT [config]: main profile tier (auto) level (auto) Svt[info]: SVT [config]: width / height / fps numerator / fps denominator : 1200 / 800 / 10 / 1 Svt[info]: SVT [config]: bit-depth / color format : 8 / YUV420 Svt[info]: SVT [config]: preset / tune / pred struct : 10 / PSNR / random access Svt[info]: SVT [config]: gop size / mini-gop size / key-frame type : 161 / 32 / key frame Svt[info]: SVT [config]: BRC mode / rate factor : CRF / 35 Svt[info]: ------------------------------------------- SvtMalloc[info]: SVT Memory Usage: SvtMalloc[info]: total allocated memory: 1.29 GB SvtMalloc[info]: malloced memory: 372.07 MB SvtMalloc[info]: callocated memory: 36.89 MB SvtMalloc[info]: allocated aligned memory: 909.30 MB SvtMalloc[info]: mutex count: 30125 SvtMalloc[info]: semaphore count: 2102 SvtMalloc[info]: thread count: 441 SvtMalloc[info]: hash table fulless: 0.094474, hash bucket is healthy SvtMalloc[info]: top 10 malloced memory locations: SvtMalloc[info]: (66.07 MB): /usr/src/debug/svt-av1/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:114 SvtMalloc[info]: (61.07 MB): /usr/src/debug/svt-av1/SVT-AV1/Source/Lib/Common/Codec/EbBitstreamUnit.c:36 SvtMalloc[info]: (49.00 MB): /usr/src/debug/svt-av1/SVT-AV1/Source/Lib/Encoder/Codec/EbCodingUnit.c:89 SvtMalloc[info]: (42.95 MB): /usr/src/debug/svt-av1/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:115 SvtMalloc[info]: (42.49 MB): /usr/src/debug/svt-av1/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:1583 SvtMalloc[info]: (23.60 MB): /usr/src/debug/svt-av1/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:1586 SvtMalloc[info]: (13.39 MB): /usr/src/debug/svt-av1/SVT-AV1/Source/Lib/Encoder/Codec/EbModeDecisionProcess.c:238 SvtMalloc[info]: (13.01 MB): /usr/src/debug/svt-av1/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:602 SvtMalloc[info]: (10.61 MB): /usr/src/debug/svt-av1/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:1110 SvtMalloc[info]: (7.72 MB): /usr/src/debug/svt-av1/SVT-AV1/Source/Lib/Encoder/Codec/EbPictureControlSet.c:1078 FFStream::encode_frame: encode failed. file: /home/paz/test_aom_exr.webm err: Resource temporarily unavailable FFMPEG::mux_video err: Operation not permitted SvtMalloc[info]: you have no memory leak Render::render_single: Session finished. ** rendered 273 frames in 5.586 secs, 48.872 fps With the normal "av1.webm" preset (and system aom) I rarely get to 48 fps, most of the time it stops at 30 fps. But the most indicative test is rendering a "dnxhr + h264+ vp9" video; with av1.webm I get to 12.5 fps. With av1-svt.webm I get to 53 fps! Trying to use the crf=18 (visually lossless) option I get 59 fps. av1-vaapi.webm needs next-generation GPUs to run, apparently, av1-svt.webm needs even just a simple CPU with AVX instructions to run. I guess those with an Intel Arc/Xe2 video card will have even better performance. I will try to test your new patch later. Thanks for all the work you did and sorry for all my mistakes.
The problem with having 2 libaom versions in thirdparty/src is that the build will always try to build the latest one even when configure.ac uses a previous version like in the following: PKG_3RD([libaom],[auto], [libaom-v3.4.0], [ usr/local/lib*/libaom*.a ], [ usr/local/include ]) As Andrew already noted, v 3.8.0 does not build on Ubuntu 16 due to cmake. So I tested the above and it fails too. The problem is we would like for users who do their own builds for it to be automatic and to be able to build without having to delete stuff to do so. The good news is that libaom3.8.0 DOES build on Debian 9.1-32 bit. But I did not execute any render test yet. On Thu, Dec 21, 2023 at 8:32 AM Andrea paz via Cin < [email protected]> wrote:
I have compiled with both aom 3.8 and aom 3.6 patches without errors.
participants (5)
-
Andrea paz -
Andrew Randrianasulu -
Igor BEGHETTO -
Phyllis Smith -
Terje J. Hanssen