Я создаю кучу скриптов, чтобы легко использовать ffmpeg.Размер переменной для фильтра ffmpeg
Все мои скрипты сейчас работают, но много значения жестко закодированы, что делает их хотят точный размер для видео (854x240, размер моих тестов видео)
Хороший пример лучше, чем длинное объяснение:
ffmpeg -i 0.mp4 -vf "
scale=854/2:-1 [low];
[email protected]:s=854x240:r=29.97:d=30.0 [bg];
movie=1.mp4, scale=854/2:-1 [high];
[bg][high] overlay=0:0 [bgh];
[bgh][low] overlay=854/2:-1" leftright.mp4
Он принимает 0.mp4 и 1.mp4 и помещает их рядом друг с другом в одно и то же видео. Но значение измерения жестко запрограммировано. Но это работает.
Я знаю, что я могу использовать iw и ih как «входную ширину» и «высоту ввода» для фильтра первой шкалы, но когда я пытаюсь поместить что-либо еще в качестве измерения для фона фона, это просто вызовет у меня ошибку:
Unable to parse option value "iw:ih" as image size
Unable to parse option value "iw:240" as image size
Unable to parse option value "860*2:240" as image size
, и я заканчиваю тем, чтобы снова положить 1720x240, что очень плохо.
Есть ли способ обойти это или поставить значение, зависящее от ввода?
Edit:
Начиная с видео 1.mp4 (854x240) и 2.mp4 (520x520) (пример значения), положить их бок о бок в out.mp4 (который в этом случае будет иметь размер макс (высота) x (2xmax (ширина)), поэтому в этом случае 854x1040), с черным фоном.
ax
<---->
.____.^
| ||
| 1 ||
| ||ay
| ||
|____|V
bx
<-------->
.________.^
| 2 ||by
|________|V
Будет ли в конечном итоге, как
ay>ax
bx>by
bx bx
<--------><-------->
xx.____.xxxxxxxxxxxx^
xx| |xxxxxxxxxxxx|
xx| 1 |xx.________.|
xx| |xx| 2 ||ay
xx| |xx|________||
xx|____|xxxxxxxxxxxxV
код [ 'color'] (http://ffmpeg.org/ffmpeg-filters.html#color_002c-haldclutsrc_002c-nullsrc_002c-rgbtestsrc_002c-smptebars_002c-smptehdbars_002c-testsrc) Фильтр видео источник не использует' 'iw' и IH '. Возможно, вы можете использовать видеофильтр ['pad'] (http://ffmpeg.org/ffmpeg-filters.html#pad). Если вы включили свой полный вывод консоли ffmpeg и изображение, представляющее желаемый результат, я могу дать вам точную команду. – LordNeckbeard
@LordNeckbeard Цель этого скрипта состоит в том, чтобы начать с двух mp4-видео известных (но переменных) измерений, поставить их рядом друг с другом (один слева и один справа, высота более высокого видео и ширина = 2x ширина более высокого видео), с черным фоном. – DrakaSAN
@LordNeckbeard См. Edit – DrakaSAN