Ich bin etwas verwirrt. scale
Der Videofilter skaliert das Video nicht auf die angegebenen Abmessungen, sondern macht etwas anderes.
Zum Beispiel:
$ youtube-dl -f 134 https://youtu.be/aqz-KE-bpKQ -o 1.mp4 # Datei herunterladen 640x360 360p 723k , avc1.4d401e, 30fps, nur Video, 24,87 MiB $ ffmpeg -i 1.mp4 -vf scale=2000:100 2.mp4 $ ffplay 1.mp4 & ffplay 2.mp4 &
Ich warte darauf, dass das zweite Video in der Höhe so breit und schmal verformt wird, aber:
Hier ist die Ausgabe ffprobe
für beide Dateien:
$ ffprobe 1.mp4 Eingabe #0, mov,mp4,m4a,3gp,3g2,mj2, von '1.mp4': Metadaten: major_brand : Bindestrich Nebenversion: 0 kompatible_Marken: iso6avc1mp41 Erstellungszeit: 2018-12-12T10:08:34.000000Z Dauer: 00:10:34.57, Start: 0.000000, Bitrate: 328 kb/s Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressiv), 640x360 [SAR 1:1 DAR 16:9], 0 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (Standard) Metadaten: Erstellungszeit: 2018-12-12T10:08:34.000000Z handler_name : ISO-Mediendatei, erstellt von Google Inc. Erstellt am: 12.12.2018. $ ffprobe 2.mp4 Eingabe #0, mov,mp4,m4a,3gp,3g2,mj2, von '2.mp4': Metadaten: Hauptmarke: isom Unterversion: 512 kompatible_Marken: isomiso2avc1mp41 Encoder: Lavf57.83.100 Dauer: 00:10:34.57, Start: 0.000000, Bitrate: 443 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 2000x100 [SAR 4:45 DAR 16:9], 440 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 noch offen (Standard) Metadaten: handler_name : VideoHandler
Also habe ich etwas übersehen oder der Videofilter funktioniert falsch? Wie kann man das beheben?
PS:
$ ffmpeg-Version ffmpeg-Version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 die FFmpeg-Entwickler gebaut mit gcc 7 (Ubuntu 7.3.0-16ubuntu3) Konfiguration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample - -enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig - -enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse - -enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis - -enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx--enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared libavutil 55.78.100 / 55.78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57.83.100 / 57.83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4.8.100 / 4.8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54.7.100 / 54.7.100
Der Skalierungsfilter passt das Seitenverhältnis des Beispiels an, um das ursprüngliche Seitenverhältnis der Anzeige beizubehalten, das für Ihre Eingabe 16:9 beträgt. Verwenden Sie den SAR-Filter, um die SAR nach der Skalierung zurückzusetzen.
ffmpeg -i 1.mp4 -vf scale=2000:100,setsar=1 2.mp4
MarianD