Chrome HDMI for Channels (CH4C): Chrome channel tuner plus HDMI encoder

Can this be used at the same time with Chrome capture 4 Channels? Thank you.

Yes, CH4C can be used at the same time as CC4C. Just be aware that CC4C does use a substantial amount of the PC compute. Also, you need to make sure that the CH4C browser instances have their own displays and are different from the display where CC4C is running.

hello brother I am having a problem because whenever I try to watch or record nbc telemundo by using this github aplication it starts well but then suddenly stops, if I press play again it keeps playing but if I dont there is just a play button in the center and a frozen image of what was playing, it does not do thisfor other channels, could you please help me?

Hello brother I was able to capture Telemundo successfully but through Fubo, I hope that helps you or anyone having a similar problem. Is it possible to capture Directv channels, and if so what would be the urls used for each channel because last time I checked Directv doesnt provide a unique url for each channel but if I am wrong I apologize and I hope you can help me understand, thank you so much!

One last thing, when you mentioned CC4C browser must have its own display do you mean like its own screen sort of speak, and if so how do I do this? Because my minipc just has an hdmi output port and a display port and each is connected to an encoder. Thanks in advance!

Thanks this worked great for me to get access to my RSN finally, their clunky android app was all I had before this.

What's your RSN? Curious if its NESN.

Altitude+.

