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,

M7L7NK7

Well-Known Member
Member
Joined
Oct 16, 2017
Messages
3,904
Trophies
1
Website
youtube.com
XP
5,973
Country
Australia
Was playing as normal then this happened

Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Fatal error. Internal CLR error. (0x80131506)
at System.Enum.GetEnumInfo(System.RuntimeType, Boolean) at LibUsbDotNet.NativeMethods.BulkTransfer(LibUsbDotNet.DeviceHandle, Byte, Byte*, Int32, Int32 ByRef, UInt32)

at LibUsbDotNet.NativeMethods.UnrefDevice(IntPtr)
at LibUsbDotNet.NativeMethods.BulkTransfer(LibUsbDotNet.DeviceHandle, Byte, Byte*, Int32, Int32 ByRef, UInt32)
at LibUsbDotNet.NativeMethods.UnrefDevice(IntPtr)
at LibUsbDotNet.LibUsb.UsbEndpointBase.Transfer(IntPtr, Int32, Int32, Int32, Int32 ByRef)
at LibUsbDotNet.Device.ReleaseHandle()
at LibUsbDotNet.LibUsb.UsbEndpointBase.Transfer(System.Object, Int32, Int32, Int32, Int32 ByRef)
at System.Runtime.InteropServices.SafeHandle.InternalRelease(Boolean)
at UsbStream.UsbDevStream.Read(Byte[], Int32, Int32)
at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean)
at System.IO.Stream.Read(System.Span`1<Byte>)
at System.Runtime.InteropServices.SafeHandle.Finalize()
at UsbStream.Program.<StreamLoop>g__ReadToSharedArray|14_1(<>c__DisplayClass14_0 ByRef)
at UsbStream.Program.StreamLoop(IOutTarget, UsbStream.UsbDevStream, StreamKind)
at UsbStream.Program+<>c__DisplayClass16_0.<Main>b__2()
at System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ThreadHelper.ThreadStart()

That's what I get after a few seconds or before it even starts streaming
 
Last edited by M7L7NK7,

exelix11

Developer
OP
Developer
Joined
Feb 25, 2015
Messages
915
Trophies
1
Location
C:\users\exelix11\
XP
3,062
Country
Italy
how to use network stream? the mpv.exe close when i put the bat file (mpv.exe tcp://%my switch ip%:6666 --no-correct-pts --fps=30) also the command promp mpv autoclose upon opening thus cant be used, im using sx os and put the titles on sxos folder/titles
Not sure if you can use this on sxos, last time i checked it doesn't support custom sysmodules. Anyway you should use mpv.com and not the exe on windows.

Nope, doesn't feel like this is working. I just tried it out, and as the .264 file is already slowed down, converting it and changing the framerates does not change anything, it just outputs a slowed down file with a higher framerate :/ I don't really know what to do here, kinda stuck
I feel like you just duplicated the frames to match the required framerate, there should be an option to interpret the file as 30fps thus increasing the speed

Was playing as normal then this happened

Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Fatal error. Internal CLR error. (0x80131506)
at System.Enum.GetEnumInfo(System.RuntimeType, Boolean) at LibUsbDotNet.NativeMethods.BulkTransfer(LibUsbDotNet.DeviceHandle, Byte, Byte*, Int32, Int32 ByRef, UInt32)

at LibUsbDotNet.NativeMethods.UnrefDevice(IntPtr)
at LibUsbDotNet.NativeMethods.BulkTransfer(LibUsbDotNet.DeviceHandle, Byte, Byte*, Int32, Int32 ByRef, UInt32)
at LibUsbDotNet.NativeMethods.UnrefDevice(IntPtr)
at LibUsbDotNet.LibUsb.UsbEndpointBase.Transfer(IntPtr, Int32, Int32, Int32, Int32 ByRef)
at LibUsbDotNet.Device.ReleaseHandle()
at LibUsbDotNet.LibUsb.UsbEndpointBase.Transfer(System.Object, Int32, Int32, Int32, Int32 ByRef)
at System.Runtime.InteropServices.SafeHandle.InternalRelease(Boolean)
at UsbStream.UsbDevStream.Read(Byte[], Int32, Int32)
at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean)
at System.IO.Stream.Read(System.Span`1<Byte>)
at System.Runtime.InteropServices.SafeHandle.Finalize()
at UsbStream.Program.<StreamLoop>g__ReadToSharedArray|14_1(<>c__DisplayClass14_0 ByRef)
at UsbStream.Program.StreamLoop(IOutTarget, UsbStream.UsbDevStream, StreamKind)
at UsbStream.Program+<>c__DisplayClass16_0.<Main>b__2()
at System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ThreadHelper.ThreadStart()
Other users have been reporting that, there's an open issur on github and I'm looking into it. After around 10 minutes the stream via usb fails

this software loves to lock up my switch.
Other sysmodules that use too much memory or the usb port like sysftpd and mtp server cannot run at the same time.

That's what I get after a few seconds or before it even starts streaming
Really not sure about this, windows version? 32bit or 64 ? Try disabling all other sysmodules and biot with just this one but i think there's something going on with your pc
 

HarvinMalig

Member
Newcomer
Joined
Jul 12, 2019
Messages
9
Trophies
0
Age
34
XP
88
Country
Philippines
i used the com but auto closes upon opening, i read about it sxos supports customsysmodules

edit: upon searching and asking, no sxos does not support customsysmodule and that is the problem
 
Last edited by HarvinMalig,

hippy dave

