Ich habe ein Video mit einem iPhone SE (11.4.1) mit 1080H / 30 fps aufgenommen. Ich möchte mit ffmpeg so viele Einzelbilder wie möglich extrahieren

391
lupo

Ich habe ein Video mit einem iPhone SE, iOS Version 11.4.1 (15G77) aufgenommen.

Ich möchte möglichst viele Einzelbilder und Standbilder in bester verfügbarer Qualität extrahieren. Ich schätze, ich kann maximal 30 Standbilder pro Sekunde bekommen.

Mit ffmpeg -i /tmp/IMG_1234.MOV -r 1/1 /tmp/$filename%03d.bmp bekomme ich nur ein Standbild pro Sekunde.

Was muss ich ändern, um möglichst viele verschiedene Einzelbilder zu erhalten?

Der nächste Schritt besteht darin, Standbilder nicht für das gesamte Video, sondern nur von Position a bis Position b zu extrahieren. Zum Beispiel alle Frames von 00:05 bis 00:10 (mm: ss).

Dies sind die Infos von ffmpeg über die Datei:

ffmpeg -i /home/merlin/Downloads/IMG_8087.MOV  ffmpeg version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2000-2018 the FFmpeg developers built with gcc 7 (Ubuntu 7.3.0-16ubuntu3) configuration: --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 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/merlin/Downloads/IMG_8087.MOV': Metadata: major_brand : qt  minor_version : 0 compatible_brands: qt  creation_time : 2018-09-04T05:43:47.000000Z com.apple.quicktime.make: Apple com.apple.quicktime.model: iPhone SE com.apple.quicktime.software: 11.4.1 com.apple.quicktime.creationdate: 2018-09-04T07:43:47+0200 Duration: 00:00:17.48, start: 0.000000, bitrate: 15925 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 15818 kb/s, 29.98 fps, 29.97 tbr, 600 tbn, 1200 tbc (default) Metadata: rotate : 90 creation_time : 2018-09-04T05:43:47.000000Z handler_name : Core Media Data Handler encoder : H.264 Side data: displaymatrix: rotation of -90.00 degrees Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 95 kb/s (default) Metadata: creation_time : 2018-09-04T05:43:47.000000Z handler_name : Core Media Data Handler Stream #0:2(und): Data: none (mebx / 0x7862656D), 0 kb/s (default) Metadata: creation_time : 2018-09-04T05:43:47.000000Z handler_name : Core Media Data Handler Stream #0:3(und): Data: none (mebx / 0x7862656D), 0 kb/s (default) Metadata: creation_time : 2018-09-04T05:43:47.000000Z handler_name : Core Media Data Handler At least one output file must be specified 

Vielen Dank im Voraus für Ihre Zeit :)

0

1 Antwort auf die Frage

1
lupo

Sieht aus wie der -r 30/1Parameter macht was ich will.

ffmpeg -i /tmp/IMG_1234.MOV -r 30/1 /tmp/$filename%03d.bmp 

Weiß nicht, ob es mehr Parameter gibt, um Standbilder zu erhalten, die schärfer sind.

"-r 30" ist genug, keine Notwendigkeit zu teilen. Wenn Ihre Bilder unscharf erscheinen, handelt es sich höchstwahrscheinlich um Bewegungsunschärfe, die Teil des Originalvideos ist. Sie werden das nicht wahrnehmen, wenn das Video abgespielt wird. Für die Suche siehe: https://superuser.com/questions/377343/cut-part-from-video-file-from-start-position-to-end-position-with-ffmpeg slhck vor 5 Jahren 0