Как поставить рамку вокруг видео, чтобы предотвратить отсечение контента

7015
AmadeusDrZaius

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

Есть ли какой-нибудь способ (с iMovie / ffmpeg / Gimp и т. Д.), Чтобы я мог уменьшить размер видео и окружить его толстой черной рамкой, чтобы эта рамка обрезалась при просмотре на моем телевизоре, а не в контенте?

Другими словами, я хочу перейти от этого:

enter image description here

к этому:

enter image description here

Но я хочу сделать это с видео (в формате mp4).

1
Есть ли возможность просто отрегулировать размер любым желаемым способом во время воспроизведения? Таким образом, видео не нужно перекодировать. В какой ОС он воспроизводится? или это dvd bluray или что-то? Psycogeek 9 лет назад 0
Доступ к файлу осуществляется по протоколу DLNA. Я использую сервер [Plex] (https://plex.tv/) для передачи файлов на мой медиаплеер Sony (телевизионная приставка) по Wi-Fi. К сожалению, мой телевизор не имеет настройки для масштабирования или перемещения видео, и единственная настройка, которую имеет мой проигрыватель SONY, - это установить соотношение сторон 4: 3. AmadeusDrZaius 9 лет назад 0
Можете ли вы дать больше информации о телевизоре? Тип и модель действительно помогут. Также расскажите о вашей видеокарте, пожалуйста. krowe 9 лет назад 0
К сожалению, не знаю FFMpeg, но в virtualDub и других видео программах это часто встречается в опциях изменения размера, так как вы изменяете размер видео и добавляете его на заданный размер «холст», параметры кадрирования. Psycogeek 9 лет назад 0

2 ответа на вопрос

4
Rajib

Способ 1: фиксированная шкала размеров с отступами:

ffmpeg -i inputfile.mov -filter_complex 'scale=578:462, pad=720:576:71:57' outputfile.mp4 

Это предполагает ввод и вывод размера SD PAL. Это просто использует фиксированный размер колодки.

Метод 2: Процентное масштабирование с наложением поверх черного, созданного фильтром:

ffmpeg -y -i inputfile.mov -f lavfi -i color=c=black:s=1920x1080 \ -filter_complex "[0:v]scale=w=0.80*iw:h=0.80*ih[scaled]; \ [1:v][scaled]overlay=x=0.10*main_w:y=0.10*main_h:eof_action=endall[out]; \ [0:a]anull[aud]" \ -map "[out]" -map "[aud]" \ -strict -2 \ outputfile.mp4 

Предполагается, что входной и выходной размеры будут в формате Full HD (1920x1080). Масштабирование составляет 80 процентов. Таким образом, позиция наложения составляет 20 процентов внутри, но, поскольку эти 20 разделены на обе стороны поровну, наложение использует 10 процентов основной ширины и добавляет это к позиции x.

eof_actionТребуется, так что, когда заканчивается видеофайл обработка может остановиться. В противном случае сгенерированный черный (фон) -f lavfiбудет только продолжать.

Мой файл - mp4, и я получил это сообщение при запуске вашего метода 2: `Кодер 'aac' экспериментальный, но экспериментальные кодеки не включены, добавьте '-strict -2', если вы хотите его использовать. Я попытался добавить `-strict -2` до конца, но это не изменило сообщение об ошибке. Есть идеи? AmadeusDrZaius 9 лет назад 0
@AmadeusDrZaius Я добавил параметр -strict -2. Rajib 9 лет назад 0
Это сработало! Я пытался добавить `-strict -2` везде, но это не сработало. Огромное спасибо. Какие-нибудь хорошие ресурсы для этого, кроме man-страницы или сайта ffmpeg.org? AmadeusDrZaius 9 лет назад 0
Я только взглянул на ваши другие ответы, и у вас есть много знаний о ffmpeg. Вы участник / разработчик ffmpeg? В любом случае, еще раз спасибо. AmadeusDrZaius 9 лет назад 0
@AmadeusDrZaius Не далеко от этого. Просто счастливый пользователь. Посмотрите [здесь] (https://ffmpeg.org/ffmpeg-filters.html) фильтры. Stackexchange Superuser и StackOverflow - отличные ресурсы. Rajib 9 лет назад 1
@AmadeusDrZaius https://trac.ffmpeg.org/wiki, http://blog.superuser.com/2012/02/24/ffmpeg-the-ultimate-video-and-audio-manipulation-tool/ (бесстыдный плагин) иначе просто задайте вопрос здесь. У нас здесь есть несколько людей, которые знают, как обходиться с ffmpeg. slhck 9 лет назад 2
@AmadeusDrZaius Если входное аудио совместимо с форматом выходного контейнера, рассмотрите [потоковое копирование] (http://ffmpeg.org/ffmpeg.html#Stream-copy) его с `-c: копия` вместо повторного кодирование. LordNeckbeard 9 лет назад 2
0
AmadeusDrZaius

Я нашел видео, объясняющее, как поставить рамку поверх видео в iMovie. Вот как вы можете это сделать:

  1. Используйте Gimp (или другой инструмент), чтобы создать изображение с черными рамками вокруг него. Убедитесь, что это изображение больше, чем размер видео, которое вы хотите обвести рамкой.

  2. Откройте iMovie и импортируйте как клип, так и изображение границы.

  3. Откройте iMovie> «Настройки» и установите флажок «Показать дополнительные инструменты».

  4. Перетащите изображение границы на панель проекта и используйте шестерню, чтобы увеличить время клипа до длины видео. Ограничение клипа изображения составляет 10 минут, поэтому скопируйте и вставьте фоновый клип изображения столько раз, сколько необходимо, чтобы соответствовать продолжительности фильма.

  5. Перетащите фрагмент ролика из импорта на панель проекта и выровняйте его по началу фонового изображения. Вы должны увидеть всплывающее меню с опциями того, как комбинировать изображения и видеоклипы. Выберите «Картинка в картинке».

  6. Регулируйте размер фильма в верхнем правом окне, пока не отобразится только желаемое количество границ.

  7. Экспортируйте фильм по желанию.

Просто примечание: это, вероятно, займет много времени (у меня заняло около часа экспорта, а мой фильм длился 30 минут), так что, возможно, есть более эффективный способ сделать это.

Похожие вопросы