BETA: Chrome Capture for Channels

I tried to change the encoding parameters in the main.js file, to encode aac. But, I don't really have any experience with Chrome encoding, so I'm sure I'm doing something wrong.

We also have the audio PID issue, when trying to edit the current mpg files outside of Channels.

I tried this initially with a Mac Mini i5, and worked but was spotty and was having difficulty keeping pace. Now I'm using this with a Mac Mini M1 and it works very well... but...

The M1 works great with Apple TV, but not iPhone, iPad, or in the Web Player. Seems like there's a remux that goes on for about 22 seconds and then starts all over. The M1 shows the Chrome page closing and starting up again with the remux, and then again around the 22 second mark, closes. It does this endlessly anything other than Apple TV. I can record programs and watch back on those clients - even in progress. Any suggestions from those much smarter than me?

Thanks!

1 Like

Another interesting thing regarding playback of CC4C. It works fine on my Channels DVR app using my android phone and if I port it to Emby and use their Theater app. But it does not play if I try to use the Channels web player nor the Emby web player.

3 Likes

Anyone figure out how to force YTTV quality to max automatically?

EDIT: My regular chrome profile appears to save the quality setting, but chrome capture profile doesn't seem to?

I'm messing around with some main.js settings because I can't get full screen without borders even if I set display greater than 1080p. I'm trying 1280X720x60 in Main.js but I can't get more than 30 FPS doing that. It is a lot smoother with vsync disabled.

Also @tmm1 when I do an 'npm run build' in Windows it builds the Mac OS exe version, not the Windows version and I can see that it's doing so in the build script. I'm not familiar with the commands so I don't know how to fix that so it'll build for Windows.

Strange that increasing the resolution didn't eliminate the border issue. How did you increase the resolution? Was the CC4C window running on the monitor that was at 4K?

i explained this above. the container playing the video needs to be 16:9 ratio not the actual window. so if you set the window to 1920x1080 (default) you get black borders, i wouldn't expect any different with 1280x720. people suggesting "just make it bigger" arent actually helping. lol. when the window pops up and is playing the video make sure the video is playing edge to edge in the window. i'm sure someone can do some math and figure out an appropriate resolution but i just manually resize the window.

I set my display 1920x1200 and have eliminated the boarder issue. Since my source is strickly used for Chrome Capture, I installed a HDMI Dummy adapter which allows this resolution setting. If you have display connected this setting may not be available. I have not had any border issues with all streaming sites so far.

1 Like

@GTFan , are you running CC4C in a docker container, or running on Windows. I thought we were talking about running on Windows? In that case, having the CC4C window running on a monitor with a larger resolution than 1080p should work. Or, at least it seems to have solved the border issue for a lot of people. I have not run this in a container, so cannot speak to that case.

i'm not using container in the docker sense. i'm talking about the web object playing the video. again saying "having the CC4C window running on a monitor with a larger resolution than 1080p should work" is terrible advice. lol. above @kennyb3653 gave helpful advice saying use 1920x1200.

for those that are unaware the browser window size is being set in the main.js file to 1920x1080 by default. the issue is that resolution does not account for the fact that the browser itslef has a tab bar and a url bar. so the video playing inside the browser window itself cannot actually get to a 16:9 resolution in full screen mode resulting in the borders.

Is not 1920x1200 larger than 1920x1080? LOL

1 Like

I just installed the docker vesrion on Docker Desktop for windows 11 and it is working almost as well as the .exe version for me. Thank you bnhf for the docker compose!

One question i have is the video bitrate seems to be much lower. Has the main.js not been
updated to 8000kbps ? Or is there a simple way to bump it up to 8000 or 10000?

1 Like

Looks like it's only at 5000 now, so -- yeah let's bump it up. I'll figure out how we can get that done.

Apparently the path of least resistance was to fork the project, and build a new container in my Docker Hub. Give this a try, and if it's better, we'll request a new "official" build:

version: '3.9'
services:
  chrome-capture-for-channels:
    image: bnhf/chrome-capture-for-channels:latest
    container_name: cc4channels
    command:
      - sh 
      - -c 
      - |
        Xvfb :99 -screen 0 1920x1080x16 &
        x11vnc -display :99 -forever &
        node main.js
    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

Video bitrate is set per the latest commits to the repo now at 8000.

Easy for you to say not my expertise. I had never used portainer and that worked also. so far so good will have to try a recording and see how that goes

No joy getting stopped video with sound playing I wonder if the sound is causing an issue or I am just past the limits of my setup? I heard like a pop when the video stopped.

Did you try using the container I built (bnhf/chrome-capture-for-channels:latest)? What hardware are you running the container on?

1 Like

Yes I am testing out your new container. I think its now working ok after i rebooted the server.
im using an I7-8700 with 64gig ram, 2TB NVME ssd, 4TB RAID and an RTX-2070 as a media sever.
Thank you again for your help. Just completed a one hour recordung on USA and it was ok.
I record mostly motor sports and time shift other shows with channels.

I just built a test container with a bitrate of 9500kbps if you want to give that a try. It's tagged :alpha instead of :latest

any way to pass the igpu via compose so we can take advantage of hardware acceleration in the browser inside the container?