SysDVR - Stream gameplay directly to a pc

SysDVR
Stream/record gameplay to a PC via USB or network.
upload_2019-10-21_9-21-20.png

Update: Version 5.0 has been released with low latency streaming, be sure to check it out on github.

This is an experimental sysmodule that allows capturing the running game output on a pc.
As this uses switch's built-in game recording feature it has the same limitations: 720p@30fps and only works on the games that enable it, but by sending the video to another device there's no time limit to the recording.

There are two modes: USB and Network, both work fine but USB is slightly better, at least compared to wifi, didn't try with a LAN adapter.
Players like mpv or vlc can play the stream directly so you can use any screen recording applications but it's also possible to write the stream directly to a file.
To use the USB version you need the UsbStream program you'll find on the github page, it's built using .NET 5 and works on both windows and linux, haven't tried mac but in theory it should work too.

You can see it in action in the two teasers i posted while working on it:



As you can see it's not meant for remote play, but it can work as a basic capture card, audio output is uncompressed so it can be useful for ripping OSTs .

Download and wall of text guide on github: https://github.com/exelix11/SysDVR/
To get notified of updates you can follow this thread or join my new discord server (i also have a twitter account where occasionally post development updates).

Please make sure to read the full readme before reporting issues as it explains the most common problems you may encounter.
 
Last edited by exelix11,

enderer

Well-Known Member
Member
Joined
Jul 19, 2015
Messages
381
Trophies
0
Age
34
XP
1,652
Country
United States
been messing with this all day, tweaked some settings and got it to run wireless audio + video basically perfect! ~1sec delay.
--cache=no --cache-secs=0

thank you so much!
 
  • Like
Reactions: exelix11

exelix11

Developer
OP
Developer
Joined
Feb 25, 2015
Messages
915
Trophies
1
Location
C:\users\exelix11\
XP
3,062
Country
Italy
Awesome update! Also, USB-stream while docked isn't a thing yet, right?
Nope, switch OS doesn't support USB client mode when docked so no way around it, good news is that network streaming via wireless now is pretty reliable so can be a good alternative (assuming good wifi reception on both sides)
 
  • Like
Reactions: Phenj

skullkeeper94

Professional USB Corrupter
Member
Joined
Jun 21, 2016
Messages
390
Trophies
0
XP
1,672
Country
United States
Is it better to use USB streaming or network on a low end PC? Neither is too terribly an issue but don't want to waste time when I could have a much better result the other way.
 

exelix11

Developer
OP
Developer
Joined
Feb 25, 2015
Messages
915
Trophies
1
Location
C:\users\exelix11\
XP
3,062
Country
Italy
Is it better to use USB streaming or network on a low end PC? Neither is too terribly an issue but don't want to waste time when I could have a much better result the other way.
Unless it's some very old win XP machine i'd say it doesn't really matter, connection quality is what matters if you're connected via LAN or wifi with very good reception network should work too. USB often offers the best quality cause it's a direct Switch to PC connection while with network you likely have a router in between.
 

DiscostewSM

Well-Known Member
Member
Joined
Feb 10, 2009
Messages
5,484
Trophies
2
Location
Sacramento, California
Website
lazerlight.x10.mx
XP
5,455
Country
United States
This is amazing. Installed it, got mpv set up with some batch scripts to automatically stream/record to my laptop, and was ready to use immediately. I do have a question though, but it does not pertain to SysDVR, but to mpv. So while I can record with --stream-record=video.mkv, the audio from the stream itself is uncompressed PCM. Could I set mpv to encode the audio to another format while it streams for the recording?
 

uyjulian

Homebrewer
Member
Joined
Nov 26, 2012
Messages
2,567
Trophies
2
Location
United States
Website
sites.google.com
XP
3,851
Country
United States
This is amazing. Installed it, got mpv set up with some batch scripts to automatically stream/record to my laptop, and was ready to use immediately. I do have a question though, but it does not pertain to SysDVR, but to mpv. So while I can record with --stream-record=video.mkv, the audio from the stream itself is uncompressed PCM. Could I set mpv to encode the audio to another format while it streams for the recording?
You can put RTSP stream as input for ffmpeg, encoding it to whatever you want with ffmpeg's options.
 
Last edited by uyjulian,

exelix11

Developer
OP
Developer
Joined
Feb 25, 2015
Messages
915
Trophies
1
Location
C:\users\exelix11\
XP
3,062
Country
Italy
Hmmm interesting, interesting, still I even hardly take the time to connect my Elgato HD60.
Probably should do more with that ... but im just not great when it comes to video content at all..
But might give this a try over the weekend :)
Well if you have a capture card this is a pretty cool POC, but it will never perform as good as that, guess you have the option of streaming wireless but it's lower quality than a physical capture card.

This is amazing. Installed it, got mpv set up with some batch scripts to automatically stream/record to my laptop, and was ready to use immediately. I do have a question though, but it does not pertain to SysDVR, but to mpv. So while I can record with --stream-record=video.mkv, the audio from the stream itself is uncompressed PCM. Could I set mpv to encode the audio to another format while it streams for the recording?
Not sure, as the user above me said you can use ffmpeg to receive the stream and encode it but then you won't be able to watch it in real time (Direct RTSP mode supports max 1 client, RTSP from usb/TCP Bridge supports multiple but i woudln't recommend it) For recording I tested OBS, instead of stream you click on record and it works just fine.
 

enderer

Well-Known Member
Member
Joined
Jul 19, 2015
Messages
381
Trophies
0
Age
34
XP
1,652
Country
United States
loving this! just got everything in OBS set up for recording/streaming. not gonna shamelessly self-promote, but let's just say i'll be streaming everytime i'm playing from now on. :)
 

Aqib