I added back the capability to do instant viewing and recordings as well as a new status page (http://<CH4C_IP:<CH4C_PORT>/). Improved some error handling and mitigated some bot detection issues as well.

https://github.com/dravenst/CH4C/releases/tag/v0.1.2

1 Like

@dravenst

I've been trying on-and-off for a few weeks to get this project operational for me -- with no success. I'm using v0.1.2 of ch4c.exe, and Chrome is up-to-date at Version 142.0.7444.163 (Official Build) (64-bit).

Here's my log including launch of ch4c, and one attempted (but failed) tuning cycle:

{
  "CHANNELS_URL": "http://192.168.110.66",
  "CHANNELS_PORT": "8089",
  "ENCODERS": [
    {
      "url": "http://192.168.110.147/live/stream0",
      "channel": "24.42",
      "width": 0,
      "height": 0,
      "audioDevice": "Encoder"
    },
    {
      "url": "http://192.168.110.147/live/stream1",
      "channel": "24.43",
      "width": 1921,
      "height": 0,
      "audioDevice": "MACROSILICON"
    }
  ],
  "CH4C_PORT": 2442,
  "ENABLE_PAUSE_MONITOR": true,
  "PAUSE_MONITOR_INTERVAL": 10
}
[11/15/2025, 1:32:25 AM] Checking if port 2442 is available...
[11/15/2025, 1:32:25 AM] Checking for Chrome processes using encoder profiles...
[11/15/2025, 1:32:25 AM] Testing Chrome profile availability...
[11/15/2025, 1:32:25 AM] Testing Chrome launch with profile: C:\Users\slayer\AppData\Local\Google\Chrome\User Data\encoder_0
[11/15/2025, 1:32:26 AM] ✓ Profile available for http://192.168.110.147/live/stream0
[11/15/2025, 1:32:26 AM] Testing Chrome launch with profile: C:\Users\slayer\AppData\Local\Google\Chrome\User Data\encoder_1
[11/15/2025, 1:32:27 AM] ✓ Profile available for http://192.168.110.147/live/stream1
[11/15/2025, 1:32:27 AM] Port and Chrome profiles are available. Starting CH4C...
[11/15/2025, 1:32:27 AM] Initializing browser pool with validation...
[11/15/2025, 1:32:27 AM] Validating encoder connection http://192.168.110.147/live/stream0 (attempt 1/3)
[11/15/2025, 1:32:27 AM] Encoder http://192.168.110.147/live/stream0 is reachable (status: 200)
[11/15/2025, 1:32:27 AM] Initializing browser for encoder: http://192.168.110.147/live/stream0
[11/15/2025, 1:32:27 AM] starting browser for encoder http://192.168.110.147/live/stream0 at position 0,0
[11/15/2025, 1:32:27 AM] Using user data directory: C:\Users\slayer\AppData\Local\Google\Chrome\User Data\encoder_0
[11/15/2025, 1:32:27 AM] Validating audio device: "Encoder"
[11/15/2025, 1:32:28 AM] Found 2 audio devices via WaveOut
[11/15/2025, 1:32:28 AM]   - MACROSILICON (2- HD Audio Driver for Display Audio)
[11/15/2025, 1:32:28 AM]   - Encoder (HD Audio Driver for Display Audio)
[11/15/2025, 1:32:28 AM] ✓ Matched "Encoder" to: "Encoder (HD Audio Driver for Display Audio)"
[11/15/2025, 1:32:28 AM] Launch arguments: [
  '--no-first-run',
  '--hide-crash-restore-bubble',
  '--test-type',
  '--disable-blink-features=AutomationControlled',
  '--disable-notifications',
  '--disable-session-crashed-bubble',
  '--noerrdialogs',
  '--no-default-browser-check',
  '--allow-running-insecure-content',
  '--autoplay-policy=no-user-gesture-required',
  '--window-position=0,0',
  '--window-size=1280,720',
  '--new-window',
  '--disable-background-networking',
  '--disable-background-timer-throttling',
  '--disable-background-media-suspend',
  '--disable-backgrounding-occluded-windows',
  '--use-fake-ui-for-media-stream',
  '--audio-output-device=Encoder (HD Audio Driver for Display Audio)'
]
[11/15/2025, 1:32:28 AM] Using existing page for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:32:28 AM] loading page for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:32:30 AM] page fully loaded for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:32:30 AM] Attempting CDP minimization for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:32:30 AM] Successfully minimized window via CDP for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:32:30 AM] Successfully initialized browser for encoder: http://192.168.110.147/live/stream0
[11/15/2025, 1:32:30 AM] Validating encoder connection http://192.168.110.147/live/stream1 (attempt 1/3)
[11/15/2025, 1:32:30 AM] Encoder http://192.168.110.147/live/stream1 is reachable (status: 200)
[11/15/2025, 1:32:30 AM] Initializing browser for encoder: http://192.168.110.147/live/stream1
[11/15/2025, 1:32:30 AM] starting browser for encoder http://192.168.110.147/live/stream1 at position 1921,0
[11/15/2025, 1:32:30 AM] Using user data directory: C:\Users\slayer\AppData\Local\Google\Chrome\User Data\encoder_1
[11/15/2025, 1:32:30 AM] Validating audio device: "MACROSILICON"
[11/15/2025, 1:32:31 AM] Found 2 audio devices via WaveOut
[11/15/2025, 1:32:31 AM]   - MACROSILICON (2- HD Audio Driver for Display Audio)
[11/15/2025, 1:32:31 AM]   - Encoder (HD Audio Driver for Display Audio)
[11/15/2025, 1:32:31 AM] ✓ Matched "MACROSILICON" to: "MACROSILICON (2- HD Audio Driver for Display Audio)"
[11/15/2025, 1:32:31 AM] Launch arguments: [
  '--no-first-run',
  '--hide-crash-restore-bubble',
  '--test-type',
  '--disable-blink-features=AutomationControlled',
  '--disable-notifications',
  '--disable-session-crashed-bubble',
  '--noerrdialogs',
  '--no-default-browser-check',
  '--allow-running-insecure-content',
  '--autoplay-policy=no-user-gesture-required',
  '--window-position=1921,0',
  '--window-size=1280,720',
  '--new-window',
  '--disable-background-networking',
  '--disable-background-timer-throttling',
  '--disable-background-media-suspend',
  '--disable-backgrounding-occluded-windows',
  '--use-fake-ui-for-media-stream',
  '--audio-output-device=MACROSILICON (2- HD Audio Driver for Display Audio)'
]
[11/15/2025, 1:32:32 AM] Using existing page for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:32:32 AM] loading page for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:32:33 AM] page fully loaded for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:32:33 AM] Attempting CDP minimization for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:32:33 AM] Successfully minimized window via CDP for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:32:33 AM] Successfully initialized browser for encoder: http://192.168.110.147/live/stream1
[11/15/2025, 1:32:33 AM] Browser pool initialization complete: 2 succeeded, 0 failed
[11/15/2025, 1:32:33 AM] CH4C listening on port 2442
[11/15/2025, 1:32:33 AM] See status at http://localhost:2442/
[11/15/2025, 1:32:33 AM] Instant recording/tuning available at http://localhost:2442/instant
[11/15/2025, 1:32:56 AM] streaming to https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch using encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:32:56 AM] Browser set active for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:32:56 AM] Sling URL detected - navigating to home page first to avoid bot detection
[11/15/2025, 1:32:56 AM] Page target changed for http://192.168.110.147/live/stream0: https://watch.sling.com/
[11/15/2025, 1:32:57 AM] Navigated to Sling home page
[11/15/2025, 1:32:58 AM] Navigating to channel: https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch
[11/15/2025, 1:32:58 AM] Page target changed for http://192.168.110.147/live/stream0: https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch
[11/15/2025, 1:32:59 AM] Successfully navigated to Sling channel
[11/15/2025, 1:32:59 AM] Validating encoder connection http://192.168.110.147/live/stream0 (attempt 1/2)
[11/15/2025, 1:32:59 AM] Encoder http://192.168.110.147/live/stream0 is reachable (status: 200)
[11/15/2025, 1:32:59 AM] Checking for Sling modals before video load
[11/15/2025, 1:32:59 AM] Page target changed for http://192.168.110.147/live/stream0: https://watch.sling.com/dashboard/home
[11/15/2025, 1:32:59 AM] Page target changed for http://192.168.110.147/live/stream0: https://watch.sling.com/modal
[11/15/2025, 1:32:59 AM] response stream closed for http://192.168.110.147/live/stream0
[11/15/2025, 1:32:59 AM] Starting cleanup for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:32:59 AM] Attempting to close browser for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:32:59 AM] Page target destroyed for http://192.168.110.147/live/stream0
[11/15/2025, 1:32:59 AM] Browser disconnected for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:32:59 AM] Browser disconnection for http://192.168.110.147/live/stream0 is intentional (part of cleanup), skipping recovery
[11/15/2025, 1:32:59 AM] Detected Sling modal (attempt 1/7), simulating human interaction...
[11/15/2025, 1:33:00 AM] Browser closed for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:00 AM] Stream operation failed for http://192.168.110.147/live/stream0 (attempt 1/3): Protocol error (Input.dispatchKeyEvent): Session closed. Most likely the page has been closed.
[11/15/2025, 1:33:00 AM] Stream operation failed for http://192.168.110.147/live/stream0 (attempt 2/3): Browser not connected
[11/15/2025, 1:33:00 AM] Stream operation failed for http://192.168.110.147/live/stream0 (attempt 3/3): Browser not connected
[11/15/2025, 1:33:00 AM] Stream setup failed for http://192.168.110.147/live/stream0: Browser not connected
[11/15/2025, 1:33:00 AM] Cleanup already in progress for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:00 AM] streaming to https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch using encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:00 AM] Browser set active for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:00 AM] Sling URL detected - navigating to home page first to avoid bot detection
[11/15/2025, 1:33:01 AM] Page target changed for http://192.168.110.147/live/stream1: https://watch.sling.com/
[11/15/2025, 1:33:01 AM] Navigated to Sling home page
[11/15/2025, 1:33:02 AM] Attempting to re-initialize browser for http://192.168.110.147/live/stream0 in pool after cleanup.
[11/15/2025, 1:33:02 AM] Navigating to channel: https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch
[11/15/2025, 1:33:02 AM] Page target changed for http://192.168.110.147/live/stream1: https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch
[11/15/2025, 1:33:03 AM] starting browser for encoder http://192.168.110.147/live/stream0 at position 0,0
[11/15/2025, 1:33:03 AM] Using user data directory: C:\Users\slayer\AppData\Local\Google\Chrome\User Data\encoder_0
[11/15/2025, 1:33:03 AM] Validating audio device: "Encoder"
[11/15/2025, 1:33:03 AM] Successfully navigated to Sling channel
[11/15/2025, 1:33:03 AM] Validating encoder connection http://192.168.110.147/live/stream1 (attempt 1/2)
[11/15/2025, 1:33:03 AM] Encoder http://192.168.110.147/live/stream1 is reachable (status: 200)
[11/15/2025, 1:33:03 AM] Checking for Sling modals before video load
[11/15/2025, 1:33:03 AM] Page target changed for http://192.168.110.147/live/stream1: https://watch.sling.com/dashboard/home
[11/15/2025, 1:33:04 AM] response stream closed for http://192.168.110.147/live/stream1
[11/15/2025, 1:33:04 AM] Starting cleanup for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:04 AM] Attempting to close browser for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:04 AM] Modals handled (navigation attempt 1/10)
[11/15/2025, 1:33:04 AM] Page target destroyed for http://192.168.110.147/live/stream1
[11/15/2025, 1:33:04 AM] Browser disconnected for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:04 AM] Browser disconnection for http://192.168.110.147/live/stream1 is intentional (part of cleanup), skipping recovery
[11/15/2025, 1:33:04 AM] Found 2 audio devices via WaveOut
[11/15/2025, 1:33:04 AM]   - MACROSILICON (2- HD Audio Driver for Display Audio)
[11/15/2025, 1:33:04 AM]   - Encoder (HD Audio Driver for Display Audio)
[11/15/2025, 1:33:04 AM] ✓ Matched "Encoder" to: "Encoder (HD Audio Driver for Display Audio)"
[11/15/2025, 1:33:04 AM] Launch arguments: [
  '--no-first-run',
  '--hide-crash-restore-bubble',
  '--test-type',
  '--disable-blink-features=AutomationControlled',
  '--disable-notifications',
  '--disable-session-crashed-bubble',
  '--noerrdialogs',
  '--no-default-browser-check',
  '--allow-running-insecure-content',
  '--autoplay-policy=no-user-gesture-required',
  '--window-position=0,0',
  '--window-size=1280,720',
  '--new-window',
  '--disable-background-networking',
  '--disable-background-timer-throttling',
  '--disable-background-media-suspend',
  '--disable-backgrounding-occluded-windows',
  '--use-fake-ui-for-media-stream',
  '--audio-output-device=Encoder (HD Audio Driver for Display Audio)'
]
[11/15/2025, 1:33:04 AM] Browser closed for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:05 AM] No available or recoverable encoders, rejecting request
[11/15/2025, 1:33:05 AM] Using existing page for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:05 AM] loading page for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:05 AM] After modal dismissal, on wrong page: https://watch.sling.com/dashboard/home
[11/15/2025, 1:33:05 AM] Forcing navigation back to channel (attempt 1/10): https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch
[11/15/2025, 1:33:05 AM] Stream operation failed for http://192.168.110.147/live/stream1 (attempt 1/3): Attempted to use detached Frame '0E76A90066E8ACFA7579948A78EDB085'.
[11/15/2025, 1:33:05 AM] Stream operation failed for http://192.168.110.147/live/stream1 (attempt 2/3): Browser not connected
[11/15/2025, 1:33:05 AM] Stream operation failed for http://192.168.110.147/live/stream1 (attempt 3/3): Browser not connected
[11/15/2025, 1:33:05 AM] Stream setup failed for http://192.168.110.147/live/stream1: Browser not connected
[11/15/2025, 1:33:05 AM] Cleanup already in progress for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:06 AM] Attempting to re-initialize browser for http://192.168.110.147/live/stream1 in pool after cleanup.
[11/15/2025, 1:33:06 AM] page fully loaded for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:06 AM] Attempting CDP minimization for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:06 AM] Successfully minimized window via CDP for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:06 AM] No available or recoverable encoders, rejecting request
[11/15/2025, 1:33:07 AM] No available or recoverable encoders, rejecting request
[11/15/2025, 1:33:07 AM] Successfully re-initialized and minimized browser for http://192.168.110.147/live/stream0 in pool.
[11/15/2025, 1:33:07 AM] Cleanup process completed for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:07 AM] starting browser for encoder http://192.168.110.147/live/stream1 at position 1921,0
[11/15/2025, 1:33:07 AM] Using user data directory: C:\Users\slayer\AppData\Local\Google\Chrome\User Data\encoder_1
[11/15/2025, 1:33:07 AM] Validating audio device: "MACROSILICON"
[11/15/2025, 1:33:08 AM] streaming to https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch using encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:08 AM] Browser set active for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:08 AM] Found 2 audio devices via WaveOut
[11/15/2025, 1:33:08 AM]   - MACROSILICON (2- HD Audio Driver for Display Audio)
[11/15/2025, 1:33:08 AM]   - Encoder (HD Audio Driver for Display Audio)
[11/15/2025, 1:33:08 AM] ✓ Matched "MACROSILICON" to: "MACROSILICON (2- HD Audio Driver for Display Audio)"
[11/15/2025, 1:33:08 AM] Launch arguments: [
  '--no-first-run',
  '--hide-crash-restore-bubble',
  '--test-type',
  '--disable-blink-features=AutomationControlled',
  '--disable-notifications',
  '--disable-session-crashed-bubble',
  '--noerrdialogs',
  '--no-default-browser-check',
  '--allow-running-insecure-content',
  '--autoplay-policy=no-user-gesture-required',
  '--window-position=1921,0',
  '--window-size=1280,720',
  '--new-window',
  '--disable-background-networking',
  '--disable-background-timer-throttling',
  '--disable-background-media-suspend',
  '--disable-backgrounding-occluded-windows',
  '--use-fake-ui-for-media-stream',
  '--audio-output-device=MACROSILICON (2- HD Audio Driver for Display Audio)'
]
[11/15/2025, 1:33:08 AM] Sling URL detected - navigating to home page first to avoid bot detection
[11/15/2025, 1:33:08 AM] Page target changed for http://192.168.110.147/live/stream0: https://watch.sling.com/
[11/15/2025, 1:33:08 AM] Navigated to Sling home page
[11/15/2025, 1:33:10 AM] Using existing page for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:10 AM] loading page for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:10 AM] Navigating to channel: https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch
[11/15/2025, 1:33:10 AM] Page target changed for http://192.168.110.147/live/stream0: https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch
[11/15/2025, 1:33:11 AM] Successfully navigated to Sling channel
[11/15/2025, 1:33:11 AM] Validating encoder connection http://192.168.110.147/live/stream0 (attempt 1/2)
[11/15/2025, 1:33:11 AM] page fully loaded for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:11 AM] Attempting CDP minimization for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:11 AM] Encoder http://192.168.110.147/live/stream0 is reachable (status: 200)
[11/15/2025, 1:33:11 AM] Successfully minimized window via CDP for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:11 AM] Checking for Sling modals before video load
[11/15/2025, 1:33:12 AM] response stream closed for http://192.168.110.147/live/stream0
[11/15/2025, 1:33:12 AM] Starting cleanup for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:12 AM] Attempting to close browser for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:12 AM] Page target changed for http://192.168.110.147/live/stream0: https://watch.sling.com/dashboard/home
[11/15/2025, 1:33:12 AM] Successfully re-initialized and minimized browser for http://192.168.110.147/live/stream1 in pool.
[11/15/2025, 1:33:12 AM] Cleanup process completed for encoder http://192.168.110.147/live/stream1
[11/15/2025, 1:33:12 AM] Page target changed for http://192.168.110.147/live/stream0: https://watch.sling.com/modal
[11/15/2025, 1:33:12 AM] Detected Sling modal (attempt 1/7), simulating human interaction...
[11/15/2025, 1:33:12 AM] Page target destroyed for http://192.168.110.147/live/stream0
[11/15/2025, 1:33:12 AM] Browser disconnected for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:12 AM] Browser disconnection for http://192.168.110.147/live/stream0 is intentional (part of cleanup), skipping recovery
[11/15/2025, 1:33:12 AM] Browser closed for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:12 AM] Stream operation failed for http://192.168.110.147/live/stream0 (attempt 1/3): Protocol error (Input.dispatchKeyEvent): Session closed. Most likely the page has been closed.
[11/15/2025, 1:33:12 AM] Stream operation failed for http://192.168.110.147/live/stream0 (attempt 2/3): Browser not connected
[11/15/2025, 1:33:12 AM] Stream operation failed for http://192.168.110.147/live/stream0 (attempt 3/3): Browser not connected
[11/15/2025, 1:33:12 AM] Stream setup failed for http://192.168.110.147/live/stream0: Browser not connected
[11/15/2025, 1:33:12 AM] Cleanup already in progress for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:14 AM] Attempting to re-initialize browser for http://192.168.110.147/live/stream0 in pool after cleanup.
[11/15/2025, 1:33:15 AM] starting browser for encoder http://192.168.110.147/live/stream0 at position 0,0
[11/15/2025, 1:33:15 AM] Using user data directory: C:\Users\slayer\AppData\Local\Google\Chrome\User Data\encoder_0
[11/15/2025, 1:33:15 AM] Validating audio device: "Encoder"
[11/15/2025, 1:33:16 AM] Found 2 audio devices via WaveOut
[11/15/2025, 1:33:16 AM]   - MACROSILICON (2- HD Audio Driver for Display Audio)
[11/15/2025, 1:33:16 AM]   - Encoder (HD Audio Driver for Display Audio)
[11/15/2025, 1:33:16 AM] ✓ Matched "Encoder" to: "Encoder (HD Audio Driver for Display Audio)"
[11/15/2025, 1:33:16 AM] Launch arguments: [
  '--no-first-run',
  '--hide-crash-restore-bubble',
  '--test-type',
  '--disable-blink-features=AutomationControlled',
  '--disable-notifications',
  '--disable-session-crashed-bubble',
  '--noerrdialogs',
  '--no-default-browser-check',
  '--allow-running-insecure-content',
  '--autoplay-policy=no-user-gesture-required',
  '--window-position=0,0',
  '--window-size=1280,720',
  '--new-window',
  '--disable-background-networking',
  '--disable-background-timer-throttling',
  '--disable-background-media-suspend',
  '--disable-backgrounding-occluded-windows',
  '--use-fake-ui-for-media-stream',
  '--audio-output-device=Encoder (HD Audio Driver for Display Audio)'
]
[11/15/2025, 1:33:17 AM] Using existing page for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:17 AM] loading page for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:18 AM] page fully loaded for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:18 AM] Attempting CDP minimization for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:18 AM] Successfully minimized window via CDP for encoder http://192.168.110.147/live/stream0
[11/15/2025, 1:33:19 AM] Successfully re-initialized and minimized browser for http://192.168.110.147/live/stream0 in pool.
[11/15/2025, 1:33:19 AM] Cleanup process completed for encoder http://192.168.110.147/live/stream0

