Skip to main content

Superimpose presentation records onto PDF slides

Project description

Superimposer — combine presentation videos with slides

You have: pdf slides and a video of you talking about them.

You want: a video of your slides with you in the corner.

You need: superimposer.

So, you presented something, and now have a recording of it, that's awesome! But the slides are hard to read, or got cropped out somehow, and you want to fix that. Fear not, superimposer has you covered! Just tell it what slide to display when, point it at your slides and your video, and it will generate a new video for you with the slides front and center, and your video tucked away nicely in a corner.

To get up and running, you first need the video file for your presentation (let's say it's presentation.mp4) and a PDF file with your slides (let's say it's slides.pdf). Then, create a file called transitions.txt and write:

00:00 1

You probably get the gist here. Play through your presentation, and every time you change slides, write down a new line with the current timestamp (the O hotkey in mpv is handy here) and the desired slide number. When you're done, run:

$ superimposer presentation.mp4 slides.pdf superimposed.mp4

This will eventually kick off ffmpeg, which will take a while to encode your video. When it's done, superimposed.mp4 should have what you want!

Superimposer takes a bunch of handy command-line arguments to tweak the output. Run superimposer --help to see them. If you're using H.264, you may want to consider also giving:

-- -tune stillimage

If you are significantly resizing the camera video, you may want to change the scaling algorithm with:

-- -sws_flags lanczos

Requirements

  • ffmpeg and ffprobe (usually installed with ffmpeg)
  • pdftoppm (part of Poppler)

Normalizing audio

If your audio is sad, try ffmpeg-normalizer with something like:

$ ffmpeg-normalize superimposed.mp4 -o superimposed-normalized.mp4 -c:a aac

Hardware acceleration

You can pass additional parameters to the ffmpeg encoder by placing them after -- in the argument list to superimposer. You'll probably want to read up on hardware acceleration in ffmpeg, and maybe the ffmpeg VAAPI encoding docs.

Examples

Here are some examples of what the resulting video looks like:

Demystifying unsafe code Considering Rust

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

superimposer-0.1.2.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

superimposer-0.1.2-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file superimposer-0.1.2.tar.gz.

File metadata

  • Download URL: superimposer-0.1.2.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for superimposer-0.1.2.tar.gz
Algorithm Hash digest
SHA256 76cf7a5dde3881a6c1da87a5de91b5bb5c88c5b05047bf40ad381fadee61ba41
MD5 7632a1ad0b8225d1d4a0599fe84d7a87
BLAKE2b-256 9f7d1302e5627c74d85e56069f9fa8499929606281a926a4a15a49115e98b41f

See more details on using hashes here.

File details

Details for the file superimposer-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: superimposer-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for superimposer-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 79d1631808e5ad87d344fe32356412d7e4426d866c13f981fd975f0c36d8c97f
MD5 eacd18b0f28b082a45311e6c34c20c3e
BLAKE2b-256 5d4cb8b2b2400dcad3b3ac9b956eb082f0609fdaacac0e2b5256f2edfa4037b4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page