Làm cách nào để cài đặt / biên dịch NVENC trong ubfox?


Câu trả lời:


19

Như mọi khi với FFmpeg tiếp tục phát triển thay đổi mục tiêu bài viết nhiều lần và điều này chắc chắn đúng với nvenc và FFmpeg. Đã có 3 giai đoạn:

  1. Cuộn của riêng bạn : Trước ngày 27 tháng 8 năm 2016, cần phải theo dõi các tiêu đề của riêng bạn để xây dựng nvenc. Khó khăn và nhiều hơn một chút khó hiểu.
  2. Được tích hợp vào nguồn : ngày 27 tháng 8 năm 2016 đã thấy các tiêu đề bắt buộc được kết hợp như một phần của nguồn FFmpeg , không có gì bắt buộc ngoài khả năng biên dịch nguồn FFmpeg từ git hoặc sử dụng phiên bản 'phát hành' được cắt từ git tại thời điểm này.
  3. Sử dụng các tiêu đề nv-codec : Vào ngày 26 tháng 2 năm 2018, các tiêu đề NVidia đã bị xóa khỏi nguồn FFmpeg . Một kho git riêng được tạo ra để tiếp tục làm việc với các tiêu đề này. Tại thời điểm này, các tiêu đề này phải được cài đặt cũng như FFmpeg từ git để có quyền truy cập vào nvenc và bạn bè.

Cần hai bước:

1. Cài đặt gói tiêu đề nv-codec :

Một cái gì đó giống như các lệnh Terminal sau đây đủ:

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

Nếu vì lý do nào đó, bạn thay đổi ý định và muốn xóa hoàn toàn các tệp đã cài đặt cũng như thư mục bản dựng chỉ cần chạy hai lệnh Terminal sau:

sudo rm -v /usr/local/{lib/pkgconfig/ffnvcodec.pc,include/ffnvcodec/*.h}
rm -rfv $HOME/nv-codec-headers_build

Và hệ thống của bạn đã được làm sạch. Tuy nhiên, nếu bạn muốn tiếp tục sử dụng bước sau:

2. Biên dịch FFmpeg :

Sử dụng hướng dẫn được thử nghiệm rất tốt này:

Các nv-codec-headerssẽ Automagically công nhận (không phải trả thêm ./configuretùy chọn là cần thiết) và nvenc sẽ được xây dựng thành công.

Kiểm tra:

Tôi đã thử nghiệm điều này trên Bionic Beaver LTS và kết quả là:

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:~$

Và nếu bạn thấy một bức tranh tương tự như trên, và bạn có một card đồ họa được hỗ trợ , bạn có quyền đi :)

Ghi chú:

  • Phiên bản mới nhất tương ứng với Video Codec SDK phiên bản 9.1.23 và yêu cầu trình điều khiển NVidia phiên bản 435,21 hoặc mới hơn.
  • Các phiên bản cũ hơn : Hiện tại đã có một bản sao github tự động của các tiêu đề nv-codec cũng tạo ra các tarball hoàn hảo để sử dụng phiên bản cũ hơn của các tiêu đề. Tuyệt vời nếu bạn muốn các tiêu đề đồng bộ hóa với phiên bản trình điều khiển NVidia cũ hơn mà bạn không thể hoặc không muốn cập nhật.
  • Hướng dẫn tăng tốc phần cứng cho FFmpeg : Hướng dẫn Wiki FFmpeg để tăng tốc phần cứng nói chung với FFmpeg, một phần chính tắc để biên dịch và sử dụng nvenc ...

Cảm ơn rất nhiều cho hướng dẫn chi tiết này. Tôi đã nhận được đầu ra tương tự từ phần thử nghiệm của bạn, đó là tuyệt vời. Ngoài các trình điều khiển nVidia, chúng ta cũng cần cài đặt Cuda SDK để có FFMPEG để sử dụng GPU đã cài đặt?
Kimberly W

@KimberlyW Không yêu cầu trên hệ thống của tôi, tôi vừa mới thử nghiệm ...
andrew.46

@ andrew.46 Tôi đã làm những gì bạn nói nhưng tôi vẫn không tăng tốc phần cứng cho vp9: /
Freedo

@Freedo Thật không may, nvenc dành cho mã hóa H.264 và HEVC ...
andrew.46

@ andrew.46 bạn có biết làm thế nào tôi có thể nhận được mã hóa vp9 không? Tôi có GTX 1080p hỗ trợ nó theo nhà phát triển
này.nvidia.com/video

0

@ andrew.46 phản hồi của bạn rất tuyệt, cảm ơn bạn. Danh tiếng của tôi là dưới ngưỡng để đăng bài này như một bình luận. Nếu có thể, vui lòng mở rộng phản hồi của bạn với các thông tin sau.

Nếu bạn cần hoàn nguyên về phiên bản cũ hơn nv-codec-headers, hãy tải xuống và biên dịch bản phát hành trước đó từ https://github.com/FFmpeg/nv-codec-headers/release .

Điều này có thể cần thiết nếu bạn biên dịch theo ffmpegphiên bản mới nhất nv-codec-headers, nhưng trình điều khiển đồ họa của bạn là phiên bản chưa xử lý phiên bản API CUDA tối thiểu được yêu cầu nv-codec-headers. Các triệu chứng sẽ là ffmpegthất bại chuyển mã luồng video. Trong trường hợp của tôi nv-codec-headersyêu cầu CUDA API 9.1, trong khi mới nhấtnvidia-driver cho phân phối (thử nghiệm) của tôi vẫn ở phiên bản sử dụng 9.0.

Quay trở lại sớm hơn nv-codec-headerscó lẽ an toàn hơn so với tải xuống trình điều khiển mới nhất trực tiếp từ Nvidia và xây dựng nó bên ngoài cơ chế cập nhật phân phối của bạn.


Cảm ơn! Tôi đã thêm phần này vào phần 'Ghi chú' ...
andrew.46
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.