Ich mache einen Zeitraffer mit meinem RPI in Python.
Bilder aufnehmen und in Ordnern speichern: Kein Problem. Aber beim Erstellen eines Videos mit FFMPEG habe ich ein Problem.
Nach X Bildern startet das Skript die Erstellung eines Videos. Das Ergebnis ist ein Video mit nur dem ersten Frame UND es überschreibt alle Bilder im Ordner mit dem ersten Frame (?!). Keine Fehlermeldung.
Also, was mache ich falsch?
system('ffmpeg -f image2 -framerate 1 -pattern_type glob -start_number %d -i /media/julien/USBKEY/capture_%d/%d/*.jpg -r 5 -c:v libx264 -pix_fmt yuv420p /media/julien/USBKEY/capture_%s/%d/out%d.mp4 -y' %( nom_premiere_image, nom_dossier, nom_sous_dossier, nom_dossier, nom_sous_dossier, nom_sous_dossier))
Feedback von Shell:
ffmpeg version 4.3.4-0+deb11u1+rpt1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 10 (Raspbian 10.2.1-6+rpi1)
WARNING: library configuration mismatch
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, image2, from '/media/julien/USBKEY/capture_1656104986/1/1656104987.jpg':
Duration: 00:00:01.00, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 720x640, 1 tbr, 1 tbn, 1 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))
Stream #0:0 -> #1:0 (mjpeg (native) -> mjpeg (native))
Stream #0:0 -> #2:0 (mjpeg (native) -> mjpeg (native))
Stream #0:0 -> #3:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
Output #0, image2, to '/media/julien/USBKEY/capture_1656104986/1/1656104988.jpg':
Metadata:
encoder : Lavf58.45.100
Stream #0:0: Video: mjpeg, yuvj420p(pc), 720x640, q=2-31, 200 kb/s, 1 fps, 1 tbn, 1 tbc
Metadata:
encoder : Lavc58.91.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
Output #1, image2, to '/media/julien/USBKEY/capture_1656104986/1/1656104989.jpg':
Metadata:
encoder : Lavf58.45.100
Stream #1:0: Video: mjpeg, yuvj420p(pc), 720x640, q=2-31, 200 kb/s, 1 fps, 1 tbn, 1 tbc
Metadata:
encoder : Lavc58.91.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
Output #2, image2, to '/media/julien/USBKEY/capture_1656104986/1/1656104990.jpg':
Metadata:
encoder : Lavf58.45.100
Stream #2:0: Video: mjpeg, yuvj420p(pc), 720x640, q=2-31, 200 kb/s, 1 fps, 1 tbn, 1 tbc
Metadata:
encoder : Lavc58.91.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
[swscaler @ 0xad3880] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x73dbc0] using cpu capabilities: ARMv6 NEON
[libx264 @ 0x73dbc0] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x73dbc0] 264 - core 160 r3011 cde9a93 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=5 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #3, mp4, to '/media/julien/USBKEY/capture_1656104986/1/out1.mp4':
Metadata:
encoder : Lavf58.45.100
Stream #3:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 720x640, q=-1--1, 5 fps, 10240 tbn, 5 tbc
Metadata:
encoder : Lavc58.91.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame= 1 fps=0.0 q=3.1 q=3.1 q=3.1 q=0.0 size=N/A time=00:00:01.00 bitrate=N/A dup=4 drop=0 speed=1.63x
frame= 1 fps=0.0 q=3.1 Lq=3.1 q=3.1 q=-1.0 size=N/A time=00:00:01.00 bitrate=N/A dup=4 drop=0 speed=1.08x
video:85kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0x73dbc0] frame I:1 Avg QP:13.53 size: 29341
[libx264 @ 0x73dbc0] frame P:1 Avg QP:16.26 size: 385
[libx264 @ 0x73dbc0] frame B:3 Avg QP:15.28 size: 147
[libx264 @ 0x73dbc0] consecutive B-frames: 20.0% 0.0% 0.0% 80.0%
[libx264 @ 0x73dbc0] mb I I16..4: 8.7% 72.9% 18.4%
[libx264 @ 0x73dbc0] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 9.1% 0.6% 0.2% 0.0% 0.0% skip:90.2%
[libx264 @ 0x73dbc0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 3.7% 0.1% 0.0% direct: 0.0% skip:96.2% L0: 9.8% L1:90.2% BI: 0.0%
[libx264 @ 0x73dbc0] 8x8 transform intra:72.9% inter:100.0%
[libx264 @ 0x73dbc0] coded y,uvDC,uvAC intra: 82.5% 71.1% 60.1% inter: 0.7% 0.4% 0.0%
[libx264 @ 0x73dbc0] i16 v,h,dc,p: 48% 12% 18% 22%
[libx264 @ 0x73dbc0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 6% 35% 8% 4% 5% 3% 16% 4%
[libx264 @ 0x73dbc0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 10% 24% 10% 6% 7% 5% 10% 3%
[libx264 @ 0x73dbc0] i8c dc,h,v,p: 56% 14% 19% 11%
[libx264 @ 0x73dbc0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x73dbc0] ref B L0: 95.0% 5.0%
[libx264 @ 0x73dbc0] ref B L1: 98.4% 1.6%
[libx264 @ 0x73dbc0] kb/s:241.34
und das Gleiche gilt, wenn ich direkt die Konsole verwende
julien@raspberrypi:~ $ ffmpeg -f image2 -framerate 1 -pattern_type glob -start_number 1656104991 -i /media/julien/USBKEY/capture_1/1/*.jpg -r 5 -c:v libx264 -pix_fmt yuv420p /media/julien/USBKEY/capture_1/1/out1.mp4 -y
ffmpeg version 4.3.4-0+deb11u1+rpt1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 10 (Raspbian 10.2.1-6+rpi1)
configuration: --prefix=/usr --extra-version=0+deb11u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-mmal --enable-neon --enable-rpi --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --libdir=/usr/lib/arm-linux-gnueabihf --cpu=arm1176jzf-s --arch=arm
WARNING: library configuration mismatch
avutil configuration: --prefix=/usr --extra-version=0+deb11u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-mmal --enable-neon --enable-rpi --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
avcodec configuration: --prefix=/usr --extra-version=0+deb11u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-mmal --enable-neon --enable-rpi --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
avformat configuration: --prefix=/usr --extra-version=0+deb11u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-mmal --enable-neon --enable-rpi --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
avdevice configuration: --prefix=/usr --extra-version=0+deb11u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-mmal --enable-neon --enable-rpi --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
avfilter configuration: --prefix=/usr --extra-version=0+deb11u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-mmal --enable-neon --enable-rpi --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
avresample configuration: --prefix=/usr --extra-version=0+deb11u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-mmal --enable-neon --enable-rpi --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
swscale configuration: --prefix=/usr --extra-version=0+deb11u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-mmal --enable-neon --enable-rpi --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
swresample configuration: --prefix=/usr --extra-version=0+deb11u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-mmal --enable-neon --enable-rpi --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
postproc configuration: --prefix=/usr --extra-version=0+deb11u1+rpt1 --toolchain=hardened --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-mmal --enable-neon --enable-rpi --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --libdir=/usr/lib/arm-linux-gnueabihf/neon/vfp --cpu=cortex-a7 --arch=armv6t2 --disable-thumb --enable-shared --disable-doc --disable-programs
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, image2, from '/media/julien/USBKEY/capture_1/1/1656104991.jpg':
Duration: 00:00:01.00, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 720x640 [SAR 1:1 DAR 9:8], 1 tbr, 1 tbn, 1 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))
Stream #0:0 -> #1:0 (mjpeg (native) -> mjpeg (native))
Stream #0:0 -> #2:0 (mjpeg (native) -> mjpeg (native))
Stream #0:0 -> #3:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
Output #0, image2, to '/media/julien/USBKEY/capture_1/1/1656104992.jpg':
Metadata:
encoder : Lavf58.45.100
Stream #0:0: Video: mjpeg, yuvj420p(pc), 720x640 [SAR 1:1 DAR 9:8], q=2-31, 200 kb/s, 1 fps, 1 tbn, 1 tbc
Metadata:
encoder : Lavc58.91.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
Output #1, image2, to '/media/julien/USBKEY/capture_1/1/1656104993.jpg':
Metadata:
encoder : Lavf58.45.100
Stream #1:0: Video: mjpeg, yuvj420p(pc), 720x640 [SAR 1:1 DAR 9:8], q=2-31, 200 kb/s, 1 fps, 1 tbn, 1 tbc
Metadata:
encoder : Lavc58.91.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
Output #2, image2, to '/media/julien/USBKEY/capture_1/1/1656104994.jpg':
Metadata:
encoder : Lavf58.45.100
Stream #2:0: Video: mjpeg, yuvj420p(pc), 720x640 [SAR 1:1 DAR 9:8], q=2-31, 200 kb/s, 1 fps, 1 tbn, 1 tbc
Metadata:
encoder : Lavc58.91.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
[swscaler @ 0x1b52780] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x17bb9f0] using SAR=1/1
[libx264 @ 0x17bb9f0] using cpu capabilities: ARMv6 NEON
[libx264 @ 0x17bb9f0] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x17bb9f0] 264 - core 160 r3011 cde9a93 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=5 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #3, mp4, to '/media/julien/USBKEY/capture_1/1/out1.mp4':
Metadata:
encoder : Lavf58.45.100
Stream #3:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 720x640 [SAR 1:1 DAR 9:8], q=-1--1, 5 fps, 10240 tbn, 5 tbc
Metadata:
encoder : Lavc58.91.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame= 1 fps=0.0 q=3.1 q=3.1 q=3.1 q=0.0 size=N/A time=00:00:01.00 bitrate=N/frame= 1 fps=0.0 q=3.1 Lq=3.1 q=3.1 q=-1.0 size=N/A time=00:00:01.00 bitrate=N/A dup=4 drop=0 speed= 1x
video:85kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0x17bb9f0] frame I:1 Avg QP:13.46 size: 29096
[libx264 @ 0x17bb9f0] frame P:1 Avg QP:16.32 size: 363
[libx264 @ 0x17bb9f0] frame B:3 Avg QP:14.14 size: 139
[libx264 @ 0x17bb9f0] consecutive B-frames: 20.0% 0.0% 0.0% 80.0%
[libx264 @ 0x17bb9f0] mb I I16..4: 9.2% 73.0% 17.8%
[libx264 @ 0x17bb9f0] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 9.4% 0.6% 0.0% 0.0% 0.0% skip:90.1%
[libx264 @ 0x17bb9f0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 3.8% 0.1% 0.0% direct: 0.0% skip:96.1% L0:10.3% L1:89.7% BI: 0.0%
[libx264 @ 0x17bb9f0] 8x8 transform intra:73.0% inter:100.0%
[libx264 @ 0x17bb9f0] coded y,uvDC,uvAC intra: 79.4% 74.1% 62.8% inter: 0.4% 0.6% 0.0%
[libx264 @ 0x17bb9f0] i16 v,h,dc,p: 52% 17% 16% 15%
[libx264 @ 0x17bb9f0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 6% 34% 3% 9% 16% 4% 6% 4%
[libx264 @ 0x17bb9f0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 8% 22% 5% 12% 14% 4% 6% 4%
[libx264 @ 0x17bb9f0] i8c dc,h,v,p: 52% 16% 24% 8%
[libx264 @ 0x17bb9f0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x17bb9f0] ref B L1: 99.5% 0.5%
[libx264 @ 0x17bb9f0] kb/s:239.02
Ich habe Folgendes versucht und alles ist in Ordnung:https://lindevs.com/install-ffmpeg-on-raspberry-pi/
Antwort1
Schnelle Lösung: Setzen Sie den Eingabedateinamen in einfache Anführungszeichen ( ffmpeg … -i '…/*.jpg' …
).
Längere Erklärung: Das Problem besteht darin, dass *
Ihre Shell die Liste der Dateinamen erweitert, bevor ffmpeg sie überhaupt sieht.
Ihr ursprünglicher Befehl ist also falsch:
ffmpeg -f image2 -framerate 1 -pattern_type glob -start_number %d \
-i /media/julien/USBKEY/capture_%d/%d/*.jpg \
-r 5 -c:v libx264 -pix_fmt yuv420p \
/media/julien/USBKEY/capture_%s/%d/out%d.mp4 -y
ffmpeg wird mit einer Liste von Bildern aufgerufen, im Wesentlichen:
-i image1.jpg image2.jpg …
Für ffmpeg wird die zweite Bilddatei als Ausgabedateiname interpretiert. Da Sie übergeben haben -y
, überschreibt ffmpeg dieses Bild problemlos. (Beachten Sie, dass dies -y
als globale Option in der Argumentenliste an erster Stelle stehen sollte.)
Was Sie tun müssen, istzitieren Sie den Platzhalter. Auf diese Weise interpretiert Ihre Shell es nicht und gibt es nicht an ffmpeg weiter, das den Platzhalter intern zur Liste der Bilder im Ordner erweitert.
ffmpeg -f image2 -framerate 1 -pattern_type glob -start_number %d \
-i '/media/julien/USBKEY/capture_%d/%d/*.jpg' \
-r 5 -c:v libx264 -pix_fmt yuv420p \
/media/julien/USBKEY/capture_%s/%d/out%d.mp4 -y
Siehe auch die BeispieleHier.
Für Ihren Programmcode würde ich empfehlen, Python-Formatzeichenfolgen zu verwenden und das subprocess
Modul zu nutzen, anstatt direkt aufzurufen system
:
import subprocess
subprocess.check_output(
f"ffmpeg -y -f image2 -framerate 1 -pattern_type glob -start_number {nom_premiere_image} -i '/media/julien/USBKEY/capture_{nom_dossier}/{nom_sous_dossier}/*.jpg' -r 5 -c:v libx264 -pix_fmt yuv420p /media/julien/USBKEY/capture_{nom_dossier}/{nom_sous_dossier}/out{nom_sous_dossier}.mp4", shell=True
)
Besser noch, setzen Sie alles im Befehl in eine Liste und übergeben Sie diese:
subprocess.check_output([
"ffmpeg", "-y", "-f", "image2", "-framerate", "1", "-pattern_type", "glob", "-start_number", nom_premiere_image,
"-i", f"'/media/julien/USBKEY/capture_{nom_dossier}/{nom_sous_dossier}/*.jpg'",
"-r", "5", "-c:v", "libx264", "-pix_fmt", "yuv420p",
f"/media/julien/USBKEY/capture_{nom_dossier}/{nom_sous_dossier}/out{nom_sous_dossier}.mp4",
])