Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

SysDVR Switch: Difference between revisions

From GameBrew
(Created page with "{{Infobox Switch Homebrews |title=SysDVR |image=sysdvrswitch.png |description=Stream switch games to your PC via USB or network. |author=exelix11 |lastupdated=2022/12/09 |type=System Tools |version=5.4 |license=GPL-2.0 |download=https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch.7z |website=https://gbatemp.net/threads/sysdvr-stream-gameplay-directly-to-a-pc.550616/ |source=https://github.com/exelix11/SysDVR |donation= }} {{#seo: |title=Switch Homebrew Apps (System T...")
 
No edit summary
Line 3: Line 3:
|image=sysdvrswitch.png
|image=sysdvrswitch.png
|description=Stream switch games to your PC via USB or network.
|description=Stream switch games to your PC via USB or network.
|author=exelix11
|author=exelix11
|lastupdated=2022/12/09
|lastupdated=2023/04/15
|type=System Tools
|type=PC Utilities
|version=5.4
|version=5.5
|license=GPL-2.0
|license=GPL-2.0
|download=https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch.7z
|download=https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch.7z
|website=https://gbatemp.net/threads/sysdvr-stream-gameplay-directly-to-a-pc.550616/
|website=https://gbatemp.net/threads/sysdvr-stream-gameplay-directly-to-a-pc.550616/
|source=https://github.com/exelix11/SysDVR
|source=https://github.com/exelix11/SysDVR
|donation=
|donation=https://ko-fi.com/exelix11
}}
}}
{{#seo:
{{#seo:
|title=Switch Homebrew Apps (System Tools) - GameBrew
|title=Switch Homebrew Apps (PC Utilities) - GameBrew
|title_mode=append
|title_mode=append
|image=sysdvrswitch.png
|image=sysdvrswitch.png
|image_alt=SysDVR
|image_alt=SysDVR
}}
}}
{{cleanup|article|Needs cleanup}}
SysDVR is a highly useful sysmodule that enables users to capture and stream the output of a game in real-time to their PC through either a USB or network connection. Essentially, this means that individuals can play their Nintendo Switch games on a larger screen, such as their computer monitor, while still utilizing the Switch console as the primary gaming device.
Stream switch games to your PC via USB or network.
 
The benefits of using SysDVR are numerous. For starters, it allows gamers to play their favorite Switch games on a larger display, which can greatly enhance the overall gaming experience. Moreover, it is an excellent way to share gameplay with others, as the captured footage can be streamed to a wider audience via various streaming platforms.
 
One of the main features of SysDVR is its versatility in terms of connectivity options. Users can connect their Switch console to their PC via either a USB or network connection, depending on their preferences and available hardware. USB connectivity is a great option for those who have a compatible USB capture card, while network connectivity is ideal for those who prefer to stream their gameplay over the internet.
 
Another notable feature of SysDVR is its user-friendly interface. The sysmodule is designed to be easy to use, even for those who are not particularly tech-savvy. Users can quickly and easily adjust the various settings, such as resolution and frame rate, to achieve the desired level of video quality.
 
Perhaps one of the most significant advantages of using SysDVR is the ability to record gameplay footage for later viewing. This is particularly useful for those who want to review their gameplay or create gaming content, such as walkthroughs or Let's Play videos. The captured footage can be saved to the user's PC and edited using various video editing software, providing ample opportunities for creative expression.
 
== Features ==
* Cross platform, can stream to Windows, Mac and Linux.
* Stream via USB or Wifi.
* '''Video quality is fixed to 720p @ 30fps with h264 compression, this is a hardware limit'''.
* Audio quality is fixed to 16bit PCM @ 48kHz stereo. Not compressed.
* Very low latency with an optimal setup, most games are playable!
 
==Usage==




==Media==
==Media==
<youtube></youtube>
'''How to Stream Nintendo Switch Games to PC without Capture Card | SysDVR Switch 16.0 Tutorial - ([https://www.youtube.com/watch?v=HpW7QbxZQfw Manito])'''<br>
 
