솔직히 육안으론 디폴트와 Lanczos 인터폴레이션 구분이 쉽지 않다.
그저 scale_npp 성능이 궁금해서 시작한 삽질.
- https://ffmpeg.org/ffmpeg-filters.html#scale_005fnpp
- https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/vf_scale_npp.c
윈도우에서 빌드해보겠다고 버린 시간을 따져보니,
걍 버박에 리눅스 까는 게 더 빨랐을 듯...
____시중에 떠도는 문서들____
이것저것 시도해 봤지만 현재 윈도우 환경에선 다 실패.
일일이 VS와 msys 환경을 맞춰주는 것도 일이고...
____vcpkg____
ms의 명성에 걸맞게 깔끔하게 컴파일 된다.
아쉬운 건 예상외로 하드 용량을 많이 잡아먹는 것과,
무엇보다 패키지 중에 npp 들어간 게 없다는 거...
____nvidia 공식?문서____
- https://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/
오래된 관계로 수정할 부분이 많다.
./configure --enable-nonfree --enable-libnpp --enable-cuda-nvcc --disable-shared --toolchain=msvc --extra-cflags=-I../nv_sdk --extra-ldflags=-libpath:../nv_sdk
./configure --enable-nonfree --enable-libnpp --enable-cuda-sdk --toolchain=msvc --extra-cflags=-I../nv_sdk --extra-ldflags=-libpath:../nv_sdk
./configure --enable-nonfree --enable-libnpp --enable-cuda-nvcc --toolchain=msvc --extra-cflags=-I../nv_sdk --extra-ldflags=-libpath:../nv_sdk
그럼에도 마지막엔 nvcc가 어쩌구하는 에러가 뜨면서 faiL
그래서 마지막으로 성공한 방법은
____media-autobuild_suite____
- https://github.com/m-ab-s/media-autobuild_suite
멈추거나 에러가 나도 별일 아니니까, 걍 다시 bat를 실행하면 된다.
거의 매일 업데이트 되므로 최신 버전 사용을 권장.
....에러 픽스를 기대할 수도 있으니까
____CUDA Toolkit 11.2____
- https://developer.nvidia.com/cuda-downloads
ffmpeg에서 npp사용을 위해 필요한 건
- dev/ compil/ nvcc
- dev/ compil/ Lib/ npp
- runtime/ Lib/ npp
- runtime/ Lib/ cudart
이렇게 딱 4개 뿐.
CUDA Toolkit 설치하고서 오토빌드 실행하면 끝.
(VS필요없음)
____dLL 경로____
ffmpeg.exe가 있는 폴더에 dLL을 카피하거나, 패스에 dLL폴더를 추가하면 된다.
그조차 귀찮을 땐, 툴킷 설치할 때 dev/ tooLs/ 에서 아무거나 선택하면
패스에 dLL 경로가 자동으로 추가된다.
ffmpeg에서 요구하는 dLL
- nppc64_11.dll
- nppicc64_11.dll
- nppidei64_11.dll
- nppig64_11.dll
** **
오토빌드 사용시 필요없는 정보들
webp 에러 발생시?
$ pacman -R mingw-w64-x86_64-libtiff mingw-w64-x86_64-lcms2 mingw-w64-x86_64-libwebp mingw-w64-x86_64-openjpeg2
https://visualstudio.microsoft.com/downloads/
- Installing the workload "Desktop development with c++" resolved the issue
- vcpkg에서 Win 10 SDK가 필요하다고 했으니까 이번에도 포함시켰음
export PATH="/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29333/bin/Hostx64/x64/":$PATH
export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/bin/":$PATH
which nvcc
/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2/bin/nvcc
which link
/c/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29333/bin/HostX64/x64/link
pacman -U https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-libs-9.3.0-2-any.pkg.tar.xz
pacman -U https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-9.3.0-2-any.pkg.tar.xz
(X) pacman -U https://archive.archlinux.org/packages/g/gcc9/gcc9-9.3.0-4-x86_64.pkg.tar.zst
pacman -R mingw-w64-x86_64-libtiff mingw-w64-x86_64-lcms2 mingw-w64-x86_64-libwebp mingw-w64-x86_64-openjpeg2
http://winlibs.com/
https://www.microsoft.com/en-us/download/details.aspx?id=14632
- msvcr100.dLL
- Microsoft Visual C++ 2010 Redistributable Package (x64)
https://sourceforge.net/projects/msys2/
http://yasm.tortall.net/Download.html
3-5 수정
$ cd /D/down/for\ ffmpeg\ buiLd/x264-master/x264-master