Are there any clues in the above as to where issues lie with my setup? When I watch what's happening using Chrome Remote Desktop, I see the minimized Chrome windows become active, but that's about it -- no addition tabs open, nor is there any attempt to navigate to the desired URL.

Everything appears as expected in my encoder, and Chrome Remote Desktop:

Hi @bnhf it looks like from the your log that the Channels DVR is closing the connection immediately after it starts. I'm wondering if you could look at the Channels DVR log and see what it says?

Perhaps it's not happy with the LinkPi encoder settings?

Here's what I have currently. Note that the Channels web client doesn't work well with LinkPi transcoding after LinkPi's recent firmware updates. But the other Channels clients seem to work ok.

1 Like

You may be onto something. I'll look at this more tomorrow, but here are the CDVR logs when I attempt to tune:

2025/11/15 12:34:36.146470 [TNR] Opened connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:36.146470 [HLS] Starting live stream for channel 40007 from 100.xxx.xxx.xxx
2025/11/15 12:34:38.719802 [HLS] ffmpeg: chrome-STZENHD:  [matroska,webm @ 00000218bf73a000] EBML header parsing failed
2025/11/15 12:34:38.719802 [HLS] ffmpeg: chrome-STZENHD:  [in#0 @ 00000218bf723540] Error opening input: Invalid data found when processing input
2025/11/15 12:34:38.719802 [HLS] ffmpeg: chrome-STZENHD:  Error opening input file http://quieter-4c:2442/stream?url=https://watch.sling.com/1/channel/ed5d0f85928f45249f8a67c9746a80b7/watch.
2025/11/15 12:34:38.719802 [HLS] ffmpeg: chrome-STZENHD:  Error opening input files: Invalid data found when processing input
2025/11/15 12:34:38.725900 [ERR] Error during stream M3U-ch4c ch40007 Starz Encore HD: exit status 0xbebbb1b7
2025/11/15 12:34:38.725900 [TNR] Closed connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:38.725900 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  [in#0/mpegts @ 00000176f6b40900] could not find codec parameters
2025/11/15 12:34:38.725900 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input file -.
2025/11/15 12:34:38.725900 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input files: End of file
2025/11/15 12:34:38.871943 [HLS] Stopping transcoder session ch40007-dANY-ip100.xxx.xxx.xxx(out=0s finished=true first_seq=0 last_seq=-1)
2025/11/15 12:34:38.874056 [ERR] Probe cancelled for live stream after 2.7270815s and 0 bytes
2025/11/15 12:34:40.043571 [TNR] Opened connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:40.043571 [HLS] Starting live stream for channel 40007 from 100.xxx.xxx.xxx
2025/11/15 12:34:42.728988 [HLS] ffmpeg: chrome-STZENHD:  [matroska,webm @ 000001a144ce8cc0] 0x00 at pos 2 (0x2) invalid as first byte of an EBML number
2025/11/15 12:34:42.728988 [HLS] ffmpeg: chrome-STZENHD:  [matroska,webm @ 000001a144ce8cc0] EBML header parsing failed
2025/11/15 12:34:42.728988 [HLS] ffmpeg: chrome-STZENHD:  [in#0 @ 000001a144cd2f40] Error opening input: Invalid data found when processing input
2025/11/15 12:34:42.728988 [HLS] ffmpeg: chrome-STZENHD:  Error opening input file http://quieter-4c:2442/stream?url=https://watch.sling.com/1/channel/ed5d0f85928f45249f8a67c9746a80b7/watch.
2025/11/15 12:34:42.728988 [HLS] ffmpeg: chrome-STZENHD:  Error opening input files: Invalid data found when processing input
2025/11/15 12:34:42.733177 [ERR] Error during stream M3U-ch4c ch40007 Starz Encore HD: exit status 0xbebbb1b7
2025/11/15 12:34:42.733177 [TNR] Closed connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:42.734120 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  [in#0/mpegts @ 000002b246165080] could not find codec parameters
2025/11/15 12:34:42.734120 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input file -.
2025/11/15 12:34:42.734120 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input files: End of file
2025/11/15 12:34:42.735780 [HLS] Stopping transcoder session ch40007-dANY-ip100.xxx.xxx.xxx (out=0s finished=true first_seq=0 last_seq=-1)
2025/11/15 12:34:42.737032 [ERR] Probe cancelled for live stream after 2.6925065s and 0 bytes
2025/11/15 12:34:42.891963 [TNR] Opened connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:42.891963 [HLS] Starting live stream for channel 40007 from 100.xxx.xxx.xxx
2025/11/15 12:34:42.926005 [HLS] ffmpeg: chrome-STZENHD:  [http @ 00000244f0d3f100] HTTP error 503 Service Unavailable
2025/11/15 12:34:42.926005 [HLS] ffmpeg: chrome-STZENHD:  [in#0 @ 00000244f0d3e240] Error opening input: Server returned 5XX Server Error reply
2025/11/15 12:34:42.926005 [HLS] ffmpeg: chrome-STZENHD:  Error opening input file http://quieter-4c:2442/stream?url=https://watch.sling.com/1/channel/ed5d0f85928f45249f8a67c9746a80b7/watch.
2025/11/15 12:34:42.926005 [HLS] ffmpeg: chrome-STZENHD:  Error opening input files: Server returned 5XX Server Error reply
2025/11/15 12:34:42.927561 [ERR] Error during stream M3U-ch4c ch40007 Starz Encore HD: exit status 0xa7a7ca08
2025/11/15 12:34:42.927561 [TNR] Closed connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:42.928078 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  [in#0/mpegts @ 000001cb716991c0] could not find codec parameters
2025/11/15 12:34:42.928078 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input file -.
2025/11/15 12:34:42.928078 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input files: End of file
2025/11/15 12:34:42.929760 [HLS] Stopping transcoder session ch40007-dANY-ip100.xxx.xxx.xxx (out=0s finished=true first_seq=0 last_seq=-1)
2025/11/15 12:34:42.929760 [ERR] Probe cancelled for live stream after 37.2935ms and 0 bytes
2025/11/15 12:34:44.092694 [TNR] Opened connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:44.092694 [HLS] Starting live stream for channel 40007 from 100.xxx.xxx.xxx
2025/11/15 12:34:44.121997 [HLS] ffmpeg: chrome-STZENHD:  [http @ 0000022d1281eb00] HTTP error 503 Service Unavailable
2025/11/15 12:34:44.121997 [HLS] ffmpeg: chrome-STZENHD:  [in#0 @ 0000022d1281c380] Error opening input: Server returned 5XX Server Error reply
2025/11/15 12:34:44.121997 [HLS] ffmpeg: chrome-STZENHD:  Error opening input file http://quieter-4c:2442/stream?url=https://watch.sling.com/1/channel/ed5d0f85928f45249f8a67c9746a80b7/watch.
2025/11/15 12:34:44.121997 [HLS] ffmpeg: chrome-STZENHD:  Error opening input files: Server returned 5XX Server Error reply
2025/11/15 12:34:44.124067 [ERR] Error during stream M3U-ch4c ch40007 Starz Encore HD: exit status 0xa7a7ca08
2025/11/15 12:34:44.124067 [TNR] Closed connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:44.124582 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  [in#0/mpegts @ 000001e39c2b9100] could not find codec parameters
2025/11/15 12:34:44.124582 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input file -.
2025/11/15 12:34:44.124582 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input files: End of file
2025/11/15 12:34:44.126140 [HLS] Stopping transcoder session ch40007-dANY-ip100.xxx.xxx.xxx (out=0s finished=true first_seq=0 last_seq=-1)
2025/11/15 12:34:44.126656 [ERR] Probe cancelled for live stream after 32.3259ms and 0 bytes
2025/11/15 12:34:44.311349 [TNR] Opened connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:44.311349 [HLS] Starting live stream for channel 40007 from 100.xxx.xxx.xxx
2025/11/15 12:34:44.621344 [HLS] ffmpeg: chrome-STZENHD:  [http @ 000001fb2f36eb40] HTTP error 503 Service Unavailable
2025/11/15 12:34:44.621344 [HLS] ffmpeg: chrome-STZENHD:  [in#0 @ 000001fb2f36c300] Error opening input: Server returned 5XX Server Error reply
2025/11/15 12:34:44.621344 [HLS] ffmpeg: chrome-STZENHD:  Error opening input file http://quieter-4c:2442/stream?url=https://watch.sling.com/1/channel/ed5d0f85928f45249f8a67c9746a80b7/watch.
2025/11/15 12:34:44.621344 [HLS] ffmpeg: chrome-STZENHD:  Error opening input files: Server returned 5XX Server Error reply
2025/11/15 12:34:44.625300 [ERR] Error during stream M3U-ch4c ch40007 Starz Encore HD: exit status 0xa7a7ca08
2025/11/15 12:34:44.625300 [TNR] Closed connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:44.626271 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  [in#0/mpegts @ 00000109d6930c80] could not find codec parameters
2025/11/15 12:34:44.626271 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input file -.
2025/11/15 12:34:44.626271 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input files: End of file
2025/11/15 12:34:44.782842 [HLS] Stopping transcoder session ch40007-dANY-ip100.xxx.xxx.xxx (out=0s finished=true first_seq=0 last_seq=-1)
2025/11/15 12:34:44.784803 [ERR] Probe cancelled for live stream after 473.4541ms and 0 bytes
2025/11/15 12:34:45.953676 [TNR] Opened connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:45.953676 [HLS] Starting live stream for channel 40007 from 100.xxx.xxx.xxx
2025/11/15 12:34:46.001278 [HLS] ffmpeg: chrome-STZENHD:  [http @ 000001c79f4fed00] HTTP error 503 Service Unavailable
2025/11/15 12:34:46.001278 [HLS] ffmpeg: chrome-STZENHD:  [in#0 @ 000001c79f503580] Error opening input: Server returned 5XX Server Error reply
2025/11/15 12:34:46.001278 [HLS] ffmpeg: chrome-STZENHD:  Error opening input file http://quieter-4c:2442/stream?url=https://watch.sling.com/1/channel/ed5d0f85928f45249f8a67c9746a80b7/watch.
2025/11/15 12:34:46.001278 [HLS] ffmpeg: chrome-STZENHD:  Error opening input files: Server returned 5XX Server Error reply
2025/11/15 12:34:46.003339 [ERR] Error during stream M3U-ch4c ch40007 Starz Encore HD: exit status 0xa7a7ca08
2025/11/15 12:34:46.003339 [TNR] Closed connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:46.003339 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  [in#0/mpegts @ 0000016035769bc0] could not find codec parameters
2025/11/15 12:34:46.003339 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input file -.
2025/11/15 12:34:46.003339 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input files: End of file
2025/11/15 12:34:46.005429 [HLS] Stopping transcoder session ch40007-dANY-ip100.xxx.xxx.xxx (out=0s finished=true first_seq=0 last_seq=-1)
2025/11/15 12:34:46.005429 [ERR] Probe cancelled for live stream after 51.2409ms and 0 bytes
2025/11/15 12:34:46.475909 [TNR] Opened connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:46.475909 [HLS] Starting live stream for channel 40007 from 100.xxx.xxx.xxx
2025/11/15 12:34:48.996524 [HLS] ffmpeg: chrome-STZENHD:  [matroska,webm @ 00000135d76c9b80] EBML header parsing failed
2025/11/15 12:34:48.996524 [HLS] ffmpeg: chrome-STZENHD:  [in#0 @ 00000135d76b9b00] Error opening input: Invalid data found when processing input
2025/11/15 12:34:48.996524 [HLS] ffmpeg: chrome-STZENHD:  Error opening input file http://quieter-4c:2442/stream?url=https://watch.sling.com/1/channel/ed5d0f85928f45249f8a67c9746a80b7/watch.
2025/11/15 12:34:48.996524 [HLS] ffmpeg: chrome-STZENHD:  Error opening input files: Invalid data found when processing input
2025/11/15 12:34:48.999344 [ERR] Error during stream M3U-ch4c ch40007 Starz Encore HD: exit status 0xbebbb1b7
2025/11/15 12:34:48.999344 [TNR] Closed connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:48.999344 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  [in#0/mpegts @ 000001e70401a600] could not find codec parameters
2025/11/15 12:34:48.999344 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input file -.
2025/11/15 12:34:48.999344 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input files: End of file
2025/11/15 12:34:49.153537 [HLS] Stopping transcoder session ch40007-dANY-ip100.xxx.xxx.xxx (out=0s finished=true first_seq=0 last_seq=-1)
2025/11/15 12:34:49.154042 [ERR] Probe cancelled for live stream after 2.6767468s and 0 bytes
2025/11/15 12:34:50.323296 [TNR] Opened connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:50.323296 [HLS] Starting live stream for channel 40007 from 100.xxx.xxx.xxx
2025/11/15 12:34:53.188194 [HLS] ffmpeg: chrome-STZENHD:  [matroska,webm @ 000001cd69488bc0] EBML header parsing failed
2025/11/15 12:34:53.188194 [HLS] ffmpeg: chrome-STZENHD:  [in#0 @ 000001cd69470680] Error opening input: Invalid data found when processing input
2025/11/15 12:34:53.188194 [HLS] ffmpeg: chrome-STZENHD:  Error opening input file http://quieter-4c:2442/stream?url=https://watch.sling.com/1/channel/ed5d0f85928f45249f8a67c9746a80b7/watch.
2025/11/15 12:34:53.188194 [HLS] ffmpeg: chrome-STZENHD:  Error opening input files: Invalid data found when processing input
2025/11/15 12:34:53.190772 [ERR] Error during stream M3U-ch4c ch40007 Starz Encore HD: exit status 0xbebbb1b7
2025/11/15 12:34:53.190772 [TNR] Closed connection to M3U-ch4c for ch40007 Starz Encore HD
2025/11/15 12:34:53.191254 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  [in#0/mpegts @ 000002001a8a6b80] could not find codec parameters
2025/11/15 12:34:53.191254 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input file -.
2025/11/15 12:34:53.191254 [HLS] ffmpeg: ch40007-dANY-ip100.xxx.xxx.xxx-remux:  Error opening input files: End of file
2025/11/15 12:34:53.192291 [HLS] Stopping transcoder session ch40007-dANY-ip100.xxx.xxx.xxx (out=0s finished=true first_seq=0 last_seq=-1)
2025/11/15 12:34:53.192841 [ERR] Probe cancelled for live stream after 2.8690285s and 0 bytes

Lots of failures in a short amount of time...

I see references to HLS in here, so you should check to make sure that you're using the HLS stream from the LinkPi (the default LinkPi HLS link is http://192.168.50.71/hls/stream0.m3u8 when you enable it). Also make sure that you're using HLS in the Custom Channel definition in Channels.

I'm using using MPEG-TS in my Custom Channel setup so the default LinkPi HTTP http://192.168.50.71/live/stream0 works for me.

I've been experimenting with a number of settings, but not that one -- the Custom Channels Source has been set to MPEG-TS all along:

I think I see your issue, try replacing the "chrome" with "http" in your custom channel definition.

Whoa -- that was it! Given a couple of years of use of cc4c, I never would have imagined the M3U URL structure was different. Any particular reason behind this deviation from the parent project?

Thanks for helping me get on track!

1 Like

@dravenst

Consistent success now with the first stream, but no joy with getting the second stream working. With both Sling and ESPN, it looks like the stream is going to start -- but it never does:

[11/17/2025, 5:16:56 AM] starting browser for encoder http://192.168.110.147/live/stream1 at position 1921,0
[11/17/2025, 5:16:56 AM] Using user data directory: C:\Users\slayer\AppData\Local\Google\Chrome\User Data\encoder_1
[11/17/2025, 5:16:56 AM] Validating audio device: "MACROSILICON"
[11/17/2025, 5:16:59 AM] Found 2 audio devices via WaveOut
[11/17/2025, 5:16:59 AM]   - MACROSILICON (2- HD Audio Driver for Display Audio)
[11/17/2025, 5:16:59 AM]   - Encoder (HD Audio Driver for Display Audio)
[11/17/2025, 5:16:59 AM] ✓ Matched "MACROSILICON" to: "MACROSILICON (2- HD Audio Driver for Display Audio)"
[11/17/2025, 5:16:59 AM] Launch arguments: [
  '--no-first-run',
  '--hide-crash-restore-bubble',
  '--test-type',
  '--disable-blink-features=AutomationControlled',
  '--disable-notifications',
  '--disable-session-crashed-bubble',
  '--noerrdialogs',
  '--no-default-browser-check',
  '--allow-running-insecure-content',
  '--autoplay-policy=no-user-gesture-required',
  '--window-position=1921,0',
  '--window-size=1280,720',
  '--new-window',
  '--disable-background-networking',
  '--disable-background-timer-throttling',
  '--disable-background-media-suspend',
  '--disable-backgrounding-occluded-windows',
  '--use-fake-ui-for-media-stream',
  '--audio-output-device=MACROSILICON (2- HD Audio Driver for Display Audio)'
]
[11/17/2025, 5:17:01 AM] Using existing page for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:17:01 AM] loading page for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:17:02 AM] page fully loaded for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:17:02 AM] Attempting CDP minimization for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:17:02 AM] Successfully minimized window via CDP for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:17:03 AM] Successfully re-initialized and minimized browser for http://192.168.110.147/live/stream1 in pool.
[11/17/2025, 5:17:03 AM] Cleanup process completed for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:17:13 AM] streaming to https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch using encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:17:13 AM] Browser set active for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:17:14 AM] Sling URL detected - navigating to home page first to avoid bot detection
[11/17/2025, 5:17:14 AM] Page target changed for http://192.168.110.147/live/stream1: https://watch.sling.com/
[11/17/2025, 5:17:14 AM] Navigated to Sling home page
[11/17/2025, 5:17:15 AM] Navigating to channel: https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch
[11/17/2025, 5:17:18 AM] Page target changed for http://192.168.110.147/live/stream1: https://watch.sling.com/dashboard/home
[11/17/2025, 5:17:19 AM] Page target changed for http://192.168.110.147/live/stream1: https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch
[11/17/2025, 5:17:20 AM] Successfully navigated to Sling channel
[11/17/2025, 5:17:20 AM] Validating encoder connection http://192.168.110.147/live/stream1 (attempt 1/2)
[11/17/2025, 5:17:20 AM] Encoder http://192.168.110.147/live/stream1 is reachable (status: 200)
[11/17/2025, 5:17:20 AM] Page target changed for http://192.168.110.147/live/stream1: https://watch.sling.com/modal
[11/17/2025, 5:17:20 AM] Checking for Sling modals before video load
[11/17/2025, 5:17:21 AM] Detected Sling modal (attempt 1/7), simulating human interaction...
[11/17/2025, 5:17:22 AM] Page target changed for http://192.168.110.147/live/stream1: https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch
[11/17/2025, 5:17:22 AM] Page target changed for http://192.168.110.147/live/stream1: https://watch.sling.com/modal
[11/17/2025, 5:17:23 AM] Detected Sling modal (attempt 2/7), simulating human interaction...
[11/17/2025, 5:17:26 AM] Detected Sling modal (attempt 3/7), simulating human interaction...
[11/17/2025, 5:17:30 AM] Page target changed for http://192.168.110.147/live/stream1: https://watch.sling.com/dashboard/home
[11/17/2025, 5:17:50 AM] New other target created for http://192.168.110.147/live/stream1
[11/17/2025, 5:17:52 AM] response stream closed for http://192.168.110.147/live/stream1
[11/17/2025, 5:17:52 AM] Starting cleanup for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:17:52 AM] Attempting to close browser for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:17:54 AM] Browser disconnected for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:17:54 AM] Browser disconnection for http://192.168.110.147/live/stream1 is intentional (part of cleanup), skipping recovery
ERROR: The process with PID 3044 (child process of PID 11644) could not be terminated.
Reason: There is no running instance of the task.
ERROR: The process with PID 13784 (child process of PID 11644) could not be terminated.
Reason: There is no running instance of the task.
ERROR: The process with PID 13432 (child process of PID 11644) could not be terminated.
Reason: There is no running instance of the task.
[11/17/2025, 5:17:54 AM] Stream operation failed for http://192.168.110.147/live/stream1 (attempt 1/3): Protocol error (Input.dispatchKeyEvent): Session closed. Most likely the page has been closed.
[11/17/2025, 5:17:54 AM] Stream operation failed for http://192.168.110.147/live/stream1 (attempt 2/3): Browser not connected
[11/17/2025, 5:17:54 AM] Stream operation failed for http://192.168.110.147/live/stream1 (attempt 3/3): Browser not connected
[11/17/2025, 5:17:54 AM] Stream setup failed for http://192.168.110.147/live/stream1: Browser not connected
[11/17/2025, 5:17:54 AM] Cleanup already in progress for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:18:01 AM] Browser closed for encoder http://192.168.110.147/live/stream1
[11/17/2025, 5:18:03 AM] Attempting to re-initialize browser for http://192.168.110.147/live/stream1 in pool after cleanup.

Health checks aren't showing any problems:

{
    "encoders": [
        {
            "url": "http://192.168.110.147/live/stream0",
            "channel": "24.42",
            "audioDevice": "Encoder",
            "isHealthy": true,
            "hasBrowser": true,
            "isAvailable": true,
            "healthStatus": {
                "isHealthy": true,
                "lastCheck": 1763384013495,
                "failureCount": 0
            }
        },
        {
            "url": "http://192.168.110.147/live/stream1",
            "channel": "24.43",
            "audioDevice": "MACROSILICON",
            "isHealthy": true,
            "hasBrowser": true,
            "isAvailable": true,
            "healthStatus": {
                "isHealthy": true,
                "lastCheck": 1763384013506,
                "failureCount": 0
            }
        }
    ],
    "activeStreams": [],
    "cleanupState": {
        "closingStates": [],
        "activeBrowsers": [],
        "recoveryInProgress": [],
        "intentionalClose": []
    }
}

That's odd. I just deployed a new version 0.1.3 that has support for espn fullscreen now and some other updates that I've been working on. Please give that a shot. Also, if it continues, take a look at the channels dvr log and see if it has any hints.

New bnhf/olivetin:latest (aka bnhf/olivetin:2025.11.23) pushed today with Project One-Click support for ESPN4cc4c, ESPN4ch4c and ESPN4adbt. All three can be run simultaneously.

More details here: