Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 17009|Jawab: 4

Gunakan ffmpeg yang dipercepat GPU untuk memproses tugas di bawah Windows

[Salin tautan]
Dipaparkan pada 2019-11-7 21:08:29 | | | |
Unduhan FFMPEG

Halaman unduhan situs web resmi:
Login hyperlink terlihat.
Disarankan untuk mengunduh versi yang dikompilasi dan mengunduh halaman:
Login hyperlink terlihat.
Saya umumnya lebih suka mengunduh versi terbaru (dinamai sesuai tanggal) dan tentu saja ada versi stabil (dinamai sesuai dengan nomor versi).



Unduh CUDA

CUDA adalah driver yang memungkinkan GPU melakukan operasi terkait, karena kami mengembangkan aplikasi yang tidak secara langsung mengontrol GPU, tetapi beroperasi melalui driver.
Login hyperlink terlihat.
Di sini saya memilih versi seperti yang ditunjukkan di bawah ini:
Tentu saja, Anda juga dapat mengklik tautan di bawah ini untuk langsung masuk ke pengaturan saat saya mengunduh.
Login hyperlink terlihat.


Setelah mengunduh, ingatlah untuk menginstalnya, jadi saya tidak akan memperkenalkannya, lagipula, mereka semua sedang mengembangkan perangkat lunak.

perintah

Perintah kueri
Periksa apakah ffmpeg yang diunduh mendukung cuda, jika tidak (saya mengunduhnya), lalu unduh lagi atau kompilasi sendiri.




Perintah pengujian

Mengonversi 0.mp4 di direktori saat ini menjadi 00.mp4
Konversi 0.mp4 di direktori saat ini menjadi 00.mp4 dan tentukan kecepatan bingkai keluaran 15 (-r 15) dan bitrate 500k (-b 500k).
-hwaccel cuvid: Menentukan penggunaan akselerasi perangkat keras cuvid
-c:v h264_cuvid: Decoding video menggunakan h264_cuvid
-c:v h264_nvenc: Pengkodean video dengan h264_nvenc
-vf scale_npp=1280:-1: Tentukan lebar dan tinggi video keluaran, perhatikan bahwa ini berbeda dari -vf scale=x:x yang digunakan untuk soft decoding

Beberapa perintah kartu grafis

Uji efisiensi transcoding GPU
Pada server dengan dua CPU Intel-E5-2630v3 dan dua kartu grafis Nvidia Tesla M4, tes transcoding video h264 dilakukan sebagai berikut:

Waktu transcoding GPU rata-rata: 8 detik
Waktu transcoding CPU rata-rata: 25 detik

Saat transcoding secara paralel, efisiensi konversi lunak CPU ditingkatkan, dan semua 32 inti ditempati ketika tiga tugas transcoding paralel

Waktu transcoding GPU rata-rata: 8 detik
Waktu transcoding CPU rata-rata: 18 detik

Tidak sulit untuk melihat bahwa kecepatan transcoding GPU tidak meningkat saat paralel, yang menunjukkan bahwa GPU hanya dapat melakukan satu tugas transcoding secara bersamaan. Jadi, jika beberapa kartu grafis dimasukkan ke server, apakah ffmpeg akan menggunakan beberapa GPU untuk transcoding paralel?
Sayangnya, jawabannya adalah tidak.
ffmpeg tidak memiliki kemampuan untuk secara otomatis menetapkan tugas transcoding ke GPU yang berbeda, tetapi setelah beberapa penyelidikan, ditemukan bahwa GPU yang digunakan untuk tugas transcoding dapat ditentukan dengan parameter -hwaccel_device!
Kirim tugas transcoding ke GPU yang berbeda

Grafik 0


Kartu grafis1

Menggambarkan:

-hwaccel_device N: Tentukan GPU untuk melakukan tugas transcoding, N adalah angka





Mantan:[Pertarungan praktis] Buat gambar Docker berdasarkan Nginx
Depan:2000 prototipe logo
 Tuan tanah| Dipaparkan pada 2019-11-7 21:18:35 |
//参数说明
/*
    * -i filename(input) direktori file sumber
    * -y Mengeluarkan file baru, apakah akan memaksa menimpa file yang ada
    * -c Menentukan encoder
    * -fs limit_size(outinput) menetapkan batas ukuran file, dinyatakan dalam byte. Tidak ada blok byte lebih lanjut yang ditulis setelah batas terlampaui. Ukuran file output sedikit lebih besar dari ukuran file yang diminta.
    * -s rasio video 4:3 320x240/640x480/800x600 16:9 1280x720, nilai default 'wxh', sama dengan ukuran video asli
    * -vframes number(output) mengatur jumlah bingkai video ke output. Alias: -frames:v
    * -dframes number (output) mengatur jumlah bingkai data ke output. Alias: -frames:d
    * -frames[:stream_specifier] framecount(output,per-stream) berhenti menulis ke aliran untuk jumlah frame.
    * -bsf[:stream_specifier] bitstream_filters (output,per-stream) menentukan format aliran file output,
Misalnya, keluarkan file MP4 yang dikodekan oleh h264: ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
    * -r 29.97 Tingkat Zhen (dapat diubah, pastikan bahwa tingkat Zhen yang tidak standar akan menyebabkan suara dan gambar tidak sinkron, sehingga hanya dapat diatur ke 15 atau 29.97)
    *
    */
 Tuan tanah| Dipaparkan pada 2019-11-8 15:07:05 |
ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -y C:\Users\DELL\Desktop\VideoDemo\bin\Debug\A16.avi

https://blog.csdn.net/Tosonw/article/details/90178195


nvcc --versi

CUVID adalah pustaka decoding video berbasis CUDA yang menggunakan CUVID untuk decoding


Gagal membuat perangkat Direct3D
Pembuatan perangkat gagal: -1313558101.

Versi ffmpeg harus sesuai dengan driver kartu grafis sinkron untuk mengaktifkan akselerasi perangkat keras dengan benar.


Lihat codec akselerasi perangkat keras NVIDIA:

.\ffmpeg.exe -codec | SLS NVENC
.\ffmpeg.exe -codec | SLS Cuvid

Awalan memiliki arti sebagai berikut:

Arti awalan
D….. = Decoding didukung
. E.... = Pengkodean didukung
.. V... = Codec video
.. A... = Codec audio
.. S... = Codec subtitle
… I.. = Codec khusus bingkai intra
....L. = Kompresi lossy
….. S = Kompresi lossless



ffmpeg.exe -hwaccel_device 1 -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\ VideoDemo\bin\Debug\A16.avi

ffmpeg.exe -hwaccel cuvid -c:v h264_cuvid -i C:\Users\DELL\Desktop\VideoDemo\bin\Debug\A14.mp4 -c:v h264_nvenc -y C:\Users\DELL\Desktop\VideoDemo\VideoDemo\bin\Debug\ Debug\ A16.avi


https://developer.nvidia.com/ffmpeg
Dipaparkan pada 2023-2-26 12:11:24 |
Cepat:Penulis dilarang atau konten yang dihapus secara otomatis diblokir
Dipaparkan pada 2023-2-26 12:13:35 |
Cepat:Penulis dilarang atau konten yang dihapus secara otomatis diblokir
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com