Add native Windows and macOS screen/audio/webcam recording support #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Extends the Linux-only screen recorder to support Windows and macOS using platform-specific ffmpeg inputs.
Changes
Platform detection
OSWindows,OSDarwin,OSLinux) to deps packageWindows implementation (ffmpeg)
gdigrabcaptures full desktopdshowwith empty device name for auto-detectiondshowwith empty device name for auto-detectionmacOS implementation (ffmpeg)
avfoundationdevice "1:none" (main display with cursor)avfoundationdevice ":0" (default microphone)avfoundationdevice "0:none" (default camera)Architecture
Each platform implements
startVideo/Audio/Webcammethods with platform-specific ffmpeg arguments. Monitor detection returns placeholder data on Windows/macOS since ffmpeg handles actual resolution detection at runtime.Limitations
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
go.googlesource.com/update-job-proxy /update-job-proxy 8658213/b011/ -outfilelist ache/go/1.24.11/origin /tmp�� d83cc540:internal/audio/audio.go y3z3u05Sk ache/go/1.24.11/x64/pkg/tool/linux_amd64/asm g_.a 8658213/b173/ ux_amd64/compile--name-only ache/go/1.24.11/HEAD ache�� d83cc540:internal/tui/recording_setup.go ux_amd64/compile-buildtags ux_amd64/vet x64/src/runtime//usr/bin/unpigz 5068803/b042/ n2hHtgzcA ux_amd64/vet(dns block)/update-job-proxy /update-job-proxy DROP e test -e cd0fb9bef36fb2e3d91018c331f12e11cef7fc/shallow.lock /usr/sbin/iptables est -t la/emSign_ECC_Ro-c e test -e OMODO_Certificat-n1 /usr/sbin/iptabl--format=format:%H %ct %D /opt/go/bin/testrefs/tags/v0.1.0 ation_RootCA2.pe/usr/sbin/ip6tables nat e test(dns block)go.yaml.in/update-job-proxy /update-job-proxy 8658213/b011/ -outfilelist ache/go/1.24.11/origin /tmp�� d83cc540:internal/audio/audio.go y3z3u05Sk ache/go/1.24.11/x64/pkg/tool/linux_amd64/asm g_.a 8658213/b173/ ux_amd64/compile--name-only ache/go/1.24.11/HEAD ache�� d83cc540:internal/tui/recording_setup.go ux_amd64/compile-buildtags ux_amd64/vet x64/src/runtime//usr/bin/unpigz 5068803/b042/ n2hHtgzcA ux_amd64/vet(dns block)/update-job-proxy /update-job-proxy DROP e test -e cd0fb9bef36fb2e3d91018c331f12e11cef7fc/shallow.lock /usr/sbin/iptables est -t la/emSign_ECC_Ro-c e test -e OMODO_Certificat-n1 /usr/sbin/iptabl--format=format:%H %ct %D /opt/go/bin/testrefs/tags/v0.1.0 ation_RootCA2.pe/usr/sbin/ip6tables nat e test(dns block)gopkg.in/update-job-proxy /update-job-proxy 8658213/b011/ -outfilelist ache/go/1.24.11/origin /tmp�� d83cc540:internal/audio/audio.go y3z3u05Sk ache/go/1.24.11/x64/pkg/tool/linux_amd64/asm g_.a 8658213/b173/ ux_amd64/compile--name-only ache/go/1.24.11/HEAD ache�� d83cc540:internal/tui/recording_setup.go ux_amd64/compile-buildtags ux_amd64/vet x64/src/runtime//usr/bin/unpigz 5068803/b042/ n2hHtgzcA ux_amd64/vet(dns block)/update-job-proxy /update-job-proxy DROP e test -e cd0fb9bef36fb2e3d91018c331f12e11cef7fc/shallow.lock /usr/sbin/iptables est -t la/emSign_ECC_Ro-c e test -e OMODO_Certificat-n1 /usr/sbin/iptabl--format=format:%H %ct %D /opt/go/bin/testrefs/tags/v0.1.0 ation_RootCA2.pe/usr/sbin/ip6tables nat e test(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.