[Scena Switch] Rilasciato SysDVR v5.0 ora con supporto per il framework .NET 5.0

Disponibile un nuovo aggiornamento per il modulo di sistema personalizzato SysDVR, il sysmodule sviluppato dal developer exelix11 ci permette di catturare l’output dei giochi in esecuzione su console Switch.

Questa nuova versione necessita del framework .NET 5.0 per poter funzionare correttamente, il set di API ha abbassato ulteriormente la latenza del nuovo lettore video. Presenti anche una serie di miglioramenti generali delle prestazioni e il supporto per le nuove CPU ARM a 32 bit.

Caratteristiche e limitazioni

  • La qualità video è fissata a 720p @30fps con compressione h264 (limite hardware).
  • La qualità audio è fissata su stereo PCM a 16 bit a 48 kHz. Non compresso.
  • Funziona solo su giochi con registrazione video abilitata (ad esempio puoi premere a lungo il pulsante di acquisizione per salvare un video).
  • Il video e l’audio sono due flussi diversi, probabilmente si desincronizzano poiché richiedono due diverse istanze del lettore. VLC supporta un flusso audio secondario ma non sono riuscito a farlo funzionare correttamente.
  • Cattura solo l’output di gioco. L’interfaccia utente del sistema, il menu principale e gli homebrew in esecuzione come applet non verranno acquisiti.
  • Il feed video non è in tempo reale, ci sarà sempre un ritardo di almeno 1 secondo.
  • La qualità del flusso dipende fortemente dall’ambiente, i cavi USB difettosi o il basso segnale wifi possono influire in modo significativo.
  • Lo streaming USB non è disponibile quando collegato.
  • Richiede firmware >= 6.0.0.

Chiaramente con queste limitazioni questo sistema non consente la “riproduzione remota” e non sostituisce una scheda di acquisizione.

Guida

Nota: Questa guida è solo per la versione 3.0 di SysDVR, se si desidera utilizzare una versione precedente fare riferimento a questa guida.

Impostazione del sysmodule

Nota: Prima di continuare assicuratevi di utilizzare l’ultima versione di atmosphere (altri Custom Firmware dovrebbero funzionare bene anche, ma non viene fornito alcun supporto).

Sono due le versioni che si possono attualmente scaricare:

  • SysDVR.zip è la versione “completa”, può eseguire lo streaming utilizzando entrambe le modalità di rete e USB e viene fornita con un’app homebrew per passare da una all’altra.
  • SysDVR-USB-Only.zip eseguirà lo streaming solo tramite USB ma utilizza meno memoria e dovrebbe funzionare insieme a più sysmodule.

Si consiglia di utilizzare la versione completa a meno che non si disponga di requisiti specifici.

Scegliere e scaricare una delle build ed estrarla all’interno della scheda SD, il file .zip contiene già la struttura dei file corretta. Se hai aggiunto il modulo con la console accesa, dovrai riavviare la console per caricare il modulo.

Per impostazione predefinita, SysDVR eseguirà lo streaming su RTSP (rete), per passare da una modalità all’altra e impostare quella predefinita è possibile utilizzare l’homebrew Impostazioni SysDVR incluso nell’archivio.

Modalità streaming

Ci sono 3 diverse modalità di streaming, ognuna con punti di forza e punti di debolezza diversi qui spiegati dal più semplice da configurare al più coinvolto.

Si consiglia di utilizzare mpv player in quanto è il più semplice da configurare, anche altri player possono funzionare ma non li sto supportando.

Lo streaming funziona solo mentre è in esecuzione un gioco compatibile, ciò significa che prima di poter eseguire lo streaming è necessario avviare il gioco.

Per le modalità streaming di rete si consiglia di utilizzare un adattatore LAN o almeno un wifi da 5 GHz, 2,4 GHz va bene anche se la ricezione è ottima sia per console Switch che per PC.

Modalità RTSP di rete

Questa modalità è la più semplice da configurare, selezionare Stream over RTSP all’interno delle configurazioni. Per iniziare lo streaming, aprire il prompt dei comandi nella directory mpv ed eseguire il comando mpv rtsp://<SwitchIpAddress>:6666/, (sostituire <SwitchIpAddress> con l’indirizzo IP della console).

Il server RTSP in SysDVR supporta due modalità, TCP e UDP, questo di solito non importa ma ho trovato programmi diversi che si collegheranno usando modalità diverse, ad esempio mpv utilizzerà sempre TCP mentre obs proverà prima UDP e poi TCP.

