11

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

То есть вам нужен фильм 4:3 с черными полосами сверху и снизу, окружающими прямоугольник движущегося изображения, который имеет истинные размеры 16:9.

Можете ли вы рассказать нам, как это сделать в Windows или Linux, используя бесплатные инструменты командной строки или GUI.

6 ответов6

11

В более новых версиях ffmpeg устарели опции "padtop" и "padbottom". Чтобы сделать это с новой версией, используйте ту же самую основную логику выше. В моем случае мое оригинальное видео было 720x404, но я хотел закодировать 720x480 - дополняя верх и низ. Итак, по-выше:

(480-404) / 2 = 38

то есть доп 38 пикселей вверх и вниз. Команда "pad" определяет размер видео, которое вы кодируете, и то, как далеко и вниз вы хотите переместить оригинал. Так:

-vf pad=720:480:0:38

обратите внимание, что выходное разрешение должно быть записано как 720:480, а не 720x480

7

Это можно сделать в ffmpeg. Прежде чем начать, прочтите этот замечательный ресурс по математике: http://www.doom9.org/index.html?/aspectratios.htm

Сначала вычислите верхнее и нижнее значения заполнения.

long=width of original,
skinny=height of orginal
totalPadding = .75*long - skinny
top padding = bottom padding = totalPadding / 2

ПРИМЕЧАНИЕ: если верхний и нижний отступы не являются ДАЖЕ числами, задайте для них силу, чтобы они суммировались с totalPadding (например, не 47 и 53, а 48 и 52 для получения 100)

Во-вторых, добавьте панели почтовых ящиков и убедитесь, что выходной файл будет распознаваться как 4x3. Предположим, ваш отступ составляет 58 пикселей для верхней и нижней частей.

ffmpeg -i Infile.avi -padtop 58 -padbottom 58 -padcolor 000000 -aspect 4:3 Outfile_letterbox.mpg
2

Загрузите и установите Avisynth. Откройте блокнот, вставьте следующее:

AviSource("c:\movies\somemovie.avi")
BicubicResize(720,266,0,0.5)
AddBorders(0, 106, 0, 108)

Сохраните его как mymovie.avs и вставьте в кодировщик.

Возможно, вам придется изменить размеры и границы, но в целом вы можете увидеть, что здесь происходит. Кроме того, если ваше видео не загружается с AviSource, замените его на DirectShowSource.

1

По "идеалу" я предполагаю, что ваше устройство воспроизведения растягивает видео?

Идеальная ситуация - не добавлять черные полосы к видео, а отображать видео с черными полосами - перекодирование видео для добавления полос не только нарушает правило "кодировать один раз", но ТАКЖЕ снижает общее качество на бит добавив дополнительную, бесполезную информацию.

Можете ли вы объяснить, какую проблему вы пытаетесь решить?

0

Бесплатная программа с открытым исходным кодом под названием DeVeDe для Linux (и Windows-порта тоже) позаботится об этом автоматически и хорошо http://www.rastersoft.com/programas/devede.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .