fraunhoferhhi / vvenc

VVenC, the Fraunhofer Versatile Video Encoder
https://www.hhi.fraunhofer.de/en/departments/vca/technologies-and-solutions/h266-vvc.html
BSD 3-Clause Clear License
943 stars 170 forks source link

FFmpeg 6 not enable configure --enable-libvvdec --enable-libvvenc #254

Closed skysumbra closed 1 year ago

skysumbra commented 1 year ago

I refer to Wiki https://github.com/fraunhoferhhi/vvenc/wiki/FFmpeg-Integration#linux step 1 to 3 not any error, but step 4 ./configure --enable-libvvdec --enable-libvvenc fail

/configure --enable-pthreads --enable-pic -enable-libvvdec --enable-libvvenc --extra-cflags=-I/home/mypc/ffmpeg_sources/ffmpeg-build-script/workspace/include --extra-ldexeflags=-static --extra-ldflags=-L/home/mypc/ffmpeg_sources/ffmpeg-build-script/workspace/lib --extra-libs=-ldl --pkg-config-flags=--static --prefix=/home/mypc/ffmpeg_sources/ffmpeg-build-script/workspace
Unknown option "-enable-libvvdec".
See ./configure --help for available options.

only build not have --enable-libvvdec --enable-libvvenc

check /ffmpeg -codecs | grep vvc i/ffmpeg_sources/ffmpeg-build-script/workspace libavutil 58. 2.100 / 58. 2.100 libavcodec 60. 3.100 / 60. 3.100 libavformat 60. 3.100 / 60. 3.100 libavdevice 60. 1.100 / 60. 1.100 libavfilter 9. 3.100 / 9. 3.100 libswscale 7. 1.100 / 7. 1.100 libswresample 4. 10.100 / 4. 10.100 ..V.L. vvc H.266 / VVC (Versatile Video Coding)

only show ..V.L. vvc H.266 / VVC (Versatile Video Coding), not show DEV.L. vvc H.266 / VVC (Versatile Video Coding) (decoders: libvvdec ) (encoders: libvvenc )

adamjw24 commented 1 year ago

Please use --enable-libvvdec, you are using -enable-libvvdec

skysumbra commented 1 year ago

try --enable-libvvdec

./configure --enable-pthreads --enable-pic --enable-libvvdec  --extra-cflags=-I/home/mypc/ffmpeg_sources/ffmpeg-build-script/workspace/include --extra-ldexeflags=-static --extra-ldflags=-L/home/mypc/ffmpeg_sources/ffmpeg-build-script/workspace/lib --extra-libs=-ldl --pkg-config-flags=--static --prefix=/home/mypc/ffmpeg_sources/ffmpeg-build-script/workspace
Unknown option "--enable-libvvdec".
See ./configure --help for available options.

try --enable-libvvenc

./configure --enable-pthreads --enable-pic --enable-libvvenc  --extra-cflags=-I/home/mypc/ffmpeg_sources/ffmpeg-build-script/workspace/include --extra-ldexeflags=-static --extra-ldflags=-L/home/mypc/ffmpeg_sources/ffmpeg-build-script/workspace/lib --extra-libs=-ldl --pkg-config-flags=--static --prefix=/home/mypc/ffmpeg_sources/ffmpeg-build-script/workspace
Unknown option "--enable-libvvenc".
See ./configure --help for available options.

still show unknown option

adamjw24 commented 1 year ago

Please share the full log of what you did. Thats strange. If the patches applied successfully, the options should be available.

skysumbra commented 1 year ago

Thaks adamjw24 Where full log ? i try find *.log and find ffbuild/config.log only.

https://drive.google.com/file/d/1k6oBCMLxJDV7btF_3nEAgNLE9kiIPrvo/view?usp=share_link

adamjw24 commented 1 year ago

I mean, like all the console output for all the execution steps from the wiki, so I can make sure you are like patching the correct directory and so on.

skysumbra commented 1 year ago

I try reinstall my ubuntu 18 on Oracle VM VirtualBox and try again. Is the result correct after build and check ?

ffmpeg -h decoder=libvvdec

