exelix11 / SysDVR

Stream switch games to your PC via USB or network
GNU General Public License v2.0
1.5k stars 90 forks source link

[Bug] MacOS Catalina It seems like it's working but I can't get any image #64

Closed jon-torres closed 3 years ago

jon-torres commented 4 years ago

It connects to the server but there is no video thru OBS or mpv. I have tried it with all modes. Have checked if system recognizes the console as an USB device for this mode.

Enable any of the modes, connected thru terminal and then added the address to the preferred video player.

Behaviour after trying to connect multiple times with OBS and other players (tried IINA and mpv as well) : jontorres@Jons-MacBook-Pro SysDVR-Client % dotnet SysDVR-Client.dll bridge 192.168.0.103 SysDVR-Client - 4.0.1 by exelix https://github.com/exelix11/SysDVR

~ SysDVR-Client % dotnet SysDVR-Client.dll bridge 192.168.0.103 SysDVR-Client - 4.0.1 by exelix https://github.com/exelix11/SysDVR Starting stream, press return to stop If the stream lags try pausing and unpausing the player. Now streaming via RTSP on port 6666 Connect with your player to rtsp://127.0.0.1:6666/ Connection from 127.0.0.1:56063 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup Connection from 127.0.0.1:56074 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup

Behaviour after terminating the process and trying again: ~ SysDVR-Client % dotnet SysDVR-Client.dll bridge 192.168.0.103 SysDVR-Client - 4.0.1 by exelix https://github.com/exelix11/SysDVR

Starting stream, press return to stop If the stream lags try pausing and unpausing the player. Now streaming via RTSP on port 6666 Connect with your player to rtsp://127.0.0.1:6666/ Terminating Video thread due to System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (61): Connection refused [::ffff:192.168.0.103]:9911 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source) at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) at System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult) at System.Net.Sockets.TcpClient.<>c.b__28_1(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at SysDVRClient.Exten.ConnectAsync(TcpClient tcpClient, String host, Int32 port, CancellationToken cancellationToken) at SysDVRClient.TCPBridgeSource.WaitForConnection() at SysDVRClient.StreamingThread.ThreadMain() Terminating Audio thread due to System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (61): Connection refused [::ffff:192.168.0.103]:9922 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source) at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) at System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult) at System.Net.Sockets.TcpClient.<>c.b__28_1(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at SysDVRClient.Exten.ConnectAsync(TcpClient tcpClient, String host, Int32 port, CancellationToken cancellationToken) at SysDVRClient.TCPBridgeSource.WaitForConnection() at SysDVRClient.StreamingThread.ThreadMain()

Setup information

edit: updated with full command lines edit2: new behaviour added

exelix11 commented 4 years ago

Connection refused [::ffff:192.168.0.103]:9911

Sounds like the client can't connect to your console, there are several reasons for this, from the top of my mind:

If none of these help check your network setup as it's likely a misconfiguration in your router/PC/console

exelix11 commented 4 years ago

Also i've just been made aware on discord, certain games prevent the console from connecting to the wifi by using local communication to connect to other consoles, it seems pokemon sword/shield always does this while playing offline. A workaround could be using USB or the lan play sysmodule to prevent it from disconnecting from the wifi.

jon-torres commented 4 years ago

SysDVR is not running or not in the right mode: open the SysDVR settings homebrew and select TCP Bridge mode.

How do I check if the sysmodule is running in the background, please? I have tried every mode already.

Also i've just been made aware on discord, certain games prevent the console from connecting to the wifi by using local communication to connect to other consoles, it seems pokemon sword/shield always does this while playing offline. A workaround could be using USB or the lan play sysmodule to prevent it from disconnecting from the wifi.

I am using offline online games like FFXII and Aragami.

You modified your console connection settings for something like LAN Play

Not the case.

If none of these help check your network setup as it's likely a misconfiguration in your router/PC/console

I will try to figure it out. When I ping the console IP, it returns with results. I can use ftp and so on.

