I used this today to try and find a frame showing a blinking error dialog, but wasnt successful, anyways here it is!

ffmpeg -i video.mp4 -r 30 frame%d.png
  • -r is the FPS
  • the %d is a nice iterator, works in fish and bash apparently

Images to video

Useful for timelapses!

#!/bin/sh

fps=10

ffmpeg \
	-framerate $fps \
	-pattern_type glob \
	-i '*.jpg' \
	-c:v libsvtav1 \
	-crf 20 -preset 6 \
	-vf "scale=-2:1080" \
	timelapse.mp4
  • Rentlar@lemmy.ca
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 days ago

    If you want leading zeros, you can format it like %04d as well (0001, 0002) or change 4 to any number you like.

  • refalo@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 days ago

    Why? mpv/vlc/etc. can move by individual frames, and can screenshot them, no need to burn GBs worth of space on jpegs you don’t need.

    • exdor@programming.devOPM
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 day ago

      Well I did this on my phone and my used player (Next Player) only goes down to 0,2x speed XD but yeah this use case isnt thaat useful