태그 보관물: codecs

codecs

우분투에서 NVENC를 설치 / 컴파일하는 방법은 무엇입니까? 보았지만 조금씩

이 문서에서 nvidia NVENC에 대한 지원을 보았지만 조금씩 혼란스러워 보입니까? 또는 우분투에 대한 ffmpeg-nvenc의 PPA?

http://developer.download.nvidia.com/compute/redist/ffmpeg/1511-patch/FFMPEG-with-NVIDIA-Acceleration-on-Ubuntu_UG_v01.pdf



답변

항상 FFmpeg를 사용하여 개발을 계속하면 목표가 여러 번 바뀌고 nvenc 및 FFmpeg의 경우에도 마찬가지입니다. 3 단계가 있습니다 :

  1. 나만의 롤 : 2016 년 8 월 27 일 이전에 nvenc를 빌드하기 위해 자신의 헤더를 추적해야했습니다. 어리 석고 약간 혼란 스럽습니다.
  2. 소스에 내장 : 2016 년 8 월 27 일 FFmpeg 소스의 일부로 필요한 헤더가 통합되어 git에서 FFmpeg 소스를 컴파일하거나 현재 git에서 잘라낸 ‘릴리스’버전을 사용할 수 있습니다.
  3. 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 컴파일 :

잘 테스트 된이 안내서를 사용하십시오.

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-headersCUDA API 9.1이 필요 nvidia-driver했지만 배포 (테스트) 의 최신 버전은 여전히 ​​9.0을 사용하는 버전이었습니다.

이전 버전으로 되 돌리는 것이 nv-codec-headersNvidia에서 최신 드라이버를 직접 다운로드하여 배포판의 업데이트 메커니즘 외부에 구축하는 것보다 안전합니다.


답변