Record vnc screens to mp4 video using ffmpeg written in go.
Go to file
2021-12-02 19:10:12 +01:00
.github/workflows workflows to create docker container 2021-12-02 17:24:29 +01:00
.gitattributes Add .gitattributes 2019-06-02 12:20:06 +02:00
.gitignore now you can spit files each N minutes 2021-12-02 19:10:12 +01:00
Dockerfile Upgrade to ffmpeg 4.1 2020-10-25 00:09:04 +02:00
encoder.go Add -pix_fmt yuv420p #8 2021-12-02 17:17:13 +01:00
go.mod Upgrade urfave cli to v2 2020-10-25 00:01:51 +02:00
go.sum Upgrade urfave cli to v2 2020-10-25 00:01:51 +02:00
LICENSE Initial commit 2019-06-02 12:16:36 +02:00
main.go now you can spit files each N minutes 2021-12-02 19:10:12 +01:00
README.md now you can spit files each N minutes 2021-12-02 19:10:12 +01:00

VNC recorder

this is wip, don't use in production!

Record VNC screens to mp4 video using ffmpeg. Thanks to amitbet for providing his vnc2video library which made this wrapper possible.

Use

docker run -it widerin/vnc-recorder --help


NAME:
   vnc-recorder - Connect to a vnc server and record the screen to a video.

USAGE:
   vnc-recorder [global options] command [command options] [arguments...]

VERSION:
   0.3.0

AUTHOR:
   Daniel Widerin <daniel@widerin.net>

COMMANDS:
     help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --ffmpeg value     Which ffmpeg executable to use (default: "ffmpeg") [$VR_FFMPEG_BIN]
   --host value       VNC host (default: "localhost") [$VR_VNC_HOST]
   --port value       VNC port (default: 5900) [$VR_VNC_PORT]
   --password value   Password to connect to the VNC host (default: "secret") [$VR_VNC_PASSWORD]
   --framerate value  Framerate to record (default: 30) [$VR_FRAMERATE]
   --crf value        Constant Rate Factor (CRF) to record with (default: 35) [$VR_CRF]
   --outfile value    Output file to record to. (default: "output.mp4") [$VR_OUTFILE]
   --splitfile value  Mins to split file. (default: 0) [$VR_SPLIT_OUTFILE]
   --help, -h         show help
   --version, -v      print the version

Note: If you run vnc-recorder from your command line and don't use docker you might want to customize the --ffmpeg flag to point to an existing ffmpeg installation.

Build

docker build -t yourbuild .
docker run -it yourbuild --help

TODO

  • Add tests!
  • Add more encoder options
  • Get some patches merged for our dependencies