이 문서에서 nvidia NVENC에 대한 지원을 보았지만 조금씩 혼란스러워 보입니까? 또는 우분투에 대한 ffmpeg-nvenc의 PPA?
답변
항상 FFmpeg를 사용하여 개발을 계속하면 목표가 여러 번 바뀌고 nvenc 및 FFmpeg의 경우에도 마찬가지입니다. 3 단계가 있습니다 :
- 나만의 롤 : 2016 년 8 월 27 일 이전에 nvenc를 빌드하기 위해 자신의 헤더를 추적해야했습니다. 어리 석고 약간 혼란 스럽습니다.
- 소스에 내장 : 2016 년 8 월 27 일 FFmpeg 소스의 일부로 필요한 헤더가 통합되어 git에서 FFmpeg 소스를 컴파일하거나 현재 git에서 잘라낸 ‘릴리스’버전을 사용할 수 있습니다.
- nv-codec-headers 사용 : 2018 년 2 월 26 일 NVidia 헤더가 FFmpeg 소스에서 제거되었습니다 . 이 헤더에 대한 작업을 계속하기 위해 별도의 git 저장소 가 작성되었습니다. 현재 nvenc 및 친구들에게 액세스하려면 git의 FFmpeg 뿐만 아니라 이러한 헤더를 설치해야합니다 .
두 단계가 필요합니다.
1. nv-codec-headers 패키지를 설치하십시오 :
다음과 같은 터미널 명령으로 충분합니다.
sudo apt-get install make git
mkdir $HOME/nv-codec-headers_build && cd $HOME/nv-codec-headers_build
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make && sudo make install
어떤 이유로 든 마음이 바뀌어 빌드 디렉토리뿐만 아니라 설치된 파일 을 완전히 제거 하려면 다음 두 터미널 명령을 실행하십시오.
sudo rm -v /usr/local/{lib/pkgconfig/ffnvcodec.pc,include/ffnvcodec/*.h}
rm -rfv $HOME/nv-codec-headers_build
그리고 당신의 시스템은 청소되었습니다. 그러나 계속하려면 다음 단계를 수행하십시오.
2. FFmpeg 컴파일 :
잘 테스트 된이 안내서를 사용하십시오.
- 우분투, 데비안 또는 민트에서 FFmpeg 컴파일
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
가 nv-codec-headers
됩니다 자동으로 인식 (여분의 ./configure
옵션이 필요하지 않습니다) 및 nvenc이 성공적으로 구축 될 것이다.
테스트 :
Bionic Beaver LTS에서 이것을 테스트했으며 결과는 다음과 같습니다.
andrew@ilium:~$ ffmpeg -encoders 2>/dev/null | grep nvenc
V..... h264_nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_h264 NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_hevc NVIDIA NVENC hevc encoder (codec hevc)
V..... hevc_nvenc NVIDIA NVENC hevc encoder (codec hevc)
andrew@ilium:~$
위와 비슷한 그림이 표시 되고 지원되는 그래픽 카드 가 있으면 바로 갈 수 있습니다. 🙂
노트:
- 최신 버전은 Video Codec SDK 버전 9.1.23에 해당하며 NVidia 드라이버 버전 435.21 이상이 필요합니다.
- 이전 버전 : 이제 nv-codec-headers의 자동 github 사본이 있으며 이전 버전 의 헤더 를 사용하기에 완벽한 tarball을 만듭니다 . 헤더를 업데이트 할 수 없거나 업데이트하지 않으려는 이전 버전의 NVidia 드라이버와 동기화하려는 경우에 좋습니다.
- FFmpeg를위한 하드웨어 가속 가이드 : FFmpeg Wiki는 컴파일 및 사용을 위한 표준 섹션 인 FFmpeg와 일반적인 하드웨어 가속을위한 가이드입니다 .
답변
@ andrew.46 귀하의 응답이 훌륭합니다, 감사합니다. 이것을 평판으로 올리려면 저의 평판이 임계 값보다 낮습니다. 가능하면 다음 정보를 사용하여 답변을 확장하십시오.
이전 버전으로 되돌리려면 https://github.com/FFmpeg/nv-codec-headers/releasesnv-codec-headers
에서 이전 릴리스를 다운로드하여 컴파일 하십시오 .
ffmpeg
최신 버전으로 컴파일하는 경우 필요할 수 nv-codec-headers
있지만 그래픽 드라이버가 아직 필요한 최소 CUDA API 버전을 처리하지 않는 버전입니다 nv-codec-headers
. ffmpeg
비디오 스트림 트랜스 코딩에 실패 하는 증상이 나타 납니다. 필자의 경우 nv-codec-headers
CUDA API 9.1이 필요 nvidia-driver
했지만 배포 (테스트) 의 최신 버전은 여전히 9.0을 사용하는 버전이었습니다.
이전 버전으로 되 돌리는 것이 nv-codec-headers
Nvidia에서 최신 드라이버를 직접 다운로드하여 배포판의 업데이트 메커니즘 외부에 구축하는 것보다 안전합니다.