Convert image sequence to lossless movie

52,723

Try using a lossless codec, e.g. HuffYUV or FFV1:

  • ffmpeg -i frame%04d.png -c:v huffyuv test.avi
  • ffmpeg -i frame%04d.png -c:v ffv1 -qscale:v 0 test.avi

Both codecs look portable. HuffYUV appears to be the more popular, but for some reason, huffyuv encoding seems broken on my system, and I get weird colors and black horizontal banding. It could have something to do with the input being RGB (from PNG) and not YUV (input from a raw YUV420 video file works OK). So here are some alternatives (not completely lossless, but visually quite good):

  • ffmpeg -i frame%04d.png -qscale:v 0 test.avi
  • ffmpeg -i frame%04d.png -c:v mjpeg -qscale:v 0 test.avi
Share:
52,723

Related videos on Youtube

astrofrog
Author by

astrofrog

Updated on January 19, 2020

Comments

  • astrofrog
    astrofrog over 4 years

    I have a sequence of images in TIF format, and I would like to create a movie at a fixed FPS (say 10 images per second) and that is lossless. Is there an easy way to do that? I've been trying with convert from Imagemagick, and ffmpeg, but I just can't figure out what settings to use to avoid any compression.

    • JoshRoss
      JoshRoss over 13 years
      If you have a Mac, you can use apple script and quicktime. Do you have access to a Mac?
    • Hugues
      Hugues over 7 years
    • Ciro Santilli OurBigBook.com
      Ciro Santilli OurBigBook.com over 7 years
    • Peter
      Peter over 5 years
      ffmpeg -r 15 -i img%04d.jpg -vcodec libx264 -b 800k -filter minterpolate='fps=120' out.mp4") works quite well for me
    • Peter
      Peter over 5 years
      Another hint: also check different fps= settings. Lower/higher fps may be better contingent on the problem at hand.
  • Todd Partridge 'Gen2ly'
    Todd Partridge 'Gen2ly' almost 12 years
    HuffYUV does have support for RGB, so I'm not sure it thats the issue.
  • P.R.
    P.R. about 11 years
    I think almost by definition mjpeg will NOT be lossless. HuffYUV is, but it might introduce rounding errors due to color conversion. I cannot state anything about FFV1. However, I would like to draw attention to the lossless H264 option: ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide#LosslessH.264
  • Royi
    Royi over 7 years
    How can I make each image to be exactly 1 frame and make the output file have FPS of 1 (Without replicating the images, just play slowly)? Thank You.
  • Will Brickner
    Will Brickner over 6 years
    @Royi what I do is ffmpeg -r <DESIRED_FPS> -f image2 -s <FRAME_WIDTH>x<FRAME_HEIGHT> -i ./frames/frame_%d.png -vcodec libx264 -pix_fmt yuv420p ./output.mp4 The part you're interested in is the -r <FPS> flag.