jellyfin / jellyfin-plugin-dlna

GNU General Public License v3.0
11 stars 7 forks source link

[Issue]: DLNA no longer works #18

Open dab2020 opened 2 years ago

dab2020 commented 2 years ago

Please describe your bug

The issue I am facing is that the DLNA server in Jellyfin is no longer functional. I was away from home for quite some time and when I came back and tried playing files from my WebOS TV it wouldn't work. The DLNA server simply dose not show up any where.

Jellyfin Version

10.7.7

if other:

also tried the alpha for 10.8

Environment

- OS: Windows 10 64 bit
- Virtualization: Bare Metal
- Clients: LG WebOS TV
- Networking: Local network Only install: Exception through firewall has also been granted.

Jellyfin logs

Tried adding this to .default.json

{ "Serilog": { "MinimumLevel": { "Default": "Warning", "Override": { "Microsoft": "Warning", "System": "Warning", "Emby.Dlna": "Debug", "Emby.Dlna.Eventing": "Debug" } } } }

But this doesn't give me any meaningful DLNA related output, so can't post any logs. Sorry !

FFmpeg logs

No response

Please attach any browser or client logs here

No response

Please attach any screenshots here

No response

Code of Conduct

nklamann commented 2 years ago

I have a similar problem with 10.7.7 under debian 11

The DLNA server ist only visible with VLC under Windows but not from android devices. An interesting information form the log is:

[2021-12-28 08:34:01.201 +00:00] [DBG] Attempting to create PlayToController from location http://127.0.0.1:58645/dev/e91a186b-ee90-4d6d-a68d-5bd18826f8ab/desc.xml
[2021-12-28 08:34:01.203 +00:00] [ERR] Error creating PlayTo device.
System.Net.Http.HttpRequestException: Connection refused (127.0.0.1:58645)
 ---> System.Net.Sockets.SocketException (111): Connection refused
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
   at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
   at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|283_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.DefaultConnectAsync(SocketsHttpConnectionContext context, CancellationToken cancellationToken)
   at System.Net.Http.ConnectHelper.ConnectAsync(Func`3 callback, DnsEndPoint endPoint, HttpRequestMessage requestMessage, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.ConnectHelper.ConnectAsync(Func`3 callback, DnsEndPoint endPoint, HttpRequestMessage requestMessage, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage request, HttpCompletionOption completionOption, Boolean async, Boolean emitTelemetryStartStop, CancellationToken cancellationToken)
   at Emby.Dlna.PlayTo.SsdpHttpClient.GetDataAsync(String url, CancellationToken cancellationToken)
   at Emby.Dlna.PlayTo.Device.CreateuPnpDeviceAsync(Uri url, IHttpClientFactory httpClientFactory, ILogger logger, CancellationToken cancellationToken)
   at Emby.Dlna.PlayTo.PlayToManager.AddDevice(UpnpDeviceInfo info, CancellationToken cancellationToken)
   at Emby.Dlna.PlayTo.PlayToManager.OnDeviceDiscoveryDeviceDiscovered(Object sender, GenericEventArgs`1 e)

http://127.0.0.1seems wrong. The Server recognizes some of the DLNA devices lurking in the net and does normally something like

Attempting to create PlayToController from location http://10.10.1.133:2870/dmr.xml

These URLS are valid and 127.0.0.1 makes no sense to me.

HTH

Norbert

dab2020 commented 2 years ago

OK so now the JF server is visible.

Found that Windows built in Sharing thing was hogging port 1900. After stopping that and than afterwards granting every exemption possible to JF, it started working.

But Then I ran into a another problem, On my LG TV formats that are direct play compatible are also being shown as 'Unable to Play'. The same files work perfectly when played via my routers built in DLNA function.

FartherOut commented 2 years ago

Is this still an issue? I have been on 10.6.4 forever now because 10.7.x versions completely breaks playback to my LG TV with "unsupported format" or "could not play file" or similar.

dab2020 commented 2 years ago

That is the same issue I have. In fact after your comment I spun a VM and put 10.6.4 on it and gave it its own network interface. And it works just fine with the same media.

kls0e commented 2 years ago

Is this still an issue? I have been on 10.6.4 forever now because 10.7.x versions completely breaks playback to my LG TV with "unsupported format" or "could not play file" or similar.

for my old LG bluray DLNA player, 10.7.7 is the last version with working DLNA play-to. with all more recent releases up to 10.8-beta5 the LG player says the file is not supported.

rchovan commented 1 year ago

Hi, I have same issue with 10.8.x I can't even browse DLNA directory on 1st time. When I try on 2nd time it works, but playback still does not work. I have JF in docker container on Linux host.

This is what I found in logs:


[2022-09-21 19:27:28.714 +02:00] [ERR] [84] Emby.Dlna.ContentDirectory.ContentDirectoryService: Error processing control request
[2022-09-21 19:27:28.715 +02:00] [ERR] [84] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL "POST" "/dlna/963d5772-d37f-4352-b87a-9ea86af6ccb3/contentdirectory/control".
[2022-09-21 19:27:28.719 +02:00] [WRN] [84] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "http://192.168.2.5:8096/dlna/963d5772-d37f-4352-b87a-9ea86af6ccb3/contentdirectory/control" to "192.168.2.8" in 0:00:00.525244 with Status Code 400```
wandersfalsin commented 1 year ago

I do.

jellyfin-bot commented 1 year ago

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

SodaWithoutSparkles commented 1 year ago

I hooked up wireshark to the host i was running jellyfin on, and found interesting results. Jellyfin seems to try to access a /dmr path which resulted in 404. I wonder if this is related.

You can try this by using ssh capture in wireshark's option. You may filter for the ip address of the DLNA renderer to reduce noise.

I dumped the relevant files in jellyfin/jellyfin-plugin-dlna#39