Eu quero converter uma seqüência de imagens ppm para um vídeo avi (ou outro formato de vídeo possível aceito pelo OpenCV)
Primeiro eu converti as imagens ppm sem queda na qualidade para jpg:
$ for f in *ppm ; do convert -quality 100 $f 'basename $f ppm'jpg; done
então eu usei o seguinte comando para converter para avi:
$ ffmpeg -i CS585Bats-FalseColor_frame*.jpg -vcodec mpeg4 test.avi
Mas recebi o seguinte erro:
FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
built on Aug 2 2016 19:05:32 with clang 7.3.0 (clang-703.0.31)
configuration: --enable-libmp3lame --enable-libfaac --enable-gpl --enable-nonfree --enable-shared --disable-mmx --arch=x86_64 --cpu=core2
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
Input #0, image2, from 'CS585Bats-FalseColor_frame000000750.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #0.0: Video: mjpeg, yuvj444p, 1024x1024 [PAR 1:1 DAR 1:1], 25 tbr, 25 tbn, 25 tbc
ffmpeg(11831,0x7fffa5dc6340) malloc: *** error for object 0x100000001: pointer being realloc'd was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
Então, pensei em usar esse outro método, mas ainda recebo o erro:
$ convert -delay 6 -quality 100 CS585Bats-FalseColor_frame000000*ppm movie.mpg
convert: delegate failed ''ffmpeg' -nostdin -v -1 -i '%M%%d.jpg' '%u.%m' 2> '%u'' @ error/delegate.c/InvokeDelegate/1919.
nomes de arquivos ppm se parecem com abaixo:
$ ls *ppm | head -5
CS585Bats-FalseColor_frame000000750.ppm
CS585Bats-FalseColor_frame000000751.ppm
CS585Bats-FalseColor_frame000000752.ppm
CS585Bats-FalseColor_frame000000753.ppm
CS585Bats-FalseColor_frame000000754.ppm