Git Product home page Git Product logo

video-presentation's Introduction

Video Presentation Helper Scripts

This repository contains some scripts to aid in recording a presentation and then combining the results into a single video of the slides and speaker.

The aim is to record the desktop, to capture the presentation in high-fidelity, and to also video the presenter/speaker with a camera. The two videos can then be combined into one, with a template used for the background.

Record Desktop (Wayland support)

Recording a linux desktop is pretty simple if you’re using x11, but since moving to wayland, most existing tools will just capture a black screen. Instead, you need to either hook into the gnome dbus screen recording mechanism (using something like green-recorder), or better still capture from the drm kms video device directly.

ffmpeg has support for kms capture, so that that’s what I’ve used. The trickiest part is telling it which screen to record if you have a multi monitor setup.

./wayland-capture.sh <output_filename> will invoke the script, first prompting you to select the monitor to record

It uses VAAPI for hardware accelleration (realitically limiting it to intel graphics cards), so it shouldn’t slow your machine down much while presenting.

Capture video of the presenter

Use an ordinary video camera to capture the presenter/speaker while they give the presentation, then transfer the recording to your computer.

TODO: Implement a script to capture the presenter via a webcam

Create combined video

Prior to this step, you’ll want to edit your video files so that they start and end at the same point.

You’ll need to prepare a template image file (1920x1080, jpg or png) that will be the base of your final video. You can use this to display the title of the presentation and company logo etc.

./combine.sh --template <templatefile> --speaker <speaker_video> --presentation <presentation_video> <output_filename>

This command will stack your videos on top of the template image, so that the presentation video is scaled to 1280x720 and placed in the top left (x=30, y=30), and the speaker video is scaled to 566x318 and placed in the top right (x=1335, y=30).

TODO: Make the position and size of the video configurable. TODO: Hardware accellerate this step.

video-presentation's People

Contributors

gilesp avatar

Stargazers

Nik Mouzourides avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.