edit: format

exelix11 commented 4 years ago

How do I check if the sysmodule is running in the background, please? I have tried every mode already.

If sysdvr settings doesn't show any error then it's running.

Other things to keep in mind:

While this is not related to your issue make sure your games support video recording or else sysdvr won't work for them.

You mentioned using all modes, does this means you have problems with the USB driver as well?

jon-torres commented 4 years ago

I have tried looking thru firewall settings. I even tried windows and nothing.

While on mac, that's what I get from usb:

dotnet SysDVR-Client.dll usb SysDVR-Client - 4.0.1 by exelix https://github.com/exelix11/SysDVR

Starting stream, press return to stop If the stream lags try pausing and unpausing the player. Now streaming via RTSP on port 6666 Connect with your player to rtsp://127.0.0.1:6666/ Connection from 127.0.0.1:59617 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup Connection from 127.0.0.1:59619 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup Connection from 127.0.0.1:59633 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup Connection from 127.0.0.1:59635 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup Connection from 127.0.0.1:59637 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup RTSP message received Rtsp.Messages.RtspRequestSetup RTSP message received Rtsp.Messages.RtspRequestPlay Connection from 127.0.0.1:59644 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe

exelix11 commented 4 years ago

With no error message like that I think the game you're trying to stream doesn't support video recording. Try long pressing the capture button, if it says videos can't be captured you can't stream that game. If it does support recording try launching sysdvr-client with the --print-stats option as explained in the troubleshooting page

jon-torres commented 4 years ago

Oh, I should mention that 90% of the times when I reopen the homebrew trying to change the streaming mode by selecting "stop streaming", it gives me an error message stating that were problems in trying to connect to the sysmodule. And I have to reboot to hekate to get things working again. But I use a CFW package and it allows me to turn the modules on and off and when I turn it off, the application won't connect to the sysmodule at all. I guess it means that they are able to communicate to each other.

With no error message like that I think the game you're trying to stream doesn't support video recording. Try long pressing the capture button, if it says videos can't be captured you can't stream that game.

No, I have tried it before. It's Final Fantasy XII, the recording function works.

If it does support recording try launching sysdvr-client with the --print-stats option as explained in the troubleshooting page

Sorry, my bad in not doing so before. Here it goes: USB ysDVR-Client % dotnet SysDVR-Client.dll usb --print-stats SysDVR-Client - 4.0.1 by exelix https://github.com/exelix11/SysDVR

Starting stream, press return to stop If the stream lags try pausing and unpausing the player. Now streaming via RTSP on port 6666 Connect with your player to rtsp://127.0.0.1:6666/ Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Io while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Warning: libusb error Timeout while requesting data Connection from 127.0.0.1:59775 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/

TCP SysDVR-Client % dotnet SysDVR-Client.dll bridge rtsp://192.168.0.103 --print-stats SysDVR-Client - 4.0.1 by exelix https://github.com/exelix11/SysDVR