A seconda del tuo ambiente di rete, puoi trovare uno con prestazioni peggiori rispetto agli altri, quindi dovrai testare quale funziona meglio per te.

In mpv puoi forzare la modalità udp eseguendo il comando: mpv rtsp://<SwitchIpAddress>:6666/ --rtsp-transport=udp.

Nota: Su Windows 10, in passato ho consigliato di utilizzare la modalità hotspot di Windows 10 nel caso in cui non si disponga di un adattatore LAN, si scopre che il firewall di Windows bloccherà i pacchetti UDP dallo switch se lo streaming via UDP, come soluzione alternativa è possibile eseguire lo streaming solo tramite TCP o disabilitare temporaneamente il firewall di Windows durante lo streaming.

Installazione del client SysDVR

Le seguenti modalità richiedono SysDVR-Client (precedentemente chiamato UsbStream, è stato rinominato in quanto ora viene utilizzato anche per una delle modalità di rete).

Il file SysDVR-Client.7z, contiene due eseguibili:

  • SysDVR-Client.exe è il vero client, funziona su PC Windows, Linux e Mac, è un’applicazione da riga di comando, quindi potrebbe essere un po’ difficile da usare per alcuni utenti.
  • SysDVR-ClientGUI.exe questo è un launcher grafico per SysDVR-Client, questo è solo per Windows ed è pensato per rendere le cose più facili per gli utenti meno esperti.

Nota: Per poter eseguire SysDVR-Client avrete bisogno di .NET core 3, nota che non è lo stesso del framework .NET che potreste aver già installato in passato.

Il vantaggio principale di .NET Core è che funziona anche su Linux e Mac, quindi potrete utilizzare anche SysDVR-Client.

Su PC Windows potrete avviare SysDVR-Client semplicemente digitando il suo nome nel prompt dei comandi, per gli utenti linux/mac dovrete digitare dotnet UsbStream.dll e aggiungere successivamente gli argomenti.

Su Windows potrete scegliere di utilizzare anche SysDVR-ClientGUI, configurerà automaticamente le modalità di streaming da un’interfaccia utente intuitiva e creerà scorciatoie per esse.

Modalità Network TCP Bridge

In questa modalità SysDVR andrà ad inviare dati audio e video a SysDVR-Client e li trasmetterà entrambi come server RTSP.

Ci sono due vantaggi con questo approccio, in primo luogo è possibile scegliere di trasmettere in streaming solo un canale (in modo da ottenere una maggiore larghezza di banda) e in secondo luogo tutto l’overhead RTSP viene gestito dal PC in modo che funzioni leggermente meglio, soprattutto quando si utilizza un sistema Wi-Fi non molto veloce.

Per utilizzare questa modalità selezionare Stream over TCP Bridge in SysDVR Config.

Ora, se stai usando SysDVR-ClientGUI, selezionare TCP Bridge (Relay network via RTSP), digitare l’indirizzo IP della console Switch (che si trova nelle impostazioni), selezionare il percorso mpv e fare clic su launch. Tra qualche secondo dovrebbe iniziare lo streaming.

Per SysDVR-Client dovrete avviarlo in questo modo, digitare: SysDVR-Client bridge <switch ip address> (sostituire <switch ip address> con l’indirizzo IP della console), non è necessaria alcuna porta.

Una volta in esecuzione potrete eseguire mpv da un altro terminale come questo: mpv rtsp://127.0.0.1:6666/ (questa volta 127.0.0.1 è l’indirizzo IP locale fisso del PC e non è necessario sostituirlo).

Streaming USB

Per lo streaming via USB è necessario selezionare Stream over USB in SysDVR Config o scaricare la versione USB-Only.

Ora per lo streaming via USB è necessario configurare il driver personalizzato. Questo passaggio è necessario solo la prima volta e non interferirà con altri homebrew USB poiché utilizza un ID dispositivo personalizzato.

Configurazione del driver su Windows

Collegare la Switch al PC mentre si esegue SysDVR in modalità USB ed eseguire zadig, installare il driver libusb-win32 per il dispositivo SysDVR (Nintendo Switch).

Prima di installare assicuratevi che l’ID USB del dispositivo di destinazione sia 057e 3006, se diverso il sysmodule potrebbe non essere in esecuzione, provare ad attendere un po’ (dovrebbe avviarsi circa 20 secondi dopo l’avvio della console) o ricontrollate la configurazione.