user@user-VirtualBox:~/ffmpeg_sources$ /home/user/ffmpeg_sources/workspace/bin/ffmpeg -h decoder=libvvdec
ffmpeg version N-109818-g8ed1d6b5e4 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configuration: --prefix=/home/user/ffmpeg_sources/workspace --pkg-config-flags=--static --extra-cflags=-I/home/user/ffmpeg_sources/workspace/include --extra-ldflags=-L/home/user/ffmpeg_sources/workspace/lib --extra-libs='-ldl -lpthread -lm -lz' --pkgconfigdir=/home/user/ffmpeg_sources/workspace/lib/pkgconfig --extra-ldexeflags=-static --disable-debug --disable-doc --disable-shared --enable-pthreads --enable-static --enable-small --enable-version3 --disable-ffnvcodec --enable-libvvdec --enable-libvvenc --enable-nonfree --enable-gpl --enable-openssl --enable-libsvtav1 --enable-libx264 --enable-libx265 --enable-libvpx --enable-libxvid --enable-libvidstab --enable-libaom --enable-libzimg --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libtheora --enable-libfdk-aac --enable-libwebp --enable-libsrt --enable-amf
  libavutil      58.  0.100 / 58.  0.100
  libavcodec     60.  1.100 / 60.  1.100
  libavformat    60.  0.100 / 60.  0.100
  libavdevice    60.  0.100 / 60.  0.100
  libavfilter     9.  0.100 /  9.  0.100
  libswscale      7.  0.100 /  7.  0.100
  libswresample   4.  9.100 /  4.  9.100
  libpostproc    57.  0.100 / 57.  0.100
Decoder libvvdec []:
    General capabilities: delay threads 
    Threading capabilities: other
    Supported pixel formats: yuv420p yuv420p10le

ffmpeg -h encoder=libvvenc

user@user-VirtualBox:~/ffmpeg_sources$ /home/user/ffmpeg_sources/workspace/bin/ffmpeg -h encoder=libvvenc
ffmpeg version N-109818-g8ed1d6b5e4 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configuration: --prefix=/home/user/ffmpeg_sources/workspace --pkg-config-flags=--static --extra-cflags=-I/home/user/ffmpeg_sources/workspace/include --extra-ldflags=-L/home/user/ffmpeg_sources/workspace/lib --extra-libs='-ldl -lpthread -lm -lz' --pkgconfigdir=/home/user/ffmpeg_sources/workspace/lib/pkgconfig --extra-ldexeflags=-static --disable-debug --disable-doc --disable-shared --enable-pthreads --enable-static --enable-small --enable-version3 --disable-ffnvcodec --enable-libvvdec --enable-libvvenc --enable-nonfree --enable-gpl --enable-openssl --enable-libsvtav1 --enable-libx264 --enable-libx265 --enable-libvpx --enable-libxvid --enable-libvidstab --enable-libaom --enable-libzimg --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libtheora --enable-libfdk-aac --enable-libwebp --enable-libsrt --enable-amf
  libavutil      58.  0.100 / 58.  0.100
  libavcodec     60.  1.100 / 60.  1.100
  libavformat    60.  0.100 / 60.  0.100
  libavdevice    60.  0.100 / 60.  0.100
  libavfilter     9.  0.100 /  9.  0.100
  libswscale      7.  0.100 /  7.  0.100
  libswresample   4.  9.100 /  4.  9.100
  libpostproc    57.  0.100 / 57.  0.100
Encoder libvvenc []:
    General capabilities: delay threads 
    Threading capabilities: other
    Supported pixel formats: yuv420p10le
libvvenc-vvc encoder AVOptions:
  -preset            <int>        E..V....... set encoding preset(0: faster - 4: slower (from 0 to 4) (default medium)
     faster          0            E..V....... 0
     fast            1            E..V....... 1
     medium          2            E..V....... 2
     slow            3            E..V....... 3
     slower          4            E..V....... 4
  -qp                <int>        E..V....... set quantization (from 0 to 63) (default 32)
  -period            <int>        E..V....... set (intra) refresh period in seconds (from 1 to INT_MAX) (default 1)
  -subjopt           <boolean>    E..V....... set subjective (perceptually motivated) optimization (default true)
  -vvenc-params      <dictionary> E..V....... set the vvenc configuration using a :-separated list of key=value parameters
  -levelidc          <int>        E..V....... vvc level_idc (from 0 to 105) (default 0)
     0               0            E..V....... auto
     1               16           E..V....... 1
     2               32           E..V....... 2
     2.1             35           E..V....... 2.1
     3               48           E..V....... 3
     3.1             51           E..V....... 3.1
     4               64           E..V....... 4
     4.1             67           E..V....... 4.1
     5               80           E..V....... 5
     5.1             83           E..V....... 5.1
     5.2             86           E..V....... 5.2
     6               96           E..V....... 6
     6.1             99           E..V....... 6.1
     6.2             102          E..V....... 6.2
     6.3             105          E..V....... 6.3
  -tier              <int>        E..V....... set vvc tier (from 0 to 1) (default main)
     main            0            E..V....... main
     high            1            E..V....... high

ffmpeg -hide_banner -codecs | grep vvc

user@user-VirtualBox:~/ffmpeg_sources$ /home/user/ffmpeg_sources/workspace/bin/ffmpeg -hide_banner -codecs | grep vvc
 DEV.L. vvc                   (decoders: libvvdec ) (encoders: libvvenc )
adamjw24 commented 1 year ago

Looks good!