Chrome Capture for Channels

Intel GPU passthrough would be:

devices:
  - /dev/dri:/dev/dri 

Same as used for the Channels DVR container itself, but I haven't tested it.

So like this:

version: '3.9'
services:
  chrome-capture-for-channels:
    image: bnhf/chrome-capture-for-channels:alpha
    container_name: cc4channels
    command:
      - sh 
      - -c 
      - |
        Xvfb :99 -screen 0 1920x1080x16 &
        x11vnc -display :99 -forever &
        node main.js
    devices:
      - /dev/dri:/dev/dri 
    ports:
      - 5589:5589 # cc4channels proxy port
      - 5900:5900 # VNC port for entering credentials
    user: '0:0'
    environment:
      - TZ=US/Mountain
    volumes:
      - /data/cc4channels/.config:/home/chrome/.config
    restart: unless-stopped

Good News I did 2 recordings overnight and the video Quality is in my opinoin is indistinguishable
from the .exe version. The picture seems to need the 9500kbps setting in the docker alpha.

That's excellent, thanks for letting me know. I've been working on persistent data for website credentials and the like, and this seems to be the best approach -- by using a Docker Volume instead of a directory binding:

version: '3.9'
services:
  chrome-capture-for-channels:
    image: bnhf/chrome-capture-for-channels:alpha
    container_name: cc4channels
    command:
      - sh 
      - -c 
      - |
        Xvfb :99 -screen 0 1920x1080x16 &
        x11vnc -display :99 -forever &
        node main.js
    #devices:
      #- /dev/dri:/dev/dri # Uncomment for Intel Quick Sync (GPU) access
    ports:
      - 5589:5589 # cc4channels proxy port
      - 5900:5900 # VNC port for entering credentials
    environment:
      - TZ=${TZ} # Add your timezone in the Environment variables section with "name" set to TZ and "value" to your local timezone
    volumes:
      - cc4channels:/home/chrome # Creates persistent Docker Volume in /var/lib/docker/volumes for Chrome data and main.js
    restart: unless-stopped
volumes:
  cc4channels:

Currently getting on bnhf/chrome-capture-for-channels:alpha

"Couldn't sign you in
This browser or app may not be secure.
Try using a different browser. If you're already using a supported browser, you can try again to sign in."

Had not gotten that before.

Refreshing the browser a few times made it go away.

Good catch. So, unintended consequence of building a new container was that Chrome got upgraded to 115+. However, now that I have the persistent data issue sorted out, we can actually go back to the "official" fancybits container which has Chrome 114, modify main.js in the new Docker Volume and re-launch.

So the steps are:

Stop the cc4channels stack in Portainer-Stacks

Delete the chrome-capture-for-channels_cc4channels volume in Portainer-Volumes

Spin-up the original fancybits version of the container using this compose:

version: '3.9'
services:
  chrome-capture-for-channels:
    image: fancybits/chrome-capture-for-channels:latest
    container_name: cc4channels
    command:
      - sh 
      - -c 
      - |
        Xvfb :99 -screen 0 1920x1080x16 &
        x11vnc -display :99 -forever &
        node main.js
    #devices:
      #- /dev/dri:/dev/dri # Uncomment for Intel Quick Sync (GPU) access
    ports:
      - 5589:5589 # cc4channels proxy port
      - 5900:5900 # VNC port for entering credentials
    environment:
      - TZ=${TZ} # Add your timezone in the Environment variables section with "name" set to TZ and "value" to your local timezone
    volumes:
      - cc4channels:/home/chrome # Creates persistent Docker Volume in /var/lib/docker/volumes for Chrome data and main.js
    restart: unless-stopped
volumes:
  cc4channels:

Chrome will be back to 114, however the video bitrate will be back to 5000kbps -- but now we can tweak that setting on the host by modifying main.js in the Docker Volume we've created, followed by stopping and restarting the stack (after any changes).

main.js can be found in /var/lib/docker/volumes/chrome-capture-for-channels_cc4channels/_data on the host computer (I'm using Cockpit-Navigator here, because I like WebUIs :slight_smile: -- but you can use nano or whatever):

videoBitsPerSecond and audioBitsPerSecond should be modified as shown:

After you saved those changes, stop the cc4channels stack and then restart it. Now we'll have Chrome 114, a 9500kbps video bitrate, and persistent data for website credentials!

1 Like

Just tested this latest version and so far its working great! Did you mean change the audio bitrate to 192vs 129? Thank you !

I did not! Thanks for pointing that out -- s/b 192000

Ive been seeing mentions of Chrome 115 NOT working etc BUT my 115 is working Question is 114 more stable /better encoding etc??

Ive been getting ready to swap out my hardware from and old Gen3 I3 desktop to a newer Gen 8 I5-8500 with 32gb and m.2 ssd plus dual video outs w/ hdmi dummy plug etc... As of now all works as expected No borders No video resolution issues JUST the choppy playback on my Android TV or Phone app.
When i set up newer pc should i load chrome 114 with updates disabled?? or is 115 ok now??

On some sites users are seeing messages about Chrome 115 "not being secure and to try using a different browser", which to my knowledge hasn't happened with Chrome 114.

We'll keep the Docker version at 114 for now -- to keep the compatibility level as high as possible.

I have installed the fancybits docker image.
I am running this in Docker Desktop in Windows 11.
It works, however the picture is not the best. its jerky.
apparently we need to edit the main.js file.
how would I do that from within the terminal.
I appear to be stuck.

Thanks!

I've had the "browser not secure" issue for 6+ months. I found that using the DNS for my ISP fixed the issue. A few months ago, I had the same issue, but resolved it by using VNC instead of RDP to connect remotely.

Ok i don't run Docker since Im not that PC savy I'll just load Chrome 114 and disable updates

2 Likes

You can try this it worked for me
*now has editable main.js and persistant credentials
I just resently installed the docker portainer extension and created a stack for cc4channels
to edit main.js use normal docker
open running container cc4channels
open the files menu to change paramaters
open files /home/chrome/
doubleclick to open main.js
change videoBitsPerSecond: 9500000,
Changing to 12000000, worked for me
audioBitsPerSecond: 192000,
save and go to portainer
stop in the portainer stack
restart in portainer stack

Using docker appears to halve the video bitrate for me.
so I experimented with setting12000000, and I am getting ann effective bitrate
in channels of around 6000kbps.
Is this normal or what others are seeing?
audio is spot on.

After upping the video bitrate to 12000000, it seems to be very choppy. Are you also seeing this?

Perhaps my computer (MacBook Pro 2017) is having trouble keeping up?

This is what I did for now.

Not until I tried even higher 12k was max that is smooth
8k to 9.5k were acceptable 5k was not

Anyone able to help with getting nvidia gpu support into the docker container would be helpful.?
It is now supposed to be supported natively in Docker Desktop but the GPU insrtuctions to add to docker-compose are beyond me.

1 Like

Are you using Mac or PC?

windows 11 Pro desktop pc I'm using an I7-8700 with 64gig ram, 2TB NVME ssd, 4TB RAID and an RTX-2070 as a media sever.

1 Like