I experimented a bit with a USB HDMI adapter on OSX.
The issue with most of those is they capture a raw stream which is huge, so you have to use ffmpeg to re-encode it. Here's a simple way to pipe that into Channels DVR:
#EXTM3U
#EXTINF:-1 channel-id="hdpvr2", HDPVR
udp://127.0.0.1:33444
Then run:
ffmpeg -i /dev/video0 -c:v h264 -b:v 8000k -f mpegts udp://127.0.0.1:33444
Which should pull the video feed from the capture device, encode the video at 8mbps, then send it to port 33444 where the DVR is listening for video data.
On Linux you can use /dev/videoX
like above
On macOS the video capture happens via avfoundation, which ffmpeg also supports. To see a list of capture devices:
$ ffmpeg -hide_banner -f avfoundation -list_devices 1 -i /dev/null
[AVFoundation indev @ 0x14ee04e10] AVFoundation video devices:
[AVFoundation indev @ 0x14ee04e10] [0] Studio Display Camera
[AVFoundation indev @ 0x14ee04e10] [1] Elgato Virtual Camera
[AVFoundation indev @ 0x14ee04e10] [2] Cam Link 4K
[AVFoundation indev @ 0x14ee04e10] [3] iphone Camera
[AVFoundation indev @ 0x14ee04e10] [4] Capture screen 0
You can see "Cam Link 4K" is marked as [2]. You can use that as so:
ffmpeg -f avfoundation -framerate 60 -i "2" -c:v h264_videotoolbox -b:v 8000k udp://127.0.0.1:33444