<youtube>HpW7QbxZQfw</youtube>


==Screenshots==
==Screenshots==
https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch-01.png
https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch-01.png
https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch-02.png
https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch-02.png
https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch-03.png
 
https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch-04.png
== Limitations ==
https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch-05.png
* '''Only works on games that have video recording enabled''' (aka you can long-press the capture button to save a video)
https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch-06.png
** [[DVR-Patches Switch|There is now a workaround to support most games]], as it may cause issues it's hosted on a different repo and must be installed manually.
https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch-07.png
* Only captures game output. System UI, home menu and homebrews running as applet won't be captured.
https://dlhb.gamebrew.org/switchhomebrews/sysdvrswitch-08.png
* Stream quality depends heavily on the environment, bad usb wires or low wifi signal can affect it significantly.
* '''USB streaming is not available when docked'''
* Requires at least firmware 6.0.0
 
Clearly with these limitations '''this sysmodule doesn't fully replace a capture card'''.


==Changelog==
==Changelog==
'''v.5.5'''
* Completely fixed USB mode crashes and stuck in "switching modes" issues, for real this time.
** The communication protocol changed, make sure to update both the client on your pc and the sysmodule on your console.
** After copying the sysmodule reboot your console.
* On Windows now we use a new WinUSB driver signed by Google.
** SysDVR will appear as an android device using standard ADB drivers
** In practice this won't change anything except that now installing drivers is much more streamlined and they come from a more trusted source.
* Memory usage of the full version of SysDVR has been substantially reduced.
** In general this means SysDVR should cause less crashes when used with other sysmodules
** If you were using the usb only version due to memory concerns give the full version another chance.
* Now SysDVR-Client is also distributed as a flatpak, this should make installing it on linux much easier solving all dependency issues
** For the time being flatpak support is considered experimental due to limited testing, let me know of any issues
** Instructions to install the flatpak version have been added to the guide
* Fix connection issues when in TCP Bridge mode
* Fix libusb errors on arm macs
* Minor bug fixes
'''v.5.4'''
* SysDVR-settings can now update dvr-patches from github releases automatically
** This feature works for USB-Only versions too however the USB-Only builds don't come with the settings app, you can get the NRO manually from the regular release
* Most "mode switching" errors should have been solved
* Fix rtsp mode which has been broken probably since update 5.0 and no one noticed
* Other minor fixes
* The USB protocol was changed, do not use 5.4 SysDVR with older clients and vice versa.
* Dependency management was tweaked, problems on non-windows systems may appear as far as i could test everything works fine but let me know in case of issues.
'''v.5.3.1'''
* Automatic driver installation with libwdi on Windows
** If this is the first time you use SysDVR just open the GUI and you will be prompted to install the driver when you try to stream, if you already installed it with zadig nothing changes.
** This means that zadig is not needed anymore, if you're following a guide that requires it is outdated
** The official guide in the wiki has been updated to reflect this
* Linux and mac users: ffmpeg (libavcodec) has been updated to version 59, if you still have the old 58 version update it with you package manager
* Better native dependency handling on MacOS and linux
** For MacOS all the dylib loading problems should be fixed now, you just need to install the libraries with brew
'''v.5.3'''
* SysDVR-Client is now built with .NET 6, if you're still using .NET 5 you must update.
** Remember to choose the x64 version if your windows install is 64-bits or it won't work.
** If after installing it SysDVR can't find it manually fix your PATH environment variable
* Arm "apple silicon" macs are now supported and should work as expected #166
** If you previously used SysDVR over rosetta you must install native arm .NET and native arm dependencies with brew, refer to the guide for more info.
* The USB protocol has been improved, stuttering should be gone now.
** This means that latest client is not compatible with older sysdvr versions and vice versa, make sure to update the sysmodule on your console and reboot afterwards.
* Improvements of the video decoding process, the client should use less CPU now.
* Now it's possible to set the video player title with the --title command line option
* Other minor improvements
'''v.5.2'''
* Compatibility with dotnet 6, you won't have to download an outdated version to run SysDVR-client anymore. (dotnet 5 still works)
* Support for streaming from multiple consoles over USB
** By default SysDVR-client will connect to the first available console it finds, the serial is shown in the command window
** You can specify which console to connect to by adding --usb-serial your_serial to the command line, partial serials are matched by the last digits, for example --usb-serial 123 will connect to any console whoose serial ends with 123
** This feature won't work if sysdvr can't find the console serial, this can happen if you used prodinfo editing tools.
* When using the built-in player you can add the --fullscreen option to the command line to automatically switch to full screen
* Fix a bug where sysdvr would get stuck on switching modes and required a reboot
* When in full screen mode the window shouldn't disappear when it loses focus
* When in full screen mode the mouse cursor is hidden
* The SysDVR-settings homebrew shouldn't crash anymore when SysDVR isn't running
'''v.5.1'''
* Fixed random image corruption in certain games, used to happen especially on still images [https://github.com/exelix11/SysDVR/issues/91 #91]
* Fixed USB errors on linux [https://github.com/exelix11/SysDVR/issues/106 #106]
* Export recordings as mp4 files [https://github.com/exelix11/SysDVR/issues/104 #104]
** The recorded data is not processed to keep the cpu usage low, the output file may be big and not all video players may be able to play it. It's recommended to remux/re-encode the file after recording, an easy way of doing that is with ffmpeg: ffmpeg -i video.mp4 -c:v h264 -c:a aac output.mp4
** While this seems to work well enough i didn't thoroughly test it with long recordings, please let me know of any issues.
* Reduced stuttering in the built-in video player
* The "simple network mode" RTSP server should now be more reliable and works in most video players
'''v.5.0.2'''
* Fix USB on 11.0
* Fix scaling for the built-in player when using a monitor that's not 16:9
'''v.5.0.1'''
* Added full screen mode for the built-in player, press F11 to toggle it ([https://github.com/exelix11/SysDVR/issues/98 #98]).
* Added scale filters for the built-in player, now the streaming should look better on high resolution screens.
* Show a warning when running on Windows with an unsupported (x86) .NET runtime ([https://github.com/exelix11/SysDVR/issues/97 #97]).
* Fix a crash when using an audio device with more than two channels ([https://github.com/exelix11/SysDVR/issues/94 #94]).
* Show current PID in the player titlebar to allow streaming software to distinguish between multiple instances.
* Minor fixes.
'''v.5.0'''
*SysDVR-Client was upgraded to the just released .NET 5.0. Make sure to download it before trying this update. On windows you must install the x64 version
*Custom built-in video player to ensure best performances, brings down latency to about 100ms or less, literally can't get better than this.
**The built-in player uses ffmpeg and SDL2. Dlls are included for windows 64-bit, on mac and linux you can install them from your package managers, i added example commands in the [https://github.com/exelix11/SysDVR/wiki/SysDVR-Client-setup guide].
**As for 32 bit Windows ffmpeg officially doesn't provide 32 bit builds anymore. If you're still using a 32 bit PC you can get unofficial builds from third parties and extract them to the SysDVR-Client folder, this should work but i'm not providing support for it, you should upgrade your PC.
**The implementation is still pretty rough and there's room for improvement but it's already a major step up from mpv, looking forward to user feedback.
**All the previous streaming modes are still avalilable, you can see them with the --help option
*New settings app with a proper GUI, explainations and links to the guide.
*SysDVR-Client GUI has been updated to be simpler to use: only select USB or type the IP and click launch to stream.
*Tweaked some timing and threading priorities that should improve performances on the console side
**Due to the limited testing i can do on my own i don't know if these changes have any negative side effects, i didn't notice anything wrong but in case of problems like lag in games or degraded performances let me know and i'll revert it if it's necessary.
*Added support for 32 bit arm in SysDVR-Client, now it can run on many single board computers like the raspberry pi
**Depends on .NET support for your board. Raspberry pi zero and 1 are not supported due to older arm version.
**Will most likely need manual configuration of hardware accelerated decoding to run smoothly, there's an explaination [https://github.com/exelix11/SysDVR/wiki/Advanced-tips#hardware-accelerated-decoder here].
*Due to the changes to SysDVR-Client the command line arguments have slightly changed as well, this will likely break launch scripts generated by the GUI, make sure to delete them and create new ones with the latest version.
'''v.4.0.1'''
*General system stability improvements to enhance the user's experience:
**Reduced the number of FS sessions used by the sysmodule, should fix crashes when running alongside other sysmodules.
**Fix a possible crash on windows versions that don't use the english alphabet.
'''v.4.0'''
*Low latency streaming is now supported.
**Stdin mpv streaming mode has been revamped to support low latency video streaming.
**Unfortunately the console produces audio with a slight delay, this means that real-time streaming audio and video is not possible. This is not a bandwidth problem and even streaming just audio will be slightly delayed.
**Streaming both audio and video is possible only via RTSP as stdin mode only supports one channel. Read the advanced section of the guide to find out how to launch mpv in low-latency mode.
*USB streaming protocol has been updated to improve performances.
**On windows the driver has been changed to WinUsb, if you previously installed the libusb driver you will have to replace it with zadig. The guide has been updated to explain how.
**If you wish to keep on streaming with libusb add --no-winusb to the command line or enable Force LibUsb backend in the GUI.
**On linux libusb is still used and nothing changes.
*TCPBridge protocol has been changed as well to improve performances.
*Reduced the memory usage of SysDVR from 3MB to ~1.1MB if you previously used the USB-only build due to memory concerns check if this solves your problems.
**This may also fix SXOS compatibility but i haven't tested, will update once someone lets me know.
**Edit: Received mixed reports, some say that it works some that it doesn't, please report in #39 if you still experience crashes.
*All legacy args for SysDVR-Client have been replaced with a new syntax, less used functions have been removed, if you're using bat files from the GUI delete them and create new ones.
**Due to the protocol changes you can't use previous versions of the client and clientGUI with the new sysmodule
*Now it's possible to stream to stdout so you can pipe the raw data to any video player (one channel only)**Fix #30 #33 and several other bugs and crashes.
'''v.3.0'''
*UsbStream has been renamed to SysDVR-Client, if you have the old version on your pc, delete it before extracting the new zip.
*RTSP Streaming has been implemented in both SysDVR and SysDVR-Client, this implies the following:
**Audio and video are finally properly synchronized.
**Random stream desynchronization (lag) should be finally solved, it can still happen depending on the player and connection stability but pausing and unpausing the stream is enough to fix it.
**Native support for many more players and other software such as OBS, live streaming from SysDVR has never been easier.
**As now streaming requires a single player instance the GoLive feature on discord works as expected.
**Unfortunately due to RTSP caching latency may have slightly increased, some players allow to disable it but not all, in the end is a stability/synchronization vs delay compromise (if you prefer less delay most of the previous modes are still available but not recommended)
**While RTSP works fine mostly, some players like vlc don't really play nice with it, mpv is still the recommended player
*The following streaming modes have been added:
**Direct RTSP from SysDVR : it's possible to connect a player to the switch in the local network without any extra setup. This means you don't even need SysDVR-client, just type your switch ip address in mpv on your phone/pc and you're good to go !
**TCP Bridge : video and audio data is sent via network to SysDVR-Client and it's relayed over RTSP (this has a few advantages over Direct RTSP as explained in the guide)
**RTSP mode from USB : video and audio data are sent over USB and streamed via RTSP on the local pc
*The old TCP streaming mode has been removed in favor of TCP bridge, it had major synchronization issues, in case you still need it it's still available in older versions.
*Fixed a few issues reported on GitHub
'''v.2.0'''
* The Network and USB versions have been merged in a single sysmodule, the zip includes an homebrew to set the streaming mode without having to reboot.
** This also allows to temporarily disable the USB stream so you can launch other homebrews like nxmtp or GoldLeaf (solves #5)
** As low memory usage is important to some users an USB-Only version is still provided, this however does not support the settings app and you have to manually remove it and reboot to use an homebrew requiring USB access.
* Fixed the annoying "10 minutes bug" [https://github.com/exelix11/SysDVR/issues/2 #2]
* Added UsbStreamGUI (Windows only), a graphical launcher for UsbStream for less experienced users
* Minor changes to UsbStream to help troubleshoot issues
'''v.1.0'''
'''v.1.0'''
* First Release.
* First Release.
== Credits ==
* Everyone from libnx and the people who reversed grc:d and wrote the service wrapper, mission2000 in particular for the suggestion on how to fix audio lag.
* [https://github.com/retronx-team/mtp-server-nx mtp-server-nx] for their usb implementation
* [https://github.com/ngraziano/SharpRTSP RTSPSharp] for the C# RTSP library
* Bonta on discord for a lot of help implementing a custom RTSP server
* [https://github.com/xerpi Xerpi] for a lot of help while working on the UVC branch


== External links ==
== External links ==
* Gbatemp - https://gbatemp.net/threads/sysdvr-stream-gameplay-directly-to-a-pc.550616/
* Gbatemp - https://gbatemp.net/threads/sysdvr-stream-gameplay-directly-to-a-pc.550616/
* Github - https://github.com/exelix11/SysDVR
* Github - https://github.com/exelix11/SysDVR
* Reddit -

Revision as of 00:23, 17 April 2023

SysDVR
File:Sysdvrswitch.png
General
Authorexelix11
TypePC Utilities
Version5.5
LicenseGPL-2.0
Last Updated2023/04/15
Links
Download
Website
Source
Support Author

SysDVR is a highly useful sysmodule that enables users to capture and stream the output of a game in real-time to their PC through either a USB or network connection. Essentially, this means that individuals can play their Nintendo Switch games on a larger screen, such as their computer monitor, while still utilizing the Switch console as the primary gaming device.

The benefits of using SysDVR are numerous. For starters, it allows gamers to play their favorite Switch games on a larger display, which can greatly enhance the overall gaming experience. Moreover, it is an excellent way to share gameplay with others, as the captured footage can be streamed to a wider audience via various streaming platforms.

One of the main features of SysDVR is its versatility in terms of connectivity options. Users can connect their Switch console to their PC via either a USB or network connection, depending on their preferences and available hardware. USB connectivity is a great option for those who have a compatible USB capture card, while network connectivity is ideal for those who prefer to stream their gameplay over the internet.

Another notable feature of SysDVR is its user-friendly interface. The sysmodule is designed to be easy to use, even for those who are not particularly tech-savvy. Users can quickly and easily adjust the various settings, such as resolution and frame rate, to achieve the desired level of video quality.

Perhaps one of the most significant advantages of using SysDVR is the ability to record gameplay footage for later viewing. This is particularly useful for those who want to review their gameplay or create gaming content, such as walkthroughs or Let's Play videos. The captured footage can be saved to the user's PC and edited using various video editing software, providing ample opportunities for creative expression.

Features

  • Cross platform, can stream to Windows, Mac and Linux.
  • Stream via USB or Wifi.
  • Video quality is fixed to 720p @ 30fps with h264 compression, this is a hardware limit.
  • Audio quality is fixed to 16bit PCM @ 48kHz stereo. Not compressed.
  • Very low latency with an optimal setup, most games are playable!

Usage

Media

How to Stream Nintendo Switch Games to PC without Capture Card | SysDVR Switch 16.0 Tutorial - (Manito)

Screenshots

sysdvrswitch-01.png sysdvrswitch-02.png

Limitations

  • Only works on games that have video recording enabled (aka you can long-press the capture button to save a video)
  • Only captures game output. System UI, home menu and homebrews running as applet won't be captured.
  • Stream quality depends heavily on the environment, bad usb wires or low wifi signal can affect it significantly.
  • USB streaming is not available when docked
  • Requires at least firmware 6.0.0

Clearly with these limitations this sysmodule doesn't fully replace a capture card.

Changelog

v.5.5

  • Completely fixed USB mode crashes and stuck in "switching modes" issues, for real this time.
    • The communication protocol changed, make sure to update both the client on your pc and the sysmodule on your console.
    • After copying the sysmodule reboot your console.
  • On Windows now we use a new WinUSB driver signed by Google.
    • SysDVR will appear as an android device using standard ADB drivers
    • In practice this won't change anything except that now installing drivers is much more streamlined and they come from a more trusted source.
  • Memory usage of the full version of SysDVR has been substantially reduced.
    • In general this means SysDVR should cause less crashes when used with other sysmodules
    • If you were using the usb only version due to memory concerns give the full version another chance.
  • Now SysDVR-Client is also distributed as a flatpak, this should make installing it on linux much easier solving all dependency issues
    • For the time being flatpak support is considered experimental due to limited testing, let me know of any issues
    • Instructions to install the flatpak version have been added to the guide
  • Fix connection issues when in TCP Bridge mode
  • Fix libusb errors on arm macs
  • Minor bug fixes

v.5.4

  • SysDVR-settings can now update dvr-patches from github releases automatically
    • This feature works for USB-Only versions too however the USB-Only builds don't come with the settings app, you can get the NRO manually from the regular release
  • Most "mode switching" errors should have been solved
  • Fix rtsp mode which has been broken probably since update 5.0 and no one noticed
  • Other minor fixes
  • The USB protocol was changed, do not use 5.4 SysDVR with older clients and vice versa.
  • Dependency management was tweaked, problems on non-windows systems may appear as far as i could test everything works fine but let me know in case of issues.

v.5.3.1

  • Automatic driver installation with libwdi on Windows
    • If this is the first time you use SysDVR just open the GUI and you will be prompted to install the driver when you try to stream, if you already installed it with zadig nothing changes.
    • This means that zadig is not needed anymore, if you're following a guide that requires it is outdated
    • The official guide in the wiki has been updated to reflect this
  • Linux and mac users: ffmpeg (libavcodec) has been updated to version 59, if you still have the old 58 version update it with you package manager
  • Better native dependency handling on MacOS and linux
    • For MacOS all the dylib loading problems should be fixed now, you just need to install the libraries with brew

v.5.3

  • SysDVR-Client is now built with .NET 6, if you're still using .NET 5 you must update.
    • Remember to choose the x64 version if your windows install is 64-bits or it won't work.
    • If after installing it SysDVR can't find it manually fix your PATH environment variable
  • Arm "apple silicon" macs are now supported and should work as expected #166
    • If you previously used SysDVR over rosetta you must install native arm .NET and native arm dependencies with brew, refer to the guide for more info.
  • The USB protocol has been improved, stuttering should be gone now.
    • This means that latest client is not compatible with older sysdvr versions and vice versa, make sure to update the sysmodule on your console and reboot afterwards.
  • Improvements of the video decoding process, the client should use less CPU now.
  • Now it's possible to set the video player title with the --title command line option
  • Other minor improvements

v.5.2

  • Compatibility with dotnet 6, you won't have to download an outdated version to run SysDVR-client anymore. (dotnet 5 still works)
  • Support for streaming from multiple consoles over USB
    • By default SysDVR-client will connect to the first available console it finds, the serial is shown in the command window
    • You can specify which console to connect to by adding --usb-serial your_serial to the command line, partial serials are matched by the last digits, for example --usb-serial 123 will connect to any console whoose serial ends with 123
    • This feature won't work if sysdvr can't find the console serial, this can happen if you used prodinfo editing tools.
  • When using the built-in player you can add the --fullscreen option to the command line to automatically switch to full screen
  • Fix a bug where sysdvr would get stuck on switching modes and required a reboot
  • When in full screen mode the window shouldn't disappear when it loses focus
  • When in full screen mode the mouse cursor is hidden
  • The SysDVR-settings homebrew shouldn't crash anymore when SysDVR isn't running

v.5.1

  • Fixed random image corruption in certain games, used to happen especially on still images #91
  • Fixed USB errors on linux #106
  • Export recordings as mp4 files #104
    • The recorded data is not processed to keep the cpu usage low, the output file may be big and not all video players may be able to play it. It's recommended to remux/re-encode the file after recording, an easy way of doing that is with ffmpeg: ffmpeg -i video.mp4 -c:v h264 -c:a aac output.mp4
    • While this seems to work well enough i didn't thoroughly test it with long recordings, please let me know of any issues.
  • Reduced stuttering in the built-in video player
  • The "simple network mode" RTSP server should now be more reliable and works in most video players

v.5.0.2

  • Fix USB on 11.0
  • Fix scaling for the built-in player when using a monitor that's not 16:9

v.5.0.1

  • Added full screen mode for the built-in player, press F11 to toggle it (#98).
  • Added scale filters for the built-in player, now the streaming should look better on high resolution screens.
  • Show a warning when running on Windows with an unsupported (x86) .NET runtime (#97).
  • Fix a crash when using an audio device with more than two channels (#94).
  • Show current PID in the player titlebar to allow streaming software to distinguish between multiple instances.
  • Minor fixes.

v.5.0

  • SysDVR-Client was upgraded to the just released .NET 5.0. Make sure to download it before trying this update. On windows you must install the x64 version
  • Custom built-in video player to ensure best performances, brings down latency to about 100ms or less, literally can't get better than this.
    • The built-in player uses ffmpeg and SDL2. Dlls are included for windows 64-bit, on mac and linux you can install them from your package managers, i added example commands in the guide.
    • As for 32 bit Windows ffmpeg officially doesn't provide 32 bit builds anymore. If you're still using a 32 bit PC you can get unofficial builds from third parties and extract them to the SysDVR-Client folder, this should work but i'm not providing support for it, you should upgrade your PC.
    • The implementation is still pretty rough and there's room for improvement but it's already a major step up from mpv, looking forward to user feedback.
    • All the previous streaming modes are still avalilable, you can see them with the --help option
  • New settings app with a proper GUI, explainations and links to the guide.
  • SysDVR-Client GUI has been updated to be simpler to use: only select USB or type the IP and click launch to stream.
  • Tweaked some timing and threading priorities that should improve performances on the console side
    • Due to the limited testing i can do on my own i don't know if these changes have any negative side effects, i didn't notice anything wrong but in case of problems like lag in games or degraded performances let me know and i'll revert it if it's necessary.
  • Added support for 32 bit arm in SysDVR-Client, now it can run on many single board computers like the raspberry pi
    • Depends on .NET support for your board. Raspberry pi zero and 1 are not supported due to older arm version.
    • Will most likely need manual configuration of hardware accelerated decoding to run smoothly, there's an explaination here.
  • Due to the changes to SysDVR-Client the command line arguments have slightly changed as well, this will likely break launch scripts generated by the GUI, make sure to delete them and create new ones with the latest version.

v.4.0.1

  • General system stability improvements to enhance the user's experience:
    • Reduced the number of FS sessions used by the sysmodule, should fix crashes when running alongside other sysmodules.
    • Fix a possible crash on windows versions that don't use the english alphabet.

v.4.0

  • Low latency streaming is now supported.
    • Stdin mpv streaming mode has been revamped to support low latency video streaming.
    • Unfortunately the console produces audio with a slight delay, this means that real-time streaming audio and video is not possible. This is not a bandwidth problem and even streaming just audio will be slightly delayed.
    • Streaming both audio and video is possible only via RTSP as stdin mode only supports one channel. Read the advanced section of the guide to find out how to launch mpv in low-latency mode.
  • USB streaming protocol has been updated to improve performances.
    • On windows the driver has been changed to WinUsb, if you previously installed the libusb driver you will have to replace it with zadig. The guide has been updated to explain how.
    • If you wish to keep on streaming with libusb add --no-winusb to the command line or enable Force LibUsb backend in the GUI.
    • On linux libusb is still used and nothing changes.
  • TCPBridge protocol has been changed as well to improve performances.
  • Reduced the memory usage of SysDVR from 3MB to ~1.1MB if you previously used the USB-only build due to memory concerns check if this solves your problems.
    • This may also fix SXOS compatibility but i haven't tested, will update once someone lets me know.
    • Edit: Received mixed reports, some say that it works some that it doesn't, please report in #39 if you still experience crashes.
  • All legacy args for SysDVR-Client have been replaced with a new syntax, less used functions have been removed, if you're using bat files from the GUI delete them and create new ones.
    • Due to the protocol changes you can't use previous versions of the client and clientGUI with the new sysmodule
  • Now it's possible to stream to stdout so you can pipe the raw data to any video player (one channel only)**Fix #30 #33 and several other bugs and crashes.

v.3.0

  • UsbStream has been renamed to SysDVR-Client, if you have the old version on your pc, delete it before extracting the new zip.
  • RTSP Streaming has been implemented in both SysDVR and SysDVR-Client, this implies the following:
    • Audio and video are finally properly synchronized.
    • Random stream desynchronization (lag) should be finally solved, it can still happen depending on the player and connection stability but pausing and unpausing the stream is enough to fix it.
    • Native support for many more players and other software such as OBS, live streaming from SysDVR has never been easier.
    • As now streaming requires a single player instance the GoLive feature on discord works as expected.
    • Unfortunately due to RTSP caching latency may have slightly increased, some players allow to disable it but not all, in the end is a stability/synchronization vs delay compromise (if you prefer less delay most of the previous modes are still available but not recommended)
    • While RTSP works fine mostly, some players like vlc don't really play nice with it, mpv is still the recommended player
  • The following streaming modes have been added:
    • Direct RTSP from SysDVR : it's possible to connect a player to the switch in the local network without any extra setup. This means you don't even need SysDVR-client, just type your switch ip address in mpv on your phone/pc and you're good to go !
    • TCP Bridge : video and audio data is sent via network to SysDVR-Client and it's relayed over RTSP (this has a few advantages over Direct RTSP as explained in the guide)
    • RTSP mode from USB : video and audio data are sent over USB and streamed via RTSP on the local pc
  • The old TCP streaming mode has been removed in favor of TCP bridge, it had major synchronization issues, in case you still need it it's still available in older versions.
  • Fixed a few issues reported on GitHub

v.2.0

  • The Network and USB versions have been merged in a single sysmodule, the zip includes an homebrew to set the streaming mode without having to reboot.
    • This also allows to temporarily disable the USB stream so you can launch other homebrews like nxmtp or GoldLeaf (solves #5)
    • As low memory usage is important to some users an USB-Only version is still provided, this however does not support the settings app and you have to manually remove it and reboot to use an homebrew requiring USB access.
  • Fixed the annoying "10 minutes bug" #2
  • Added UsbStreamGUI (Windows only), a graphical launcher for UsbStream for less experienced users
  • Minor changes to UsbStream to help troubleshoot issues

v.1.0

  • First Release.

Credits

  • Everyone from libnx and the people who reversed grc:d and wrote the service wrapper, mission2000 in particular for the suggestion on how to fix audio lag.
  • mtp-server-nx for their usb implementation
  • RTSPSharp for the C# RTSP library
  • Bonta on discord for a lot of help implementing a custom RTSP server
  • Xerpi for a lot of help while working on the UVC branch

External links

Advertising: