Donanım Hızlandırma
Kamera ve ekran paylaşımı videosu, donanım ve sürücü izin verdiği sürece GPU'da kodlanır. İzin vermediklerinde GameVox yazılıma geçer ve çalışmaya devam eder. Bu sayfa bu seçimin nasıl yapıldığını, GPU'nun neler yapabildiğini ve sonuç beklediğin gibi olmadığında nereye bakacağını anlatıyor.
Donanımla kodlama, videonun nasıl görüneceğini belirleyen şeylerden sadece biri. Daha sık sorun çıkaran iki şey daha var: o sunucuda grubuna konan bit hızı sınırı ve bağlantın yayını kaldıramadığında devreye giren otomatik kalite düşürme. İkisi de görüntü neden hâlâ kötü görünebilir bölümünde anlatılıyor.
Bu sayfada
Ne kullandığını kontrol etmek
En hızlı yol Ayarlar → Ses ve Video → Yayın Kalitesi. Video Kodeki açılır menüsü her seçeneği Hardware Accelerated, Software Encoding ya da Unsupported olarak etiketler ve makinenin hiç yapamadıklarını gri gösterir. Hemen altındaki Donanım hızlandırma kartı, masaüstü istemcinin açılışta tespit ettiği kodlayıcı altyapısını (NVENC, AMF, QSV, VAAPI ya da VideoToolbox), sunduğu codec'leri ve onunla eşleşen kod çözme altyapısını listeler. Bu tespit açılışta arka planda çalışır, yani Ayarlar'ı açtığında kart genelde çoktan dolmuş olur.
Devam eden bir görüşmede ses kanalının etkinlik günlüğü daha iyidir. Biri kamerasını ya da ekran paylaşımını başlattığında, o kaydın altındaki soluk bir alt satır codec'i, kodlayıcı adını ve donanım mı yazılım mı olduğunu gösterir, örneğin AV1 · AV1 (FFmpeg-NVENC) · hardware. Yayın ortasında kodlayıcı değişirse bunun için ayrı bir kayıt düşer, böylece donanım yolunun ne zaman pes ettiğini ve yerine neyin geçtiğini görebilirsin.

