FFmpeg и видео для Instagram

Как купил камеру, иногда выходят небольшие таймлапсы обо всем вокруг. И вроде бы удалось нагуглить, каких их собирать посредством ffmpeg, но вот как залить в Instagram — оказалось неожиданной проблемой. Бился над этой задачей не меньше дюжины часов в три дня и к концу первых двух дней натурально впадал в отчаяние, как и комментаторы почти всех записей на эту тему (пример). Но в итоге получилось. Попутно узнал немного о x264.

Оказалось, что Instagram, неудосужившийся даже опубликовать спецификацию видеовхода, понимает видео в довольно престарелом «формате»: profile — baseline, level — 3.0, pixel format — 4.2.0. Все более высокие и новые профайлы и уровни приложение не воспринимает и в лучшем случае просто зависает. Остальное — соотношение сторон (почти любое), разрешение (до FullHD включительно), частота кадров (30) — оказались не тем местом, где стоило искать подвох. Ответ нигде нагуглить не удалось — все туториалы или содержат неверные спеки, или упускают главное (даже этот, несмотря на то, что кажется Граалем в вопросе), так что результат был получен методом проб и ошибок.

Итоговый процесс выглядит так:

ffmpeg -i short.avi -r 30 -pix_fmt yuv420p -c:v libx264 -profile:v baseline -level 3.0 -preset slow short_inst1.mp4

Enjoy.