Starting stream, press return to stop If the stream lags try pausing and unpausing the player. Now streaming via RTSP on port 6666 Connect with your player to rtsp://127.0.0.1:6666/ Terminating Audio thread due to System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (00000005, 0xFFFDFFFF): nodename nor servname provided, or not known at System.Net.Dns.InternalGetHostByName(String hostName) at System.Net.Dns.ResolveCallback(Object context) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source) at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult) at System.Net.Sockets.Socket.DoDnsCallback(IAsyncResult result, MultipleAddressConnectAsyncResult context) at System.Net.Sockets.Socket.DnsCallback(IAsyncResult result) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source) at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) at System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult) at System.Net.Sockets.TcpClient.<>c.b__28_1(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at SysDVRClient.Exten.ConnectAsync(TcpClient tcpClient, String host, Int32 port, CancellationToken cancellationToken) at SysDVRClient.TCPBridgeSource.WaitForConnection() at SysDVRClient.StreamingThread.ThreadMain() Terminating Video thread due to System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (00000005, 0xFFFDFFFF): nodename nor servname provided, or not known at System.Net.Dns.InternalGetHostByName(String hostName) at System.Net.Dns.ResolveCallback(Object context) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source) at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult) at System.Net.Sockets.Socket.DoDnsCallback(IAsyncResult result, MultipleAddressConnectAsyncResult context) at System.Net.Sockets.Socket.DnsCallback(IAsyncResult result) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(Exception source) at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) at System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult) at System.Net.Sockets.TcpClient.<>c.b__28_1(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at SysDVRClient.Exten.ConnectAsync(TcpClient tcpClient, String host, Int32 port, CancellationToken cancellationToken) at SysDVRClient.TCPBridgeSource.WaitForConnection() at SysDVRClient.StreamingThread.ThreadMain() Connection from 127.0.0.1:59880 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup Connection from 127.0.0.1:59881 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup Connection from 127.0.0.1:59882 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup

My settings with OBS: image

edit: extra info (obs rtsp)

exelix11 commented 4 years ago

Oh, I should mention that 90% of the times when I reopen the homebrew trying to change the streaming mode by selecting "stop streaming", it gives me an error message stating that were problems in trying to connect to the sysmodule.

This is normal if you close a game while a client is connected, sysdvr is stuck waiting a frame from the game which can't produce as it's paused.

But I use a CFW package and it allows me to turn the modules on and off and when I turn it off

This is not supported for sysdvr due to system services limitations, leave it on and to fully disable it delete it from the sd

SysDVR-Client % dotnet SysDVR-Client.dll bridge rtsp://192.168.0.103 --print-stats

This is wrong, for bridge mode you need to specify only the ip address, remove the rtsp:// part: dotnet SysDVR-Client.dll bridge 192.168.0.103 --print-stats

From the USB logs it does seem that the game is not sending anything, not sure.

jon-torres commented 4 years ago

This is wrong, for bridge mode you need to specify only the ip address, remove the rtsp:// part: dotnet SysDVR-Client.dll bridge 192.168.0.103 --print-stats

Damn, my bad. Btw I tried as a super user and the output was the same. No image for OBS.

SysDVR-Client % dotnet SysDVR-Client.dll bridge 192.168.0.103 --print-stats
SysDVR-Client - 4.0.1 by exelix https://github.com/exelix11/SysDVR

Starting stream, press return to stop If the stream lags try pausing and unpausing the player. Now streaming via RTSP on port 6666 Connect with your player to rtsp://127.0.0.1:6666/ Connection from 127.0.0.1:60180 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup Connection from 127.0.0.1:60181 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup Connection from 127.0.0.1:60182 RTSP message received Rtsp.Messages.RtspRequestOptions RTSP message received Rtsp.Messages.RtspRequestDescribe Request for rtsp://127.0.0.1:6666/ RTSP message received Rtsp.Messages.RtspRequestSetup

When I try thru mpv I get no image as well and when I stop it, that's the output That's probably on my side because I am probably doing something wrong with mpv. But I am trying IINA as well (which is totally based on mpv) and I am having no luck. But it was supposed to work with OBS, right?

bin % mpv rtsp://127.0.0.1:6666/ [ffmpeg/demuxer] rtsp: Could not find codec parameters for stream 0 (Video: h264, none): unspecified size [ffmpeg/demuxer] Consider increasing the value for the 'analyzeduration' and 'probesize' options

Exiting... (Quit)

exelix11 commented 4 years ago

Nothing appears with print stats means sysdvr from the console isn't transmitting anything. No clue what could be wrong, guess try another game or stock atmosphere.

exelix11 commented 3 years ago

I was re-reading this issue to decide if it's worth keeping it open, the user tried several modes with different errors each time, it's hard to keep track of a specific issue and given the inactivity i'll close it. The last problem with OBS may be related to #90 , not sure about the rest.