Как сместить видео по горизонтали в ffmpeg?

Я пытаюсь сделать несколько 360° видео, где самая левая сторона должна быть подключена к крайней правой стороне в интерактивном плеере.

Вместо того, чтобы устанавливать это в проигрывателе, как я могу сдвинуть контент на 50 пикселей вправо и заполнить новый пробел с левой стороны самым правым столбцом в 50 пикселей, который сдвинулся за кадр после сдвига?

Это похоже на функцию смещения в Photoshop, но я не мог сделать это правильно с ffmpeg.

1 ответ

Решение

нормальный мандельбротсмещение Мандельброта Примеры Мандельброта: нормаль и смещение вправо на 50 пикселей.

Вы можете использовать overlay видео фильтр:

ffmpeg -i input.mp4 -filter_complex \
"[0:v][0:v]overlay=50:0[bg]; \
 [bg][0:v]overlay=50-W,format=yuv420p[out]" \
-map "[out]" -map 0:a -codec:v libx264 -crf 23 -preset medium -c:a copy out.mp4
  • format=yuv420p будет гарантировать, что ваш вывод будет использовать схему подвыборки цветности, которая может воспроизводиться игроками, не основанными на FFmpeg.

  • Аудио будет скопировано в поток, а не перекодировано.

  • Убедитесь, что вы используете последнюю сборку ffmpeg, См. Страницу загрузки FFmpeg для ссылок на сборки для Linux, OS X и Windows.

  • См. Руководство по кодированию FFmpeg и x264 для получения дополнительной информации о получении хорошего качества вывода.

Другие вопросы по тегам