Member
Newcomer
Joined
Aug 27, 2017
Messages
8
Trophies
0
XP
46
Country
United States
Can someone please provide a clear and explicit linux guide, I have been trying to get this to run and can't seem to get it to work. I would greatly appreciate it if someone could make a video guide for sysdvr on linux. Please help me!
 

exelix11

Developer
OP
Developer
Joined
Feb 25, 2015
Messages
915
Trophies
1
Location
C:\users\exelix11\
XP
3,062
Country
Italy
Can someone please provide a clear and explicit linux guide, I have been trying to get this to run and can't seem to get it to work. I would greatly appreciate it if someone could make a video guide for sysdvr on linux. Please help me!
Unforuntaly linux comes in a lot of different versions, your best bet would be to google your issues with the distro name as a keyword, generally the only thing that creates issues is the USB driver, abetter explaination about the USB setup is on the libusb page on github. TCP Bridge should work fine as long as you setup .NET core.
 

JasNotDead

New Member
Newbie
Joined
Nov 2, 2016
Messages
1
Trophies
0
Age
31
XP
59
Country
Panama
Hello, does anyone know why I keep getting this error?


Starting stream, press return to stop
If the stream lags try pausing and unpausing the player.
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at SysDVRClient.RTSP.SysDvrRTSPTarget.InvokeEvent(Memory`1 Data, UInt64 tsMsec)
at SysDVRClient.RTSP.SysDVRVideoRTSPTarget.SendData(Byte[] indata, Int32 offset, Int32 size, UInt64 ts)
at SysDVRClient.IOutTarget.SendData(Byte[] data, UInt64 ts)
at SysDVRClient.VideoStreamThread.StreamInitialized()
at SysDVRClient.RTSP.SysDvrRTSPTarget.InitializeStreaming()
at SysDVRClient.StreamThread.MainLoop()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Now streaming via RTSP on port 6666
Connect with your player to rtsp://127.0.0.1:6666/
 

exelix11

Developer
OP
Developer
Joined
Feb 25, 2015
Messages
915
Trophies
1
Location
C:\users\exelix11\
XP
3,062
Country
Italy
Hello, does anyone know why I keep getting this error?


Starting stream, press return to stop
If the stream lags try pausing and unpausing the player.
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at SysDVRClient.RTSP.SysDvrRTSPTarget.InvokeEvent(Memory`1 Data, UInt64 tsMsec)
at SysDVRClient.RTSP.SysDVRVideoRTSPTarget.SendData(Byte[] indata, Int32 offset, Int32 size, UInt64 ts)
at SysDVRClient.IOutTarget.SendData(Byte[] data, UInt64 ts)
at SysDVRClient.VideoStreamThread.StreamInitialized()
at SysDVRClient.RTSP.SysDvrRTSPTarget.InitializeStreaming()
at SysDVRClient.StreamThread.MainLoop()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Now streaming via RTSP on port 6666
Connect with your player to rtsp://127.0.0.1:6666/
How are you launching SysDVR-Client ? In fact there seems to be a possible race condition but i think it would be hard to consistently triggering it. Can you try launching Client, waiting a few secs and then launching mpv ?
 

SoraNotHere

Member
Newcomer
Joined
Nov 28, 2019
Messages
6
Trophies
0
Age
23
XP
78
Country
Kazakhstan
Help! I keep getting Video/Audio Thread terminated due to ExtendedSocketException when trying to use network mode, as for USB mode, I can't install libusb because Zadig freezes and then crashes when I click Install Driver. I checked if I set everything up correctly and I did, but nothing is working
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • Sicklyboy @ Sicklyboy:
    maaaaan that's so awesome but I also don't want to fork over a hundo for it
  • Veho @ Veho:
    The fuuuuu---
  • Veho @ Veho:
    I thought it was an actual xBox at that price.
  • Sicklyboy @ Sicklyboy:
    I wanna grab a 360 Slim and a 360 E one of these days. Missed the boat of getting them at their lowest though, once they were discontinued. Could've got them for cheap back when I was a broke 20 something working at Target, but then again, I was a broke 20 something working at Target
  • Veho @ Veho:
    Being broke is no fun.
  • K3Nv2 @ K3Nv2:
    @Sicklyboy, $150 isn't that bad for a jtag slim on ebay
  • Veho @ Veho:
    I only wish it was actually playable.
  • Veho @ Veho:
    There's a guy on the Tube of You that makes playable mechanical arcade games out of Lego. This could work on the same principle.
  • Veho @ Veho:
    Just a couple of guys taking their manatee out for some fresh air, why you have to molest them?
  • Veho @ Veho:
    Stupid Chinese shop switched their shipping company and this one is slooooooow.
  • LeoTCK @ LeoTCK:
    STOP BUYING CHINESE CRAP THEN
  • LeoTCK @ LeoTCK:
    SUPPORT LOCAL PRODUCTS, MAKE REVOLUTION
  • LeoTCK @ LeoTCK:
    THEY KEEP REMOVING LOCAL SHIt AND REPLACING WItH INFERIOR CHINESE CRAP
  • LeoTCK @ LeoTCK:
    THATS WHY MY PARTNER CANT GET A GOOTWEAR HIS SIZE ANYMORE
  • LeoTCK @ LeoTCK:
    HE HAS BIG FOOT AND BIG DUCK
  • LeoTCK @ LeoTCK:
    d*ck i mean*
  • LeoTCK @ LeoTCK:
    lol
  • Veho @ Veho:
    Mkay.
  • Veho @ Veho:
    I just ordered another package from China just to spite you.
  • SylverReZ @ SylverReZ:
    Leo could not withstand communism.
  • SylverReZ @ SylverReZ:
    Its OUR products to begin with lol.
    SylverReZ @ SylverReZ: Its OUR products to begin with lol.