Gerisi masaüstü uygulamasının günlük dosyasında. Dosya Windows'ta %LOCALAPPDATA%\GameVox\logs\, macOS'ta ~/Library/Application Support/GameVox/logs/ ve Linux'ta ~/.gamevox/logs/ konumunda. Aramaya değer satırlar:
[HWEnc] Detected:kodlayıcı altyapısı ve desteklediğini söylediği codec'ler[NVENC] Function table loaded successfully (API X.Y)NVIDIA sürücünün sunduğu NVENC API sürümüSelected encoder:merdivenin bu paylaşım için neye karar verdiği[FFmpegHW] Createdkodlayıcı açıldı, çözünürlük ve bit hızıyla birlikte[EncSelect] ... trial failedbir donanım kodlayıcı isteği reddetti ve merdiven bir sonrakine geçti[ScreenShare-Win] Capture backend:WGC, DXGI ya da BitBlt, kullanılan Windows yakalama yöntemi
Codec nasıl seçilir
GameVox AV1, VP9, H.264 ve VP8 üzerinde anlaşır. HEVC bu kümede yok, bu yüzden bu GPU'ların çoğu onu kodlayabilse de aşağıdaki tablolarda yer almıyor.
Gönderen taraf bir merdiveni yukarıdan aşağı iner ve sunucunun sunduğu ve GPU'nun gerçekten açabildiği ilk basamakta durur. İkinci kısım tahmin değil: istemci, kullanmak üzere olduğu çözünürlük ve bit hızıyla birebir aynı, geçici bir deneme kodlayıcısı oluşturur, çünkü pek çok sürücü 1080p'de geçip 4K'da takılır.
Windows
- GPU'da AV1:
av1_nvenc,av1_amfya daav1_qsv - GPU'da VP9: yalnızca
vp9_qsv. NVIDIA ve AMD hiçbir zaman VP9 kodlama donanımı çıkarmadı, bu yüzden bu sistemler bu basamağı tamamen atlar - GPU'da H.264:
h264_nvenc,h264_amfya dah264_qsv - Yazılımda VP9 (libvpx), ardından VP8, ardından libaom ile AV1
Linux
- VAAPI AV1, ayrı süreçte çalışan VAAPI testi çalıştığını doğruladıktan sonra
- NVENC AV1,
nvidia-vaapi-driverköprüsü olmayan NVIDIA makineler için - VAAPI VP9
- VAAPI H.264, yalnızca kamera ve DJ videosu için
- NVENC H.264
- libaom AV1, ardından libvpx VP9, ardından VP8
Ekran paylaşımı VAAPI H.264 basamağını bilerek atlar. Ekran içeriğinde sürücü kalitesi Intel ve AMD'de o kadar kötüydü ki, hızlı hareketlerde ciddi bloklanma oluyordu; yazılımda VP9 daha iyi görüntü veriyor. NVENC H.264 ekran paylaşımı için açık kalır, yani Linux'taki bir NVIDIA makine yazılım kodlayıcısına kadar düşmek yerine yine donanımla H.264 kullanır.
VAAPI AV1, körü körüne güvenilmeyen tek basamak. Standart Mesa radeonsi'nin ilk AV1 denemesinde donma geçmişi var, bu yüzden istemci, ayrı bir test süreci AV1'i en az bir kez başarıyla açana kadar onu atlar. İlk açılışta bu, ilk paylaşım için NVENC ya da yazılım AV1, sonrasında ise VAAPI AV1 anlamına gelebilir.
macOS
macOS sürümü FFmpeg donanım kodlayıcılarını hiç içermez. Kodlama da kod çözme de WebKit'in WebRTC yığını içindeki VideoToolbox üzerinden geçer; bu sana hızlandırılmış H.264 verir ama AV1 vermez: Apple hiçbir çipine AV1 kodlayıcı koymadı.
Seçimi değiştirmek
Video Kodeki menüsü seçimini zorlamaz, onu merdivenin en üstüne taşır. GTX 1080'de AV1 seçersen açılacak bir AV1 kodlayıcı olmadığı için merdiven, paylaşımı başarısız kılmak yerine normal sırasına döner. Neredeyse her zaman doğru ayar Otomatik.
Platform yolları
| İşletim sistemi | Kodlama | Kod çözme | Üreticiler |
|---|---|---|---|
| Windows 10/11 | NVENC, AMF, Quick Sync | D3D11VA | NVIDIA, AMD, Intel |
| Linux | VAAPI, NVENC | VAAPI, ardından NVDEC | AMD (Mesa), Intel (iHD), NVIDIA |
| macOS | WebKit üzerinden VideoToolbox | WebKit üzerinden VideoToolbox | Apple Silicon, Intel Mac'ler |
Linux'ta kod çözücü önce VAAPI'yi dener, olmazsa NVDEC'e geçer; yani bir NVIDIA kart, nvidia-vaapi-driver köprüsü kurulu olmadan da donanımla kod çözer. Donanımla çözülen kareler NV12 olarak döner ve CPU'da RGBA'ya dönüştürülür; bunun maliyeti, yazılım kod çözücünün kendi dönüştürme adımıyla aşağı yukarı aynıdır.
GPU'ya göre kodlama
Video gönderme: kamera ve ekran paylaşımı.
| GPU ailesi | H.264 | VP9 | AV1 |
|---|---|---|---|
| NVIDIA, NVENC ile | |||
| RTX 40 / 50 (Ada Lovelace, Blackwell) | Evet | Hayır | Evet |
| RTX 20 / 30, GTX 16 (Turing, Ampere) | Evet | Hayır | Hayır |
| GTX 600'den GTX 10'a (Kepler'den Pascal'a) | Evet | Hayır | Hayır |
| AMD, Windows'ta AMF ve Linux'ta VAAPI ile | |||
| RX 7000 / 9000, Phoenix APU'lar (RDNA 3, RDNA 4) | Evet | Hayır | Evet |
| RX 400'den RX 6000'e (Polaris'ten RDNA 2'ye) | Evet | Hayır | Hayır |
| Intel, Windows'ta Quick Sync ve Linux'ta VAAPI ile | |||
| Arc A/B serisi, Core Ultra (Alchemist, Battlemage, Meteor / Lunar / Arrow Lake) | Evet | Evet | Evet |
| 7. ile 14. nesil arası Core (Kaby Lake'ten Raptor Lake'e) | Evet | Evet | Hayır |
| 4. ile 6. nesil arası Core (Haswell'den Skylake'e) | Evet | Hayır | Hayır |
| Apple, VideoToolbox ile | |||
| Apple Silicon ve T2'li Intel Mac'ler | Evet | Hayır | Hayır |
Tüketici çiplerine VP9 kodlayıcı koyan tek üretici Intel oldu, Kaby Lake'ten itibaren. AV1 kodlama Intel'de Arc ve Core Ultra iGPU'larla, AMD'de RDNA 3 ile ve NVIDIA'da Ada Lovelace ile geldi. Daha eski her şey H.264'ü donanımla, geri kalan her şeyi yazılımla kodlar.
GPU'ya göre kod çözme
Kanaldaki diğer herkesten gelen videoyu alma.
| GPU ailesi | H.264 | VP9 | AV1 |
|---|---|---|---|
| NVIDIA, NVDEC ile (Windows'ta D3D11VA, Linux'ta CUDA) | |||
| RTX 30 ve daha yenisi (Ampere ve sonrası) | Evet | Evet | Evet |
| GTX 10 / RTX 20 (Pascal, Turing) | Evet | Evet | Hayır |
| GTX 900 (Maxwell 2) | Evet | Yalnızca 8 bit | Hayır |
| GTX 600 / 700 (Kepler) | Evet | Hayır | Hayır |
| AMD, VCN ile (Windows'ta D3D11VA, Linux'ta VAAPI) | |||
| RX 6000 ve daha yenisi (RDNA 2 ve sonrası) | Evet | Evet | Evet |
| RX Vega, RX 5000 (RDNA 1) | Evet | Evet | Hayır |
| RX 400 / 500 (Polaris) | Evet | Hayır | Hayır |
| Intel, Quick Sync ile (Windows'ta D3D11VA, Linux'ta VAAPI) | |||
| Arc, Core Ultra, 11. nesil ve daha yenisi (Tiger Lake ve sonrası) | Evet | Evet | Evet |
| 7. ile 10. nesil arası Core (Kaby Lake'ten Comet Lake'e) | Evet | Evet | Hayır |
| 6. nesil Core (Skylake) | Evet | Yalnızca 8 bit | Hayır |
| 4. / 5. nesil Core (Haswell, Broadwell) | Evet | Hayır | Hayır |
| Apple, VideoToolbox ile | |||
| Apple Silicon, M3 ve daha yenisi | Evet | Evet | Evet |
| Apple Silicon, M1 ve M2 | Evet | Evet | Hayır |
| T2 çipli Intel Mac'ler (2018 ve sonrası) | Evet | Hayır | Hayır |
Bu sütunlar çipin kendisini anlatıyor. Bir codec'i çözebilen GPU'nun yine de onu sunan bir sürücüye ihtiyacı var ve libva-drm eksik bir Linux makine, donanım neyi desteklerse desteklesin yazılımla kod çözer. GameVox önce donanımla kod çözmeyi dener ve hızlandırıcı başlatılamazsa daha ilk karede yazılıma geçer.
Görüntü neden hâlâ kötü görünebilir
Güçlü bir GPU'daki donanım kodlayıcı bile bulanık ya da takılan bir yayın çıkarabilir, çünkü işin içinde yalnızca çözünürlük ve codec yok. En yaygın iki nedenin yukarıdaki tablolarla hiçbir ilgisi yok.
Grubun bit hızını sınırlayabilir
Sunucu sahipleri bir gruba ekran paylaşımı, kamera ve mikrofon için ayrı ayrı bit hızı sınırı koyabilir. Kodlamada gerçekte geçerli olan sınır, sunucunun katmanı ile grubunun sınırından hangisi düşükse odur; yani bir Diamond sunucu bile belirli bir grubu ekran paylaşımında 2,5 Mbps'de tutabilir. Ekran paylaşımı sınırları 2,5 ile 25 Mbps, kamera sınırları 0,8 ile 10 Mbps, mikrofon sınırları ise 48 ile 256 kbps arasındadır.
Her sunucuda tam olarak bir gruptasın, bu yüzden her zaman yalnızca o grubun sınırı geçerli olur: başka bir gruba geçersen onun sınırı eskisinin yerini alır. Sınır tanımlanmamış bir grup seni sınırsız bırakır. Sunucu sahipleri kendi sınırlarına tabi değildir. Bir yayına sınır uygulandıysa, kanalın etkinlik günlüğü bunu codec ve kodlayıcının yazdığı aynı soluk alt satırda belirtir; yani bir grup sınırını kodlayıcı sorunundan ayırmanın en hızlı yolu bu günlüktür.
Bant genişliği yetmediğinde kalite kendiliğinden düşer
Seçtiğin kalite bir tavan, söz değil. Yayınını izleyenler paket kaybetmeye başladığında sunucu bunu ölçer ve istemcine yavaşlamasını söyler; kodlayıcın yaklaşık bir saniye içinde daha düşük bit hızıyla yeniden kurulur. Tıkanıklık geçince sunucu sınırı kaldırır ve seçtiğin ön ayar kendiliğinden geri gelir. Hiçbir şeyi yeniden başlatman gerekmez.
İlk neyin feda edileceği ne gönderdiğine bağlı. Ekran paylaşımı varsayılan olarak çözünürlüğü korur, yani metin ve arayüz net kalır, onun yerine kare hızı düşer. Ekran paylaşımını kare hızı öncelikli moda almak bunu tersine çevirir, bu da bir tablodan çok oyun için uygundur. Kamera videosu her zaman kare hızını korur ve çözünürlüğü düşürür, çünkü akıcı bir yüz, net ama takılan bir yüzden daha iyi görünür.
Bunu tetikleyen, o anki gerçek yükleme kapasiten; yani evde yükleme hattını dolduran biri, yoğun bir Wi-Fi bağlantısı ya da bir VPN, GPU'n neredeyse boşta dururken buna yol açabilir. İyi başlayıp birkaç dakika sonra bozulan bir yayında sebep neredeyse her zaman budur, kodlayıcı hatası değil.
Yazılıma geri dönüldüğünde
Donanım hızlandırma olmadığında hiçbir şey bozulmaz. Yazılımda VP9, güncel her CPU'da 1080p30'u rahatça kaldırır; eski makinelerde ise ekran paylaşımını 720p'ye düşürmek genelde yeterlidir. Bunun en yaygın nedenleri şunlar.
Çok eski bir NVIDIA sürücüsü. NVENC'in sürümlü bir API'si var ve istemcinin beklediğinden eski bir sürücü doğrudan reddedilir. Bu olduğunda Ayarlar'daki kart bunu açıkça söyler ve ihtiyacın olan en düşük sürücü dalını belirtir: NVENC API 12.0 için 522.25'ten 13.1 için 610'a kadar. Seni sessizce yazılımda bırakmaz.
Linux'ta eksik VA-API sürücüleri. Hiç kodlayıcı görünmüyorsa Ayarlar'daki kart CPU'n için gereken paketi söyler: Broadwell ve daha yeni Intel için intel-media-va-driver, Haswell ve daha eskisi için i965-va-driver, AMD için mesa-va-drivers.
Çipte olmayan bir codec. Intel'de tespit iyimserdir, her GPU başta VP9 ve AV1 desteklediğini söyler; gerçek cevap ancak deneme kodlayıcısı açıldığında ortaya çıkar. Uygulama çalışırken değişemeyecek bir nedenle başarısız olan bir basamak, örneğin sürücünün kodlama bloğunun eksik olduğunu bildirmesi gibi, her paylaşımda yeniden denenmek yerine oturumun geri kalanında devre dışı bırakılır. Sürücü güncellemesinden sonra yeniden tespit için GameVox'u yeniden başlat.
Web istemcisindesin. Tarayıcılar WebCodecs üzerinden kodlar ve kod çözer; bunun GPU'da çalışıp çalışmayacağına Chrome, Edge ya da Firefox karar verir. Yukarıdaki her şey masaüstü uygulaması için geçerli.