SjoerdBe 1 Posted October 28, 2025 Posted October 28, 2025 Same issue here. Following the topic. It appears to happen at least with 1 show. It happens exactly as OP said. I am running Emby on Synology server and I use Google Chromecast with its only remote, so I don't cast from my phone. I stopped casting from my phone a couple of months ago because this behaviour used to happen when casting on my phone but not with the remote, so I switched to the remote.
SjoerdBe 1 Posted October 28, 2025 Author Posted October 28, 2025 I think this information might be relevant: It appears to happen only with shows I have watched before, gotten halfway (lets say season 4 of Big Bang Theory) and then start watching again from season 1 a half year later. Like we all do from time to time.
Luke 42077 Posted November 3, 2025 Posted November 3, 2025 @SjoerdBe Hi there, let's look at an example. Please attach the information requested in how to report a media playback issue. Thanks!
SjoerdBe 1 Posted November 7, 2025 Author Posted November 7, 2025 Will do! I just enabled the debug logs, and will await for the issue to occur again. It seems to happen sporadically, there is no consistency. I am a software engineer, I know what you need. 1
SjoerdBe 1 Posted November 15, 2025 Author Posted November 15, 2025 Yes! A couple of times, including just now (around 17:42 / 17:43) I will attach the entire log file, but I think this is what you might be looking for: 2025-11-15 17:42:52.159 Debug PortMapper: Creating port map on local port 8096 to public port 8096 with device 192.168.0.36 2025-11-15 17:42:52.159 Debug HttpClient: POST http://192.168.0.1:33754/ctl/IPConn 2025-11-15 17:42:52.165 Error PortMapper: Error creating port map *** Error Report *** Version: 4.8.11.0 Command line: /volume1/@appstore/EmbyServer/system/EmbyServer.dll -programdata /var/packages/EmbyServer/var -ffdetect /var/packages/EmbyServer/target/bin/ffdetect -ffmpeg /var/packages/EmbyServer/target/bin/ffmpeg -ffprobe /var/packages/EmbyServer/target/bin/ffprobe -nolocalportconfig -ignore_vaapi_enabled_flag -pidfile /var/packages/EmbyServer/var/EmbyServer.pid -defaultdirectory /volume1/Public -updatepackage emby-server-synology72_{version}_x86_64.spk -noautorunwebapp Operating system: Linux version 4.4.302+ (root@build5) (gcc version 12.2.0 (GCC) ) #72806 SMP Mon Jul 21 23:14:27 CST 2025 Framework: .NET 6.0.36 OS/Process: x64/x64 Runtime: volume1/@appstore/EmbyServer/system/System.Private.CoreLib.dll Processor count: 4 Data path: /var/packages/EmbyServer/var Application path: /volume1/@appstore/EmbyServer/system MediaBrowser.Model.Net.HttpException: MediaBrowser.Model.Net.HttpException: Connection refused (192.168.0.1:33754) ---> System.Net.Http.HttpRequestException: Connection refused (192.168.0.1:33754) ---> 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|277_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, 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.AddHttp11ConnectionAsync(HttpRequestMessage request) at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(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 System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsyncInternal(HttpRequestOptions options, String httpMethod) --- End of inner exception stack trace --- at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsyncInternal(HttpRequestOptions options, String httpMethod) at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsync(HttpRequestOptions options, String httpMethod) at Mono.Nat.Upnp.UpnpNatDevice.CreatePortMapInternal(Mapping mapping, CancellationToken cancellationToken) at Mono.Nat.Upnp.UpnpNatDevice.CreatePortMap(Mapping mapping, CancellationToken cancellationToken) at Emby.PortMapper.ExternalPortForwarding.CreateRules(INatDevice device, CancellationToken cancellationToken) Source: Emby.Server.Implementations TargetSite: Void MoveNext() InnerException: System.Net.Http.HttpRequestException: Connection refused (192.168.0.1:33754) Source: System.Net.Http TargetSite: Void MoveNext() at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, 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.AddHttp11ConnectionAsync(HttpRequestMessage request) at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(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 System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsyncInternal(HttpRequestOptions options, String httpMethod) InnerException: System.Net.Sockets.SocketException: Connection refused Source: System.Net.Sockets TargetSite: Void ThrowException(System.Net.Sockets.SocketError, System.Threading.CancellationToken) 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|277_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) 2025-11-15 17:42:52.191 Info Server: http/1.1 Response 206 to host1. Time: 148ms. GET http://192.168.0.36:8096/emby/videos/72116/original.mkv?DeviceId=a4b8716f24b1dcba&MediaSourceId=7628d6a372019fbe109072fc69a839ca&PlaySessionId=118630272d1c47b28dff05d4b1a1eb3f&api_key=x_secret1_x embyserver.txt
SjoerdBe 1 Posted December 7, 2025 Author Posted December 7, 2025 @Lukedid you see the logs / find the issue? Can I check the emby source out somewhere? I could troubleshoot for you
SjoerdBe 1 Posted December 7, 2025 Author Posted December 7, 2025 (edited) @Lukedid you see the logs / find the issue? Can I check the emby source out somewhere? I could troubleshoot for you. Edit: more logs in attachment. Playing a serie of "Bobo" I downloaded recently this morning and the issue occurs over and over again. Edit2. I found the github repo, I will see what I can do embyserver.txt Edited December 7, 2025 by SjoerdBe
SjoerdBe 1 Posted December 7, 2025 Author Posted December 7, 2025 You might want this too, chromecast versions: Firmwareversie van systeem: UTTC.250917.004 Firmwareversie van Cast: 3.72.446070
SjoerdBe 1 Posted December 7, 2025 Author Posted December 7, 2025 @Lukedid you see the logs / find the issue? Can I check the emby source out somewhere? I could troubleshoot for you. Edit: Found the source, but I think its old. However here is a copy-pasteable for your Jira ticket with cause and possible solution. --- Issue breakdown Server: Emby Server 4.8.11.0 on Synology. Client: “Emby for Android 3.5.16” on Chromecast HD / Android 14 (AndroidXMedia3/1.5.1 in the UA). Symptom: When watching a series with auto-play next episode enabled, the next episode sometimes plays audio only with a black screen on the TV. If I go back and manually start the same episode, it plays normally with both audio and video. This happens with multiple series. What I see in the server logs For transitions that work and transitions that fail, the server log is effectively the same: A PlaybackInfo request: 2025-11-15 17:41:05.613 Info Server: http/1.1 Response 200 to host1. Time: 3ms. POST /emby/Items/72116/PlaybackInfo ... IsPlayback=true ... AutoOpenLiveStream=true ... Immediately followed by a direct-play request for the original file from the Chromecast: 2025-11-15 17:41:06.755 Info Server: http/1.1 GET /emby/videos/72116/original.mkv?DeviceId=a4b8...&MediaSourceId=7628d6a3...&PlaySessionId=... User-Agent: Emby/3.5.16 (Linux;Android 14) AndroidXMedia3/1.5.1 On Bobo it’s the same pattern with original.mp4: 2025-12-07 07:40:24.297 Info VideoService: GET /emby/videos/78581/original.mp4?DeviceId=a4b8...&MediaSourceId=mediasource_78581&PlaySessionId=... 2025-12-07 07:40:24.316 Info VideoService: Response 206 to host2. Time: 264ms. No transcoding job is started for these plays, no ffmpeg commands, and there are no server-side errors at the time the client shows audio-only. So from the server’s perspective, both the “good” and “bad” next-episode transitions look healthy: it returns 200 for PlaybackInfo and then 206 for the direct-play stream (original.mkv / original.mp4), and the Chromecast keeps reading data. That suggests it’s not a “server returns 200 too early before transcoding is ready” issue, because in these cases the episodes are direct-played, not transcoded. Hypothesis (possible cause) The Chromecast / Google TV client (Media3/ExoPlayer 1.5.1) seems to reuse the same playback pipeline when auto-playing the next episode in the same session. Occasionally, when switching to the next episode via auto-play, the player ends up with only the audio renderer active and never re-initialises the video decoder / surface. The server keeps feeding the file (direct-play), but on the Chromecast side the video track is never actually displayed, hence audio-only, black screen, even though the HTTP stream is fine. In other words, the difference between “works” and “fails” appears to be entirely on the Android/Chromecast client side, not in what the server is returning. Possible direction / suggestion for a fix From what I see in the logs, a robust fix probably has to be on the Android TV / Chromecast client: For cast sessions when auto-playing the next episode: Treat it as a fresh playback instead of just swapping media items in the same player instance. Concretely: send a Stop for the current item and then a brand-new Load for the next episode (new Media3/ExoPlayer instance / fresh cast load), instead of reusing the existing session/renderer pipeline. That should force the video decoder and surface to be recreated for each new episode, which would avoid the “audio-only” state even though the direct-play stream itself is fine. If you want I can provide exact log timestamps of a “good” and a “bad” transition, but the high-level pattern is the same in both cases: server OK, client appears to get stuck only showing audio.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now