Bir GPU, h264'ü Kodlamak için kullanılabilir mi?


13

Daha iyi bir grafik kartı elde edip edemeyeceğimi merak ediyorum, el freni kullanarak makinemdeki h264 kodlamasını hızlandırabilir mi?

Varsa, bunu hangi grafik kartının destekleyeceğini nasıl anlayabilirim?

GPU'nun h264 donanım kod çözme yapabileceğini biliyorum, ancak kodlama konusunda emin değilim.


İlgili: Hızlandırılmış Video Sıkıştırma - herhangi bir şekilde bunun için bir NVIDIA kartınız olsun ve para harcamak istersiniz.
slhck

Başka bir ilgili blog yazısı:
GPU'nuzu

İçin H.264 kodlama, el freni yazılım kodlayıcı kullanan x264 (VideoLAN) . Aşağıdaki bazı cevaplar el freni x264 veya hw (GPU) uygulamalarını kullanabilen ffmpeg kullanır. Bu eski (ama yine de alakalı) soru muhtemelen rağmen değil soran "hızlı kodlama h.264 nasıl" yerine "nasıl daha hızlı el frenini yapmak" değil,. Yanıtların raf ömrü olacaktır (bazılarının süresi zaten dolmuştur); ancak şimdilik, ML ve / veya toplu işlem gerçekleştiriyorsanız, bir uygulamayı donanımınızla eşleştirmeniz gerekebilir
michael

fwiw, bu yorumu ffmeg'den ilginç buldum : "Donanım kodlayıcıları, x264 gibi iyi yazılım kodlayıcılarından daha düşük kalitede çıktılar üretir, ancak genellikle daha hızlıdır ve çok fazla CPU kaynağı kullanmazlar. (Yani, daha yüksek bir bit hızı gerektirirler. aynı algısal kalitede çıktılar, ya da aynı bit hızında daha düşük algısal kalitede çıktılar üretiyorlar.) "
michael

Yanıtlar:


7

El Freni kullanıldığında cevap hayır olacaktır. El freni yalnızca CPU h.264 kodlayıcıdır, ancak şimdi video ölçekleme için OpenCL kullanabiliyor ve video kod çözme için DXVA'yı destekliyor.

Slhck ile bağlantılı soru MediaCoder'den bahsediyor , ancak bir Nvidia grafik kartı veya 2. nesil grafik çekirdeği olan bir Intel CPU gerektiriyor.

Özellikle Badaboom ve ATi Avivo yazılımı olmak üzere eski olan birkaç eski ürün var.

Badaboom , kodlama işlemini hızlandırmak için Nvidia ve Intel grafik işlemcilerini kullanabiliyordu, ancak artık kullanım ömrü dolmuş ve daha yeni grafik kartlarını desteklemiyor.

ATi, artık mevcut olmasa da AMD Video Converter'ı içeren AMD Codec Paketiyle birleştirilmeden önce "Avivo" olarak adlandırılan kendi video kodlayıcısına sahipti.


Şu anda bir AMD CPU kullanıyorum, bu benim için zaman kaybı mı demek? Herhangi bir NVIDIA kartı olabilir mi - oh CUDA'yı desteklemesi gerekiyor mu?
peter

Bu bağlantıyı buldum, en.wikipedia.org/wiki/CUDA Çok sayıda NVIDIA kartının CUDA'yı desteklediğini gösteriyor.
peter

Cevabımı, video kodlamak için GPU'yu kullanmanıza yardımcı olabilecek AMD yazılım paketine bir bağlantıyla güncelledim , ancak bir HD2000 serisi kartı veya daha iyisi gerekiyor. Özellikle güçlü bir CPU'nuz ancak bütçe grafik kartınız varsa, El Freni hala daha hızlı olabilir.
Mokubai

Badaboom, 4/18/2012 itibariyle kaldırılıyor.
HVS

2
Yukarıdaki cevap artık doğru değil / artık doğru değil.
totaam

4

x264 artık OpenCL kodlama hızlandırmasını desteklemektedir. Ne kadar hızlanacağınız grafik kartınızın performansına bağlı olacaktır, GTS 450'mde hiç yok ve daha yavaş kartlarla kodlamayı yavaşlatıyor. Daha iyi kartlar yardımcı olabilir. Tek yapmanız gereken x264 komut satırına --opencl eklemek. El freninin aynı x264 kitaplıklarını kullandığına ve yeni sürümlerde aynı OpenCL hızlandırmasını sunduğuna inanıyorum .


OpenCL kodlama hızlandırmasını nasıl kullanmalıyım?
Dr.jacky

2

https://trac.ffmpeg.org/wiki/HWAccelIntro

FFmpeg, donanım hızlandırma için bir alt sistem sağlar.

Donanım hızlandırma, multimedya işleme gerçekleştirmek için belirli cihazların (genellikle grafik kartı> veya diğer belirli cihazlar) kullanılmasına izin verir. Bu, CPU'yu bu tür hesaplamalardan kurtarırken zorlu hesaplama yapmak için özel donanım kullanılmasına izin verir. Genellikle donanım hızlandırma, belirli donanım aygıtlarının (genellikle GPU) video akışlarının kodunu çözme ve kodlama veya video filtreleme ile ilgili işlemleri gerçekleştirmesini sağlar.

