Videobereich ausschneiden

5. November 2023

Manchmal stolpert man über Videos, die hochkant hochgeladen wurden. Mit

$ youtube-dl https://www.youtube.com/watch?v=GMQdHHY7CC4

lässt sich das Video zwar herunterladen, aber beim Anschauen wird der Sichtbereich von den Balken oben und unten weiterhin eingeengt. Abhilfe schafft ffmpeg mit folgendem Aufruf.

$ ffmpeg -i input.mp4 -vf "crop:w:h:x:y" output.mp4

Dabei ist w die Breite des Ausschnitts und h dessen Höhe. Mit x und y werden die Koordinaten bestimmt von denen ausgehend der Ausschnitt beginnt.

Beispielhaft für den erwähnten Film lautet der Aufruf folgendermaßen.

$ ffmpeg -i Der\ Zauberer\ und\ die\ Banditen\ 1959\ \[GMQdHHY7CC4\].webm -vf "crop=540:236:0:422" Der\ Zauberer\ und\ die\ Banditen\ 1959.webm
ffmpeg version n6.0 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 13.2.1 (GCC) 20230801
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpl --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-version3 --enable-vulkan
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, matroska,webm, from 'Der Zauberer und die Banditen 1959 [GMQdHHY7CC4].webm':
  Metadata:
    ENCODER         : Lavf60.3.100
  Duration: 01:17:07.35, start: 0.000000, bitrate: 726 kb/s
  Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv), 540x1080, SAR 1:1 DAR 1:2, 25 fps, 25 tbr, 1k tbn (default)
    Metadata:
      DURATION        : 01:17:07.320000000
  Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
    Metadata:
      DURATION        : 01:17:07.348000000
Stream mapping:
  Stream #0:0 -> #0:0 (vp9 (native) -> vp9 (libvpx-vp9))
  Stream #0:1 -> #0:1 (opus (native) -> opus (libopus))
Press [q] to stop, [?] for help
[libopus @ 0x55a8d9771840] No bit rate set. Defaulting to 96000 bps.
[libvpx-vp9 @ 0x55a8d9772680] v1.13.1
[libvpx-vp9 @ 0x55a8d9772680] Neither bitrate nor constrained quality specified, using default CRF of 32
Output #0, webm, to 'Der Zauberer und die Banditen 1959.webm':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0(eng): Video: vp9, yuv420p(tv, progressive), 540x236 [SAR 1:1 DAR 135:59], q=2-31, 25 fps, 1k tbn (default)
    Metadata:
      DURATION        : 01:17:07.320000000
      encoder         : Lavc60.3.100 libvpx-vp9
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, flt, 96 kb/s (default)
    Metadata:
      DURATION        : 01:17:07.348000000
      encoder         : Lavc60.3.100 libopus
frame=115683 fps= 96 q=30.0 Lsize=  165235kB time=01:17:07.32 bitrate= 292.5kbits/s speed=3.83x    
video:134691kB audio:28296kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.378435%