Ciò non andrà ad interferire con altre applicazioni che comunicano con la console Switch tramite USB poiché questo sistema utilizza un ID prodotto diverso.

Libusb richiede le ultime Libs ridistribuibili di Microsoft C++, spesso sono già installate su Windows ma in caso di problemi con lo streaming Usb potrete scaricarle da qui, a seconda della versione di Windows potreste aver bisogno della versione x86 o x64 (o entrambe).

Configurazione del driver su Linux

Su Linux potreste incorrere in errori nel caricamento della libreria libusb-1.0, questo accade quando il nome del file è diverso da quello previsto da dotnet, in tal caso basta creare un collegamento simbolico come descritto nella repository LibUsbDotNet:

sudo find / -name "libusb-1.0*.so*" e poi

cd /lib/x86_64-linux-gnu
sudo ln -s libusb-1.0.so.0 libusb-1.0.so

(Esempio di comandi, sostituire i percorsi con quello che si trovano sul PC)

Streaming

Streaming

Se si utilizza SysDVR-ClientGUI, avviarlo, selezionare Stream via RTSP (Recommended), selezionare il percorso mpv e fare clic su launch.

Per gli utenti Linux è possibile utilizzare gli argomenti dalla riga di comando:

Avviare SysDVR-Client rtsp per iniziare lo streaming, è possibile aggiungere le opzioni --no-video o --no-audio per disabilitare uno dei flussi.

Dopodiché dovrete solo avviare mpv in questo modo: mpv rtsp://127.0.0.1:6666/ (anche qui l’indirizzo IP è fisso sul PC e non dovrete cambiarlo).

Le opzioni di streaming per la versione precedente sono ancora disponibili ma non sono consigliate, sono ancora visualizzate nella GUI e puoi vederle eseguendo SysDVR-Client --help.

Suggerimenti

Per ottenere il massimo da questo sysmodule dovrete fare alcuni test per trovare la configurazione che funziona meglio, ecco alcuni suggerimenti e informazioni utili:

  • Se il flusso video non si avvia immediatamente, provare a spostare la videocamera durante il gioco, per visualizzare qualcosa di cui il lettore video ha bisogno per acquisire prima un fotogramma chiave video.
  • Un cavo USB 3 è leggermente migliore di USB 2, ma entrambi dovrebbero funzionare.
  • La qualità dipende anche dall’utilizzo della CPU del gioco in esecuzione, OC può migliorare le prestazioni.
  • L’utilizzo della cache ridurrà i ritardi al costo di un ritardo maggiore, per mpv è attivo di default, se si desidera provare senza di essa, gli argomenti per la riga di comando in mpv è --cache=no --cache-secs=0. Qui c’è molto spazio per sperimentare, provare diversi valori per trovare la combinazione che funziona meglio per te.
  • Teoricamente la migliore impostazione di streaming sarebbe quella di avere uno switch di connessione LAN diretto al PC, senza passare attraverso un router, questo probabilmente non è facile per l’utente medio, potrebbe prendere in considerazione la possibilità di scrivere una guida per questo, ma attualmente è al di fuori dell’ambito di SysDVR, in teoria dovreste riuscire ad ospitare un server dhcp o giocherellare con le impostazioni di connessione statica su switch e ospitare la tua istanza di 90dns localmente.

Problemi comuni

Domanda: Quando si utilizza Usbstream Gui su Windows, l’avvio di UsbStream provoca un errore di file non trovato.
Risposta: Alcuni utenti avevano questo problema #20, una soluzione alternativa è esportare il file batch dalla GUI e modificarlo nel blocco note per avviare mpv.com anziché solo mpv, questo verrà corretto nel prossimo aggiornamento.

Domanda: Dopo aver copiato il sysmodule nella scheda SD, Atmosphere non si avvia più
Risposta: Questo succede perchè ci sono troppi sysmodule o quelli particolarmente pesanti come sysftpd, rimuovili per avviare SysDVR.

Se hai davvero bisogno di altri sysmodule allo stesso tempo, puoi provare a utilizzare la versione solo USB in quanto utilizza meno memoria (512 KB contro 3 MB).

Per rimuovere SysDVR, eliminare la cartella /atmosphere/contents/00FF0000A53BB665, per rimuovere altri sysmodule se non si è sicuri dell’ID corretto, eliminare l’intera cartella /atmosphere e scaricare una nuova copia di atmosphere.

Domanda: Gli homebrew che usano USB come GoldLeaf o nxmtp non si avviano più
Risposta: Questo succede perché l’interfaccia USB viene utilizzata da SysDVR, se stai utilizzando la versione completa puoi usare le modalità di streaming usando l’homebrew SysDVR Settings incluso nell’archivio .zip.

