Search code examples
timeffmpegisodate

ffmpeg input image list with timestamp in filename


How can I convert a list of input .png images which contain an ISO time stamp in their filename?

ffmpeg -y -f image2 -pattern_type glob -i '*.png' output.mp4

do not manage colons : in a ISO-format filename such as 2018-01-29T06:43:21.png, and other solutions only allow aaa%03d.png file names such as aaa001.png.


Solution

  • In short, prepend your glob pattern with ./.

    I ran into this same problem and managed to find a related ffmpeg bug report: https://trac.ffmpeg.org/ticket/5384. It looks like the filename parser considers the part before a colon to be a schema.

    In that bug report, the answer said to use an explicit file: prefix. That worked for me too, but only if I had a single file as input. For more than one file, I was able to use the workaround the bug author used (prepend the current directory).

    More generally, it would seem that any path separator (i.e. slash char) tricks the filename parser into doing the right thing. For example, it should also work if you provide an absolute path for the input filenames.