I got a bunch of really large 16 bit videos, approaching 65535×65535 pixels in size. These are essentially high quality timelapse panoramas. I want to convert them to a 7680×4320 movie (8K UHD, 8 bit). I'm not too concerned about the format, but I want some kind of compression.

I think I can resize the images using Python to get them down to HEVC (8192×4320)...

Is there anything that will playback (with VLC?) that can do a larger number of pixels than 8192×4320? What are my options?

When I try to use FFmpeg I get errors like:

[mjpeg @ 000000000062eae0] [IMGUTILS @ 000000000023ed40] Picture size 20000x19824 is invalidN/A
Error while decoding stream #0:0: Invalid data found when processing input
  • 4
    Any player based on ffmpeg/libav will likely fail if ffmpeg does. You'll have to downsize the video and then convert. Since your input is MJPEG, you can try to losslessly extract the frames as an image sequence. Downsize with another app (imagemagick?) and then encode that result. ffmpeg -i in.mov -c copy frames%d.jpg – Gyan Mar 25 '17 at 5:24
  • I'd imagine there might be hardware limitations on playing back those files, whatever the software. – stib Mar 27 '17 at 1:13

FFmpeg is tripping up at this statement in Imgutils.c in function av_image_check_size()

if ((int)w>0 && (int)h>0 && (w+128)*(uint64_t)(h+128) < INT_MAX/8) return;  [ else error() ]

where INT_MAX is defined in limits.h as at least 32767 (2^15-1), or greater depending upon your compiler.

Compiling with a 64-bit compiler will permit larger images.

  • It's tripping up at (int)w<=0 || (int)h<=0 || stride >= INT_MAX || stride*(uint64_t)(h+128) >= INT_MAX And INT_MAX is fixed to 2^31-1. Which compiler limits.h are you referring to? Mine is GCC 6.3.0. I've 64-bit ffmpeg compiled using a 64-bit toolchain and I also get the same error for the OP's size. – Gyan Mar 25 '17 at 16:25
  • 2
    Actually, the statement you quoted isn't present in the current code. The one I quoted is, and was added there in Dec 2016. – Gyan Mar 25 '17 at 16:32
  • @Mulvya - en.m.wikibooks.org/wiki/C_Programming/C_Reference/limits.h - The Standard says a larger value is permitted. That INT_MAX is a minimum value under the Standard (No compliant C Compiler can have a lower value. Further Googling shows that some OS's size is 64 Bit. I'll accept the newer Source. Plug in his values. Would half the size fit? If he's going to use Python I don't imagine it will accept arbitrarily large values either but it might take 64 Bit values. The size he wants to playback at implies he has an 8K Screen (or is Archiving for the future). – Rob Mar 25 '17 at 17:30
  • I would surprised if this was a 64bit limit because I'm using a 64bit version of ffmpeg, specifically ffmpeg-20170321-db7a05d-win64-static – Mikhail Mar 27 '17 at 9:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.