BBMB
Member
Joined
Apr 30, 2012
Messages
9,868
Trophies
2
XP
29,131
Country
United Kingdom
Was going to try it, but adding it locked up my Switch at the boot logo. The only other system module that was active was for FTP access, which I generally like to keep active because I used it often.
Unfortunately sys-ftpd (which is awesome) takes up loads of memory, so it won't work alongside various other complex sysmodules.
 

SebTheThing

Member
Newcomer
Joined
Apr 21, 2019
Messages
14
Trophies
0
Age
22
XP
251
Country
France
I feel like you just duplicated the frames to match the required framerate, there should be an option to interpret the file as 30fps thus increasing the speed

Yes! You were right. I specified the fps and the output file is all perfect. So for those running into this problem, this is the command I used with ffmpeg to get the correct speed on the ouput file:

ffmpeg -r 30 -i [input file] -vcodec copy [output file]

Thanks a lot for your hard work! :)
 
  • Like
Reactions: exelix11

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,704
Trophies
1
XP
4,384
Country
Netherlands
It is said. game must support this? Generally how many games do support this on the switch of the entire library..? 50%? less then 20%? more then 50%?
 

exelix11

Developer
OP
Developer
Joined
Feb 25, 2015
Messages
915
Trophies
1
Location
C:\users\exelix11\
XP
3,062
Country
Italy
Hmm okay.
I have bought an elgato HD 60 S. Since I thought this was never coming...

Now doubting if I should keep or sell it.
If you intend on live streaming or recording hassle free or in higher quality that is better, This is limited to 720p@30fps + software caveats (eg unsupported games).
For just casual recording this is enough, guess as now you have a proper capture card just use that ¯\_(ツ)_/¯

Does OC help with the performance? Using USB setup here.
Also, why does CHROME make my stream lag?
From what i've heard it does, depends on games and may not be a big difference but it does improve.
About chrome idk use firefox guess could depend on its gpu usage, your pc may be not powerful enough to process all the data
 
Last edited by exelix11,

JonJaded

Well-Known Member
Member
Joined
May 22, 2016
Messages
676
Trophies
0
XP
2,931
Country
United States
Do you think you can concatenate the network and usb sysmodules into one and instead have an NRO that interacts with the sysmodule to change the mode?
 

Phenj

Well-Known Member
Member
Joined
May 22, 2018
Messages
493
Trophies
0
XP
1,895
Country
Italy
If you intend on live streaming or recording hassle free or in higher quality that is better, This is limited to 720p@30fps + software caveats (eg unsupported games).
For just casual recording this is enough, guess as now you have a proper capture card just use that ¯\_(ツ)_/¯


From what i've heard it does, depends on games and may not be a big difference but it does improve.
About chrome idk use firefox guess could depend on its gpu usage, your pc may be not powerful enough to process all the data
I've got a good pc so i don't think that's the problem, maybe it is just chrome. Edge works fine lol.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • Veho @ Veho:
    Illinois is working to ban toxic food additives that have been banned for decades in other countries; additives that can be replaced and all those countries still have Skittles and Mountain Dew. Title of the piece: GUBMINT WANTS TO TAKE AWAY YOUR CANDY
  • Veho @ Veho:
    Gee, I wonder if the author is biased?
  • SylverReZ @ SylverReZ:
    @Veho, Sounds and smells like bullshit. They don't give you cancer, and California should know that. I don't get why they stick labels that say "may or may not cause reproductive harm or cancer".
  • Veho @ Veho:
    Arsenic doesn't give you cancer either.
    +2
  • Veho @ Veho:
    California has already banned those additives BTW.
    +2
  • Veho @ Veho:
    Psi has been banned in the state of California.
    +2
  • Psionic Roshambo @ Psionic Roshambo:
    I am the cancer!!! lol
  • Psionic Roshambo @ Psionic Roshambo:
    Yayyy got arcade games on the Pi working lol
  • Veho @ Veho:
    Cool.
  • Psionic Roshambo @ Psionic Roshambo:
    Now to spend 6 months deleting all the garbage lol
  • Psionic Roshambo @ Psionic Roshambo:
    Mame should be two sets one for preservation of everything and one set for people who just want to play and enjoy the old old ganes
  • SylverReZ @ SylverReZ:
    @Psionic Roshambo, Shouldn't preservation be legal tho?
    +1
  • SylverReZ @ SylverReZ:
    @Psionic Roshambo, I always see this dude's shorts, he sounds pretty annoying.
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Preservation yeah it absolutely should be legal
    +1
  • SylverReZ @ SylverReZ:
    @Psionic Roshambo, Believe Japan was going to make it legal at some point, according to a Kotaku story.
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    I swear like 99% of arcade games wouldn't even exist these days outside of MAME the arcade machines are old and busted very few ever saw any sort of home conversion
  • Psionic Roshambo @ Psionic Roshambo:
    We get 37 versions of Super Mario Bros but 0 of Beast Busters
    +1
  • SylverReZ @ SylverReZ:
    @Psionic Roshambo, There's a lot of obscure Japanese arcade titles that are either lost to time or dumped.
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    It's so unfair, maybe AI can save us lol
  • Psionic Roshambo @ Psionic Roshambo:
    I mean if a company could use AI to do the work of a home conversion for essentially free why not? The rights for some games are completely lost though
  • SylverReZ @ SylverReZ:
    @Psionic Roshambo, AI is taking our jobs!
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Just tried the Master System version.... Ugghh
    Psionic Roshambo @ Psionic Roshambo: Just tried the Master System version.... Ugghh