<p>It's worth a try using the concat demuxer.</p>

<p>First, create a text file like this:</p>

<pre><code>file 'motor_animate_000.gif'
file 'motor_animate_001.gif'
file 'motor_animate_002.gif'
file 'motor_animate_003.gif'
...
</code></pre>

<p>Then run</p>

<pre><code>ffmpeg -f concat -i list.txt motor.mpg
</code></pre>

<p>Do note that by just specifying a <code>.MPG</code> filename as output parameter, ffmpeg will encode to MPEG-1 at a bitrate of 200 kb/s. If MP4 is not acceptable and .mpg is needed, then add <code>-c:v mpeg2video -b:v 1000k</code> after <code>list.txt</code> to set codec and avg. bitrate. For MP4, just change extension; the defaults are decent.</p>

CC BY-SA 3.0
2017-01-07T17:57:17.873Z
That gives me a buttload of warnings of the ilk "DTS -922328613750886, next:100000 st:0 invalid dropping //
PTS -922328613750886, next:100000 invalid dropping st:0 //
Past duration 1.999992 too large".  But it works.  Thanks.
TimWescott
CC BY-SA 3.0
2017-01-07T17:59:27.230Z
Yeah, you can ignore those. The concat demuxer usually works with video files which contain valid PTS values, not a relic like GIF.
Gyan
CC BY-SA 3.0
2017-01-07T04:53:41.873Z
2017-01-07T04:53:41.873Z
Gyan
<p>The scene: Ubuntu 16.04, newly upgraded from 14.04 where things perked along happily with avconv</p>

<p>The props: a directory full of stills, motor_animate_000.gif, motor_animate_001.gif, etc.</p>

<p>The players: Me, a mostly-newbie ffmpeg user, and ffmpeg.</p>

<p>The drama:</p>

<p>Based on a suggestion I had to solve another problem, I execute the command line:</p>

<p>ffmpeg -f image2 -framerate 30 -i motor_animate_%03d.gif motor.mpg</p>

<p>After the usual excrutiating detailed list of stuff from ffmpeg, I get the following error message (in more than one color, ooh, ooh).</p>

<p>[image2 @ 0x14f8420] Could not find codec parameters for stream 0 (Video: none, none): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
motor_animate_%03d.gif: could not find codec parameters
Input #0, image2, from 'motor_animate_%03d.gif':
  Duration: 00:00:04.03, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: none, none, 30 fps, 30 tbr, 30 tbn, 30 tbc
File 'motor.mpg' already exists. Overwrite ? [y/N] y
No decoder for stream #0:0, filtering impossible
Error opening filters!</p>

<p>Can anyone tell me what's going on and how to fix it?  All I want to do is make an mpeg clip out of a bunch of one-frame gifs.</p>

<p>Thanks.</p>

CC BY-SA 3.0
2017-01-06T19:12:51.280Z
How were the GIFs created? And have you tried with a recent [binary](http://johnvansickle.com/ffmpeg/)?
Gyan
CC BY-SA 3.0
2017-01-06T21:01:26.480Z
GIFs were created using Scilab.  It works for one frame if I specify a fully qualified file name.  I'd really rather not step outside of Ubuntu's package maintenance protocol on this -- I'm using other things (kdenlive) that work Just Fine using the Ubuntu version of ffmpeg, and don't want to throw myself into Dependency Hell.
TimWescott
CC BY-SA 3.0
2017-01-06T21:04:39.437Z
And I spot-checked some of the GIFs -- they look just fine, at least to Ristretto.
TimWescott
<video><ffmpeg><animation><mpeg>
Could not find codec parameters -- for gif?
TimWescott
# Could not find codec parameters -- for gif?

(Asked by: username_0 on 2017-01-06)

The scene: Ubuntu 16.04, newly upgraded from 14.04 where things perked along happily with avconv

The props: a directory full of stills, motor\_animate\_000.gif, motor\_animate\_001.gif, etc.

The players: Me, a mostly-newbie ffmpeg user, and ffmpeg.

The drama:

Based on a suggestion I had to solve another problem, I execute the command line:

ffmpeg -f image2 -framerate 30 -i motor\_animate\_%03d.gif motor.mpg

After the usual excrutiating detailed list of stuff from ffmpeg, I get the following error message (in more than one color, ooh, ooh).

[image2 @ 0x14f8420] Could not find codec parameters for stream 0 (Video: none, none): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
motor\_animate\_%03d.gif: could not find codec parameters
Input #0, image2, from 'motor\_animate\_%03d.gif':
Duration: 00:00:04.03, start: 0.000000, bitrate: N/A
Stream #0:0: Video: none, none, 30 fps, 30 tbr, 30 tbn, 30 tbc
File 'motor.mpg' already exists. Overwrite ? [y/N] y
No decoder for stream #0:0, filtering impossible
Error opening filters!

Can anyone tell me what's going on and how to fix it? All I want to do is make an mpeg clip out of a bunch of one-frame gifs.

Thanks.

**Tags:** video, ffmpeg, animation, mpeg

> **Comments:**
> **username_1**: How were the GIFs created? And have you tried with a recent [binary](http://johnvansickle.com/ffmpeg/)?  
> **username_0**: GIFs were created using Scilab.  It works for one frame if I specify a fully qualified file name.  I'd really rather not step outside of Ubuntu's package maintenance protocol on this -- I'm using other things (kdenlive) that work Just Fine using the Ubuntu version of ffmpeg, and don't want to throw myself into Dependency Hell.  
> **username_0**: And I spot-checked some of the GIFs -- they look just fine, at least to Ristretto.  

---

## 1 answers

### Answer by username_1 on 2017-01-07. Score: 1 | Accepted answer

It's worth a try using the concat demuxer.
First, create a text file like this:
file 'motor_animate_000.gif'
file 'motor_animate_001.gif'
file 'motor_animate_002.gif'
file 'motor_animate_003.gif'
...

Then run
ffmpeg -f concat -i list.txt motor.mpg

Do note that by just specifying a .MPG filename as output parameter, ffmpeg will encode to MPEG-1 at a bitrate of 200 kb/s. If MP4 is not acceptable and .mpg is needed, then add -c:v mpeg2video -b:v 1000k after list.txt to set codec and avg. bitrate. For MP4, just change extension; the defaults are decent.

> **Comments:**
> **username_0**: That gives me a buttload of warnings of the ilk "DTS -922328613750886, next:100000 st:0 invalid dropping // PTS -922328613750886, next:100000 invalid dropping st:0 // Past duration 1.999992 too large".  But it works.  Thanks.  
> **username_1**: Yeah, you can ignore those. The concat demuxer usually works with video files which contain valid PTS values, not a relic like GIF.  

---

