[FFmpeg-user] Creating video from a lot of jpeg pictures

Paul B Mahol onemda at gmail.com
Mon Apr 11 12:26:00 EEST 2022


On Mon, Apr 11, 2022 at 11:22 AM Paul B Mahol <onemda at gmail.com> wrote:

>
>
> On Mon, Apr 11, 2022 at 10:58 AM Balogh László <laci at blacc.hu> wrote:
>
>> Hi,
>>
>> I have about 4300 pictures in a folder (000_Images/2022/04/2022-04-10/).
>> I want to create a video from them, every picture should be one frame in
>> the video.
>>
>> I'm using the following command: ffmpeg -framerate 25 -i
>> 000_Images/2022/04/2022-04-10/*.jpeg -c:v libx264 -profile:v high -crf
>> 20 -pix_fmt yuv420p -y output.mp4
>>
>> Its starting, but after about 500 pictures ffmpeg is slowing down, while
>> the system load goes quickly up. It was hard to cancel the command, as
>> the load was above 80. :)
>>
>> Here some log of the command:
>>
>> mcll at mcllserver-i3:/home/VVCam$ ffmpeg -framerate 25 -i
>> 000_Images/2022/04/2022-04-10/*.jpeg -c:v libx264 -profile:v high -crf
>> 20 -pix_fmt yuv420p -y output.mp4
>
>    built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
>>    configuration: --prefix=/usr --extra-version=0ubuntu0.2
>> --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, image2, from
>> '000_Images/2022/04/2022-04-10/2022-04-10_00_00_01.jpeg':
>>    Duration: 00:00:00.04, start: 0.000000, bitrate: 66148 kb/s
>>      Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown),
>> 2688x1520 [SAR 1:1 DAR 168:95], 25 tbr, 25 tbn, 25 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) -> mjpeg (native))
>>    Stream #0:0 -> #4:0 (mjpeg (native) -> mjpeg (native))
>>    Stream #0:0 -> #5:0 (mjpeg (native) -> mjpeg (native))
>>    Stream #0:0 -> #6:0 (mjpeg (native) -> mjpeg (native))
>> ...cut...
>>    Stream #0:0 -> #4316:0 (mjpeg (native) -> mjpeg (native))
>>    Stream #0:0 -> #4317:0 (mjpeg (native) -> mjpeg (native))
>>    Stream #0:0 -> #4318:0 (mjpeg (native) -> mjpeg (native))
>>    Stream #0:0 -> #4319:0 (mjpeg (native) -> h264 (libx264))
>> Press [q] to stop, [?] for help
>> Output #0, image2, to
>> '000_Images/2022/04/2022-04-10/2022-04-10_00_00_21.jpeg':
>>    Metadata:
>>      encoder         : Lavf57.83.100
>>      Stream #0:0: Video: mjpeg, yuvj420p(pc), 2688x1520 [SAR 1:1 DAR
>> 168:95], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
>>      Metadata:
>>        encoder         : Lavc57.107.100 mjpeg
>>      Side data:
>>        cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
>> Output #1, image2, to
>> '000_Images/2022/04/2022-04-10/2022-04-10_00_00_41.jpeg':
>>    Metadata:
>>      encoder         : Lavf57.83.100
>>      Stream #1:0: Video: mjpeg, yuvj420p(pc), 2688x1520 [SAR 1:1 DAR
>> 168:95], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
>>      Metadata:
>>        encoder         : Lavc57.107.100 mjpeg
>>      Side data:
>>        cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
>> Output #2, image2, to
>> '000_Images/2022/04/2022-04-10/2022-04-10_00_01_01.jpeg':
>>    Metadata:
>>      encoder         : Lavf57.83.100
>>      Stream #2:0: Video: mjpeg, yuvj420p(pc), 2688x1520 [SAR 1:1 DAR
>> 168:95], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
>>      Metadata:
>>        encoder         : Lavc57.107.100 mjpeg
>>      Side data:
>>        cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
>> ...etc...
>>
>> Why is this generating such a high load, and what should i do?
>>
>
>
> It is for some reason creating separate streams for each jpeg image.
>
> Is your ffmpeg modified or you use script?
>
> Because original ffmpeg does not do this.
>

Ignore that remark above, I forgot -y switch.

Oops, using -y switch in your case is very dangerous.


You completely ditched all jpegs and replaced them with the first one.

NEVER EVER USE -y SWITCH, NEVER EVER.



>
>
>>
>> Thanks
>>
>> Regards, Laszlo
>>
>>
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>>
>


More information about the ffmpeg-user mailing list