FFmpeg aracını kullanırken, HW destekli kod çözme, -hwaccelbelirli bir kod çözücüyü etkinleştiren seçenek kullanılarak etkinleştirilir . Her kod çözücünün belirli sınırlamaları olabilir (örneğin, bir H.264 kod çözücüsü yalnızca taban çizgisi profilini destekleyebilir). HW destekli kodlama, belirli bir kodlayıcı kullanılarak etkinleştirilir (örneğin nvenc_h264). HW destekli işlemeyi filtreleme yalnızca birkaç filtrede desteklenir ve bu durumda OpenCL kodunu bir filtre seçeneğiyle etkinleştirirsiniz.

Bazıları bir dereceye kadar FFmpeg tarafından desteklenen birkaç donanım hızlandırma standardı API'sı vardır.

"-hwaccel auto" seçeneği, kodlama oturumu için kullanılacak donanım tabanlı hızlandırılmış kod çözmeyi seçmenizi sağlar. Bu parametreyi girişten önce "otomatik" ile ekleyebilirsiniz (x264'ünüz OpenCL desteğiyle derlenmişse -x264opts parametresi eklemeyi deneyebilirsiniz), örneğin:

ffmpeg -hwaccel auto -i input -vcodec libx264 -x264opts opencl output

Üzgünüz, ama "-hwaccel" için mevcut tüm seçenekleri nasıl listeleyeceğimi hatırlayamıyorum.

Ayrıca şunu da deneyebilirsiniz: https://wiki.archlinux.org/index.php/Hardware_video_acceleration


Yararlı görünse de, bu soruya özel olarak cevap vermiyor gibi görünüyor. Ffmpeg ve argümanlarının OP'ye nasıl yardımcı olabileceğini gösteren bazı ayrıntılar eklemeye ne dersiniz?
music2myKas

Bu cevap, h.264 kodlaması için el freni yerine ffmpeg kullanılması anlamına gelir , ki bu muhtemelen iyidir, çünkü soru muhtemelen sadece kodlamanın en hızlı yolunu sormaktadır - ve GPU'nun bunu etkinleştireceğini varsayar. Tüm GPU'ların aynı derecede güçlü olmadığını (örneğin, entegre GPU'lara karşı ayrılmış) ve CPU'ların da kütüphane onu desteklemek için derlendiğinde kütüphanelerin kullanabileceği optimizasyonlara sahip olduğunu unutmayın. Yani "donanım hızlandırma", ister CPU ister GPU yoluyla olsun, aşağı doğru gitmek için doğru yoldur.
michael

0

Şu anda, El Freni H.264 / AVC için aşağıdaki donanım hızlandırmalı kodlayıcıları desteklemektedir:

  1. Intel QuickSync (Windows ve Linux'ta). Bu, en azından Intel tabanlı Sandybridge (2. nesil Core) - entegre grafik özellikli ve işletim sistemine açık olan işlemci serileriyle uyumludur . Kabul edilebilir kodlama kalitesi için önerilen donanım: Haswell (4. nesil Core serisi) ve ötesinde, ayrıntılı hedef seviyeleri (TU), ileriye dönük işlevler ( LA-BRC ve ICQ kodlama modları gibi) kavramını önemli ölçüde daha iyi performansla tanıtan . El freni belgelerinden kullanım kılavuzuna bakın burada .

  2. NVIDIA'nın NVENC : Bu , yüksek performanslı tüketici SKU'larından (GTX serisi) ve profesyonel dizilimlerden (Kepler ve ötesine dayanan Quadro ve Tesla GPU'lar) en azından NVIDIA'nın Kepler (GK +) serisi GPU'ları ve üstünü gerektirir. Bu, hem Windows hem de Linux'ta kullanılabilir.

NVENC ile, yapay SKU'larda yapay olarak en fazla iki eşzamanlı kodlama oturumuyla yapay olarak sınırlı kalacağınız, ancak profesyonel dizilim bundan etkilenmeyecektir. Belirli kodlayıcı özellikleri hakkında referansınız için GPU matrisine bakın . En iyi kodlayıcı performansı ve kalitesi için, Pascal ve Volta GPU'ların en son yinelemelerine sadık kalın.

İsteğe bağlı olarak:

  1. AMD AMF kodlama desteği SADECE Windows için şu anki gece sürümlerinde de mevcuttur. AMD'nin AMF'si ( tüm GCN + SKU'larda donanıma yerleştirilmiş VCE kodlayıcıya dokunan) hakkında özel bir not , Polaris (RX 400+ serisi) ve Vega gibi yeni donanımlarda H.264 / AVC için bazı gelişmiş kodlayıcı ayarlarıdır. HEVC kodlama desteğini sundukları için kullanımdan kaldırıldı. AMD'nin bıraktığı şey, yukarıda bahsedilen donanım tabanlı kodlayıcıların (QuickSync ve NVENC) regresyonu olmayan nesiller için uyguladığı bir uyarlamalı nicemleme (AQ) desteği olmayan B-frame kodlamasıydı. Ayrıca bakınız bu ne olacağını da yayılım ile ölçümleri ile ilgili notlar üzerinde.

Apple'ın desteği söz konusu olduğunda, bu en iyi ihtimalle belirsizdir . El Freni'nin kapsamının ötesinde uygulanan VideoToolBox API'sı da çok sınırlı bir kontrol setine sahip gibi görünüyor. Handbrake bunu yukarı akışta kabul etse bile, kalite tutma ve verim açısından mucizeler beklemeyin.

Platformunuzdaki en son kodlayıcı özelliklerini şu anda olduğu gibi kullanmak için en son gece sürümünü kullanmanız gerekebileceğini unutmayın. Bu kesinlikle gelecekte değişecek.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.