← в блог
InstagramВидео·12 октября 2026 г.·6 мин чтения

Reels 9:16: почему Instagram не даёт продвигать вертикальное видео

Видео вертикальное, редактор обещал 9:16, Reels опубликовался без единого замечания, а на кнопке продвижения Instagram отвечает, что продвигать можно только видео с полноэкранным соотношением сторон 9:16. Это не придирка и обычно не ошибка Instagram: у файла действительно не 9:16, просто разница в один пиксель.

Максоснователь Sndwich · @SattyEth

Что Instagram называет 9:16

Девять шестнадцатых это 0,5625. Ровно, без остатка. Кадр 1080×1920 даёт ровно 0,5625, и это и есть то самое полноэкранное 9:16. Кадр 1079×1919 даёт 0,56227. На глаз разницы нет никакой: на телефоне эти два видео неотличимы, и ни один человек, которому вы покажете оба, не угадает, какое из них какое.

Но проверка на стороне рекламы это не «похоже на вертикальное», а сравнение чисел. У неё нет допуска, в который помещается ваш один пиксель. Поэтому ролик, который прекрасно опубликовался, прекрасно смотрится и прекрасно собирает просмотры, на кнопке продвижения получает отказ, и в отказе не сказано, какое соотношение у него нашли.

Публикация и продвижение проверяют разное. Публикация принимает широкий диапазон форм, продвижение требует точного 9:16. Отсюда и ощущение абсурда: видео уже в профиле, уже вертикальное, а продвигать его нельзя.
ОпубликуетсяПродвигается1080×1920дада1079×1919данет1080×1350данет1920×1080данет
Четыре файла, один ответ на публикацию и четыре разных на продвижение. Первая строка отличается от второй на один пиксель по каждой стороне, и только она проходит.

Откуда у вертикального видео берётся 1079×1919

Если видео собиралось в браузерном редакторе, скорее всего, оно записано с холста: страница рисует кадр на canvas, а запись снимает этот canvas как есть. И вот тут появляется пиксель, которого никто не заказывал.

Размер холста на экране это размер монтажной области, умноженный на масштаб просмотра. Перед записью масштаб выставляют в единицу, чтобы писать в полном разрешении: обычно это делается как «текущий масштаб, умноженный на обратный ему». В арифметике это единица, а в двоичной плавающей точке произведение числа на обратное ему не всегда ровно единица. Иногда это 0,9999999999999998. Холст получает ширину 1079,9999999999998, а canvas.width целочисленный: дробная часть отбрасывается, и в файл уходит 1079.

Мы прогнали эту арифметику по всем высотам окна от 300 до 2000 пикселей: на 257 из 1701 высот холст 1080×1920 превращался в 1079×1919. Не случайный сбой и не «иногда глючит»: зависит от того, какой высоты у вас окно браузера в момент экспорта. Отсюда и ощущение лотереи.

У нечётного числа есть и второе последствие. H.264 с цветовой субдискретизацией 4:2:0 требует чётных сторон, поэтому 1079 придётся куда-то деть: кодировщик либо откажется, либо молча подвинет край. Ни один из двух исходов вам не нужен, и оба случаются уже после того, как файл выглядел готовым.

Как проверить свой файл

Проверка занимает десять секунд и отвечает на вопрос, который в интерфейсе Instagram не задать: какое соотношение у файла на самом деле.

ffprobe, если он есть.ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 video.mp4 — вернёт две цифры и ничего лишнего.
Без ffprobe.В Windows: правая кнопка по файлу, «Свойства», вкладка «Подробно», строка «Ширина кадра». В macOS: «Свойства» в Finder. В VLC: Инструменты, «Сведения о кодеке».
Считать не в уме.Умножьте ширину на 16 и высоту на 9. Числа должны совпасть: 1080×16 = 17280 и 1920×9 = 17280. Для 1079×1919 получится 17264 и 17271, и это уже не 9:16.

Как починить соотношение сторон

Если файл не 9:16, его придётся пересобрать, и выбор здесь ровно один: что вы готовы потерять. Вписать значит сохранить всю картинку и добавить поля, кадр станет меньше. Заполнить значит занять весь кадр и срезать края, ничего не уменьшая.

Вписать, с полямиscale=1080:1920:force_original_aspect_ratio=decrease, затем pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black. Ничего не теряется, но вверху и внизу появляются полосы.
Заполнить, с обрезкойscale=1080:1920:force_original_aspect_ratio=increase, затем crop=1080:1920. Кадр полный, но края уходят. Для 16:9 исходника это очень много краёв.
Один проход, не десятьПотери, в которых винят перекодирование, берутся от многократности и от битрейта по умолчанию, а не от одного аккуратного прохода: -crf 18 -preset slow.
Звук не трогать-c:a copy. Пережимать звук ради смены формы кадра незачем, а каждое пережатие слышно.

Параметр force_original_aspect_ratio в фильтре scale и делает всю работу: decrease гарантирует, что картинка поместится целиком и останется место под поля, increase гарантирует, что обе стороны дотянутся до целевых, и обрезка не прочитает пустоту за краем кадра. Сами требования к публикации Reels описаны в документации Instagram Platform; правило про продвижение живёт не там, а в самом приложении, и видно его только в момент отказа.

Почему лишнее перекодирование само ломает 9:16

Обратная сторона: файл, который уже ровно 1080×1920, не нужно трогать вообще. Конвейеры, прогоняющие всё подряд «на всякий случай», часто отдают разрешение на своё усмотрение, если выходной размер не задан явно. Так корректное 9:16 превращается в почти-9:16 уже после того, как его сделали правильно, и причину потом ищут в редакторе.

Правило простое: нормализовать только то, что действительно не подходит. Если видео уже H.264 и уже точного размера, самое полезное, что может сделать сервис, это отдать файл как есть. Та же мысль, что и в нашей статье про лицо и голос в видео: каждая лишняя обработка что-то меняет, и не всегда то, что вы собирались менять.

Экспортредактор пишет 1079×1919
ЗагрузкаInstagram принимает файл
Reels в профилевыглядит нормально, собирает просмотры
Продвижение«только полноэкранное 9:16»

Последний шаг здесь первый, на котором правило вообще озвучено. Поэтому проверять размер стоит на первом, а не на четвёртом: это десять секунд против перезаливки ролика, который уже успел собрать охват. Про другие места, где Instagram отвечает отказом без объяснения, у нас есть отдельный разбор.

Короткий чеклист

9:16 это ровно 0,5625, а не «примерно вертикальное»
1080×1920 проходит, 1079×1919 нет
Стороны должны быть чётными: H.264 требует этого
Проверять файл до публикации, а не после отказа
Вписать значит поля, заполнить значит обрезку, третьего нет
Готовое и корректное видео не перекодировать

Как это сделано у нас

Эта статья выросла из нашего собственного бага: редактор отдавал 1079×1919 и клялся, что это 9:16. Теперь размер записи берётся только от монтажной области и не зависит ни от масштаба, ни от размера окна.

Экспорт ровно по холсту. 1080×1920 это 1080×1920, с чётными сторонами, при любом зуме.
Переобрамление в конвейере. Вписать или заполнить, с показом того, что именно потеряется.
Без лишних проходов. Готовый H.264 нужного размера уходит в Instagram как есть.
Попробовать бесплатно →
ПоделитьсяTelegramX

Читать дальше