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. |
![]() |
#1 | Link |
Registered User
Join Date: Jul 2015
Posts: 665
|
New additions to ffmpeg evc, vvc, htj2k
New additions to ffmpeg evc, vvc, htj2k
After month I managed to create ffmpeg converter. SIMD AVX2 This is the beginning of the implementation of evc, vvc, htj2k. Added extras: libaom_x64.dll libaribb24_x64.dll libavcodec_x64.dll libavformat_x64.dll libavutil_x64.dll libcairo_pixman_x64.dll libcelt_opus_silk_x64.dll libcelt_x64.dll libcodec2_x64.dll libdav1d_x64.dll libdavs2_x64.dll libgsmfr_x64.dll libharfbuzz_x64.dll libiconv_x64.dll libjxl_x64.dll libkvazaar_x64.dll liblcms2_x64.dll libmp3lame_x64.dll libogg_x64.dll libopenh264_x64.dll libopenjpeg_x64.dll libpng_x64.dll libpthread_win32.dll librsvg_x64.dll libsdl2_x64.dll libshine_x64.dll libsnappy_x64.dll libspeex_x64.dll libsvtav1_x64.dll libswresample_x64.dll libswscale_x64.dll libtheora_x64.dll libtwolame_x64.dll libuavs3d_x64.dll libuavs3e_x64.dll libvorbis_x64.dll libvpx_x64.dll libwebp_x64.dll libx264_0810bit_x64.dll libx265_081012bit_x64.dll libxavs_x64.dll libxavs2_x64.dll libxevd_x64.dll libxeve_x64.dll libxml2_x64.dll libxvid_x64.dll zlib_x64.dll libuvg266 If I have time my dump is github. https://github.com/Jamaika1/plugins_...tj2k/tree/main Perhaps on the forum there are other converters and players evc/vvc/htj2k/jpegxs/heif. Not all additions have been added. https://www.sendspace.com/file/iwahqb Edit: Problems encountered: Add-ons to ffmpeg can have the same functionality. In static compilation, problems with similar functions come out and the functions should be changed. In a static build, it is important that add-ins are not in WINAPI, i.e. contain int DLLmain functions. Problems with libintl.h, iconv.h and pthread.h functions under Win64. To add or not to add such additives? Problems with libcelt and libcelt2. Doesn't libcelt2 support libcelt? What was the old plug for? Is librsvg under Windows 64bit and what is this decoder for? "This is librsvg - A small library to render Scalable Vector Graphics (SVG), associated with the GNOME Project. It renders SVG files to Cairo surfaces. Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to the screen or to generate output for printing." This is not a small library. A lot of add-ons and should all of them be added, e.g. fonts? Should add-ons contain glib, cairo, fonttype include callbacks? Edit: After many trials and tests, there is success. Unfortunately, it ended up in the trash of librsvg. FFmpeg is unstable with it. It's time to start testing. ![]() Code:
Compiled: INTEL, flags: MMX SSE SSE2 SSE3 SSSE3 SSE41 SSE42 AVX Detected: INTEL, flags: MMX SSE SSE2 SSE3 SSSE3 SSE41 SSE42 AVX Available: sse2(2) sse41(7) In use: sse2(1) sse41(7) --owf=auto value set to 2. --threads=auto value set to 4. Output #0, vvc, to 'output_uvg266.vvc': Output #0, evc, to 'output_xeve.evc': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf59.35.100 Stream #0:0(und): Video: vvc, yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 3000 kb/s, 29.97 fps, 29.97 tbn (default) Stream #0:0(und): Video: evc, yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 3000 kb/s, 29.97 fps, 29.97 tbn (default) Metadata: handler_name : ISO Media file produced by Google Inc. Created on: 02/14/2019. vendor_id : [0][0][0][0] encoder : Lavc59.56.100 libuvg266 encoder : Lavc59.56.100 libxeve frame= 100 fps=3.6 q=42.0 Lsize= 1184kB time=00:00:03.30 bitrate=2937.2kbits/s speed=0.118x Edit: A few fixes I decided to add. It doesn't matter which ones. The EVC codec can be converted to a mov container. It has a special plug added. I failed to compile aac fixed correctly. I added XAVS2/UAVS3 10bit decoder. The encoders are underdeveloped. Bitrate problem. Successfully compiled X264 with asm 10bit. I was able to compile ac3 fixed correctly. I don't know how to decode HTJ2K. I don't know how to configure SDL2 under ffplay. https://www.sendspace.com/file/dsmn42 Edit: I added few fixes. News: https://github.com/strukturag/libhei...14dc23aba7e743 https://www.sendspace.com/file/c1hhpx Edit: Several improvements I added ffplay. I thought that in gcc nothing would come of it but miracle happened. I replaced the libxml2 libraries and it works. Delete -> https://github.com/GNOME/libxml2 Add -> https://github.com/GerHobbelt/libxml2 https://www.sendspace.com/file/ll5ipb Test of the latest gcc 13.0.1 isn't recommended. http://msystem.waw.pl/x265/mingw-gcc1301-20230322.7z Edit: I added few extras: https://github.com/freetype/freetype https://gitlab.freedesktop.org/fontconfig/fontconfig https://github.com/fribidi/fribidi https://gitlab.freedesktop.org/cairo/cairo https://github.com/harfbuzz/harfbuzz -> plus new fixes for vvc https://github.com/ffvvc/FFmpeg/tree...ea47feb91a0b21 Unresolved GNOME atomic function C/C++ problem. https://gitlab.gnome.org/GNOME/glib/-/issues/600 https://www.sendspace.com/file/ph9xyb Edit: Test codec audio AVX ffmpeg.exe -i "iphone6s_4k.mov" -c:v libx264 -vb 3000k -c:a libopus -ac 2 -ar 48000 -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_opus.mp4 OK ffmpeg.exe -i "iphone6s_4k.mov" -c:v libx264 -vb 3000k -c:a libspeex -ac 2 -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_speex.mov OK ffmpeg.exe -i "iphone6s_4k.mov" -c:v libx264 -vb 3000k -c:a libtwolame -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_twolame.mov OK ffmpeg.exe -i "iphone6s_4k.mov" -c:v libx264 -vb 3000k -c:a libvorbis -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_vorbis.mov OK ffmpeg.exe -i "iphone6s_4k.mov" -c:v libx264 -vb 3000k -c:a libshine -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_shine.mov OK ffmpeg.exe -i "iphone6s_4k.mov" -c:v libx264 -vb 3000k -c:a libsnappy -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_snappy.mov OK ffmpeg.exe -i "iphone6s_4k.mov" -c:v libx264 -vb 3000k -c:a libmp3lame -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_mp3lame.mov OK ffmpeg.exe -i "iphone6s_4k.mov" -y -c:a libcodec2 -vn -mode 3200 -frames:v 100 output_codec2.c2 OK Test codec video AVX ffmpeg.exe -i "iphone6s_4k.mov" -c:v libkvazaar -vb 3000k -c:a ac3 -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_kvazaar.mov OK ffmpeg.exe -i "iphone6s_4k.mov" -c:v libxvid -vb 3000k -c:a ac3 -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_xvid.mov {not retained bitrates} ffmpeg.exe -i "iphone6s_4k.mov" -c:v libx264 -vb 3000k -c:a ac3 -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_x264.mov OK ffmpeg.exe -i "iphone6s_4k.mov" -c:v libopenh264 -vb 3000k -c:a ac3 -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_openh264.mov OK ffmpeg.exe -i "iphone6s_4k.mov" -c:v libx265 -vb 3000k -c:a ac3 -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_x265.mov OK ffmpeg.exe -i "iphone6s_4k.mov" -c:v libxavs -vb 3000k -c:a ac3 -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_xavs.mkv {doesn't like the mov container, not retained bitrates, cavs decoder not working, abandoned project} ffmpeg.exe -i "iphone6s_4k.mov" -c:v libxavs2 -vb 3000k -c:a ac3 -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_xavs2.mkv {doesn't like the mov container, not retained bitrates, recommended installation of 10bit decoder, abandoned project} ffmpeg.exe -i "iphone6s_4k.mov" -c:v libuavs3 -vb 3000k -c:a ac3 -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_uavs3.mov {problem DTS, abandoned project} I don't know if there is avs4. ffmpeg.exe -i "iphone6s_4k.mov" -c:v libxeve -vb 3000k -c:a ac3 -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_xeve.mov {encoder/decoder drops frames} ffmpeg.exe -i "iphone6s_4k.mov" -c:v libuvg266 -vb 3000k -c:a ac3 -ac 2 -ar 48000 -ab 128k -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_uvg266.mts {vvc decoder not working} ffmpeg.exe -i "iphone6s_4k.mov" -c:v libtheora -q:v 20 -c:a libvorbis -q:a 20 -s 1920x1080 -frames:v 100 -pix_fmt yuv420p output_theora.ogv {encoder not working, abandoned project(2010} Creating ffmpeg converter in AVX2. There is currently no way to do this in nasm and gcc. These libraries are not written. I can only add fma3. Test of Elecard films in the first versions of VVC. I can only open I frames. Code:
Input #0, vvc, from 'NovosobornayaSquare_1920x1080.bin': 0B f=0/0 Duration: N/A, bitrate: N/A Stream #0:0: Video: vvc (Main), yuv420p, 1920x1080, 59.94 fps, 25 tbr, 1200k tbn [vvc @ 00000275747fe190] Skipping NAL unit 23 Last message repeated 3 times [vvc @ 00000275747fe190] Skipping NAL unit 2342KB sq= 0B f=0/0 Last message repeated 1 times [vvc @ 00000275747fe190] Skipping NAL unit 2333KB sq= 0B f=0/0 Last message repeated 1 times [vvc @ 00000275747fe190] Skipping NAL unit 2371KB sq= 0B f=0/0 [vvc @ 00000275747fe190] Skipping NAL unit 2370KB sq= 0B f=0/0 Last message repeated 2 times [vvc @ 00000275747fe190] Skipping NAL unit 2389KB sq= 0B f=0/0 Last message repeated 2 times Free intoPIX JPEG XS codecs included. Advertised successor to JPEG2000. Unfortunately, I didn't find plugins for ffmpeg and I don't know how to use the codec. My created AVX / AVX2 codecs. https://www.sendspace.com/file/09luu5 Edit: I had to delete some previous content. I have problem with the ar.exe file in mingw. https://www.gnu.org/software/binutils/ For amateurs I remind you that there is file needed to merge libraries into larger projects. The problem is that created .a libraries aren't created only patches are overwritten. Redundant information may remain with any changes. Edit: Latest FFmpeg GCC 13.0.1 20230423/NASM 2.17rc0 20230220 converter test AVX. https://github.com/FFmpeg/FFmpeg/com...fd3a96d77ecc6b HTjpeg2000 decoder has been completely rebuilt. Now it works. AOM codec doesn't like the new GCC. I don't know. Is it better to use AOM or AVM? Theora codec has problems. Blurred frames. The mov container doesn't like to decode CAVS, AVS2, AVS3. Problem with AAC encoder float It seems FFmpeg with GCC/NASM won't work any better. My knowledge of creating FFmpeg ends. https://github.com/Jamaika1/plugins_...de5edb9cf2418d https://www.sendspace.com/file/6jpbi2 Edit: Added updates in May: Added ffmpeg FFmpeg/FFmpeg@41dd50ad Added xevc mpeg5/ffevc@8ca6b5f Added vvc dec ffvvc/FFmpeg@b1c8bd1 Added x265 multicoreware/x265_git@3dae0c3 Added dav1d videolan/dav1d@6afabf8 Added LittleCMS2 mm2/Little-CMS@2dec684 Added libwebp webmproject/libwebp@761f49c Added harfbuzz harfbuzz/harfbuzz@afd432d Added freetype freedesktop/freetype@36a086b Added aom jbeich/aom@578a0b3 Added lzma tukaani-project/xz@2cf5ae5 Added zlib madler/zlib@6658868 Added bzip2 bzip2/bzip2@2d83939 Added libxml2 GNOME/libxml2@e07f765 https://www.sendspace.com/file/cx7o8m News plus new video codec samples: Added svt-av1 AOMediaCodec/SVT-AV1@ea296ef Added aom jbeich/aom@51b883e Added mstorsjo/fdk-aac@3f864cc ??? https://github.com/schreibfaul1/FDK-AAC-DECODER-in-C Added cpuinfo pytorch/cpuinfo@b16eacd Added jpegxl libjxl/libjxl@466e243 Change davs2 xatabhk/davs2-10bit@6b944dc https://www.sendspace.com/file/gxmrn7 And after the May weekend. News plus new video codec samples: https://github.com/FFmpeg/FFmpeg@2dd9b407 https://github.com/ffvvc/FFmpeg@580a67f9 https://github.com/jbeich/aom@6009df0 https://github.com/videolan/dav1d@8af8244 https://github.com/harfbuzz/harfbuzz@5ec0cca https://github.com/GNOME/libxml2@3463063 https://gitlab.freedesktop.org/freet...etype@8fe50c2a https://github.com/tukaani-project/xz@c247d06 Fix name libcelt, libvorbis, libspeex, libcodec2 https://www.sendspace.com/file/ovw996 Test fortran gcc-14-20230507-64 News plus new video codec samples: https://github.com/FFmpeg/FFmpeg@8564b4a https://github.com/ffvvc/FFmpeg@4a0266b https://github.com/mpeg5/ffevc@ba38046 https://github.com/drowe67/codec2@f68a2fe https://github.com/videolan/dav1d@8a104cf https://bitbucket.org/multicoreware/x265_git@34532bd https://github.com/harfbuzz/harfbuzz@5d543d6 https://github.com/GNOME/libxml2@687a2b7 https://gitlab.freedesktop.org/freet...etype@3af4772d https://github.com/GNOME/glib@fde0683 + libgnuintl 0.21.0 + valgrind-3.21.0 delete failed attempt https://www.sendspace.com/file/w6gp91 News ffmpeg plus new video codec samples: https://github.com/FFmpeg/FFmpeg/com...2727f12af5c535 https://github.com/mpeg5/ffevc/commi...9cb6a65531faef https://github.com/harfbuzz/harfbuzz...910a105536f8c2 https://gitlab.freedesktop.org/freet...7e9e47fc84c6eb https://gitlab.freedesktop.org/cairo...43890b440e9a80 https://github.com/GNOME/libxml2/com...4bb42a63caeeea https://github.com/xiph/speex/commit...9825b9f79b686c https://www.sendspace.com/file/fwdqdz Last edited by Jamaika; 28th May 2023 at 11:34. |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|