Я получил кучу очень больших 16-битных видео размером около 65535×65535 пикселей. По сути, это высококачественные таймлапс-панорамы. Я хочу преобразовать их в фильм 7680×4320 (8K UHD, 8 бит). Меня не слишком волнует формат, но хочется какой-нибудь компрессии.
Я думаю, что могу изменить размер изображений с помощью Python, чтобы уменьшить их до HEVC (8192 × 4320) ...
Есть ли что-нибудь, что будет воспроизводить (с VLC?) и может обрабатывать большее количество пикселей, чем 8192×4320? Каковы мои варианты?
Когда я пытаюсь использовать FFmpeg, я получаю такие ошибки, как:
[mjpeg @ 000000000062eae0] [IMGUTILS @ 000000000023ed40] Picture size 20000x19824 is invalidN/A
Error while decoding stream #0:0: Invalid data found when processing input
FFmpeg срабатывает при этом операторе Imgutils.c
в функцииav_image_check_size()
if ((int)w>0 && (int)h>0 && (w+128)*(uint64_t)(h+128) < INT_MAX/8) return; [ else error() ]
где INT_MAX
определяется limits.h
как минимум 32767
( 2^15-1
) или больше, в зависимости от вашего компилятора.
Компиляция с помощью 64-битного компилятора позволит увеличить изображения.
(int)w<=0 || (int)h<=0 || stride >= INT_MAX || stride*(uint64_t)(h+128) >= INT_MAX
И INT_MAX фиксируется на 2 ^ 31-1. На какой компилятор limit.h вы ссылаетесь? У меня GCC 6.3.0. Я скомпилировал 64-битный ffmpeg с использованием 64-битной цепочки инструментов, и я также получаю ту же ошибку для размера OP.ffmpeg-20170321-db7a05d-win64-static
Гьян
ffmpeg -i in.mov -c copy frames%d.jpg
удар