vnc-recorder
vnc-recorder copied to clipboard
Record vnc screens to mp4 video using ffmpeg written in go.
When I connect to my vncserver with vncviewer, I need to provide the SERVERNAME:DISPLAY, together with my password. In the command line option of vnc-recorder, if I give --host option...
> $ docker run -it vnc-rec --host 10.2.2.61 > INFO[0000] connection established. address="10.2.2.61:5900" > panic: runtime error: invalid memory address or nil pointer dereference > [signal SIGSEGV: segmentation violation code=0x1...
The recorder hangs after 2 minutes and 20 secconds. It keeps recording a frozen screen. I tried a different encoder, but that isn't supported in this docker image. Not sure...
when recording selenium tests from selenium/standalone-chrome-debug:latest it runs fine for 15 seconds then panics with panic: unsupported encoding EncodingType(458845)00:00:14.06 bitrate= 0.0kbits/s speed=0.927x goroutine 1 [running]: main.recorder(0xc000138000) /go/pkg/mod/github.com/saily/[email protected]/main.go:203 +0x1611 github.com/urfave/cli/v2.(*App).RunContext(0xc000136000, {0x6a2c10,...
On macOS it fails immediately after connecting to VNC server. ``` ~/var/vnc-recorder macbook $ /usr/local/bin/ffmpeg -version ffmpeg version 4.4.1 Copyright (c) 2000-2021 the FFmpeg developers built with Apple clang version...
panic: interface conversion: draw.Image is nil, not *vnc2video.VncCanvas goroutine 21 [running]: github.com/amitbet/vnc2video.(*CursorPseudoEncoding).Read(0xc00005e0c0, 0x6f4b88, 0xc000182500, 0xc0000ee500, 0x65ae60, 0xc0000ee508) /root/go/pkg/mod/github.com/amitbet/[email protected]/encoding_cursor.go:53 +0x7c9 github.com/amitbet/vnc2video.(*Rectangle).Read(0xc0000ee500, 0x6f4b88, 0xc000182500, 0xc000042e40, 0x1) /root/go/pkg/mod/github.com/amitbet/[email protected]/image.go:199 +0x385 github.com/amitbet/vnc2video.(*FramebufferUpdate).Read(0x84c540, 0x6f4b88, 0xc000182500, 0xc0000b6c90,...
Maybe it's stupid question, but... how to end the recording? Is Ctrl+C the only option? You could add something like --timeout option to pre-set the recoding time.