Domanda: Quando si utilizza lo streaming di rete c’è molto ritardo o aumenta nel tempo
Risposta: Mpv utilizza un buffer di cache per evitare ritardi quando la connessione elimina alcuni pacchetti ma questo aumenta il ritardo, puoi disabilitarlo usando --cache=no --cache-secs=0, se questo non risolve il problema probabilmente la tua connessione non è abbastanza buona per lo streaming.

Domanda: Il video è lento o ci sono molti difetti
Risposta: Assicuratevi che la connessione tra la console e il PC sia abbastanza buona, se lo streaming tramite la rete si avvicina al router o passa alla LAN, per USB provare a utilizzare un cavo di qualità superiore.

Extra

Streaming live con OBS

Questo è stato richiesto molto, ora che RTSP è stato implementato, puoi semplicemente aggiungere SysDVR come sorgente multimediale in OBS: Aggiungere una nuova fonte multimediale e deselezionare il file locale, quindi digitare rtsp://<ip addr>:6666/ sostituire <ip addr> con l’indirizzo che dovresti digitare in mpv seguendo la guida per la modalità di streaming che vuoi usare.

Changelog

  • SysDVR-Client è stato aggiornato alla versione .NET 5.0 appena rilasciata, quindi corrispondiamo ai numeri. Assicurati di scaricarlo prima di provare questo aggiornamento.
  • Lettore video integrato personalizzato per garantire le migliori prestazioni, abbassa la latenza a circa 100 ms o meno, letteralmente non può essere migliore di così.
    • Il lettore integrato utilizza ffmpeg e SDL2. Le librerie DLL sono incluse per windows 64-bit, su Mac e Linux puoi installarli dai tuoi gestori di pacchetti, ho aggiunto comandi di esempio nella guida.
    • Per quanto riguarda Windows a 32 bit, ffmpeg ufficialmente non fornisce più build a 32 bit. Se stai ancora utilizzando un PC a 32 bit, puoi ottenere build non ufficiali da terze parti ed estrarle nella cartella SysDVR-Client, dovrebbe funzionare ma non sto fornendo supporto, dovresti aggiornare il tuo PC.
    • L’implementazione è ancora piuttosto approssimativa e c’è spazio per miglioramenti, ma è già un importante passo avanti rispetto a mpv, in attesa del feedback degli utenti.
    • Tutte le precedenti modalità di streaming sono ancora disponibili, puoi vederle con l’opzione --help.
  • Nuova app per le impostazioni con una GUI adeguata, spiegazioni e collegamenti alla guida.
  • La GUI di SysDVR-Client è stata aggiornata per essere più semplice da usare: seleziona solo USB o digita l’indirizzo IP e fai clic su launch to stream.
  • Modificate alcune priorità di tempistica e threading che dovrebbero migliorare le prestazioni sul lato console.
    • A causa dei test limitati che posso fare da solo non so se queste modifiche hanno effetti collaterali negativi, non ho notato nulla di sbagliato ma in caso di problemi come lag nei giochi o prestazioni degradate fammelo sapere e io Lo ripristinerò se necessario.
  • Aggiunto supporto per ARM a 32 bit in SysDVR-Client, ora può essere eseguito su molti computer a scheda singola come il Raspberry PI.
    • Dipende dal supporto .NET per la tua scheda. Il Raspberry PI zero e 1 non sono supportati a causa della versione precedente di ARM.
    • Molto probabilmente sarà necessaria la configurazione manuale della decodifica con accelerazione hardware per funzionare senza problemi, c’è una spiegazione qui.
  • A causa delle modifiche a SysDVR-Client, anche gli argomenti della riga di comando sono leggermente cambiati, questo probabilmente interromperà gli script di avvio generati dalla GUI, assicurati di eliminarli e crearne di nuovi con l’ultima versione.

Crediti

  • Tutti da libnx e le persone che hanno invertito grc:d e scritto il service wrapper, mission2000 in particolare per il suggerimento su come correggere il ritardo audio.
  • mtp-server-nx per la loro implementazione usb.

Nota: UsbStream richiede l’utilizzo di .NET core 3.0.

Download: SysDVR v5.0 (solo USB)

Download: SysDVR v5.0

Download: SysDVR Client

Download: Source code SysDVR v5.0

Fonte: github.com

(Visited 1 times, 1 visits today)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *