Створіть водяний знак в окремому треку за допомогою FFmpeg


1

У мене є файл PNG (альфа) та відео файл. Я хочу створити відео, в якому перший трек - це зображення, а другий - відео (PNG over video). Проблема полягає в тому, що PNG не зберігає прозорість.

Мені потрібно створити водяний знак (PNG) в окремому треку з ffmpeg над відеодоріжкою.

ffmpeg -i base.mov -i logo.png -map 0 -map 1 output.mov

Відповіді:


3

Синтаксис для додавання водяного знака дещо відрізняється. Для цього вам потрібні відеофільтри, які вже поставляються в комплекті з FFmpeg.

Я не впевнений, що ви можете додати прозорий водяний знак до окремої доріжки. Причина полягає в тому, що саме зображення (PNG "потік") потрібно перетворити на фактичну відеодоріжку (наприклад, з x264) - а оскільки кодери відео не підтримують прозорість на цьому етапі, ви не отримаєте прозоре зображення .


Далі буде додати logo.pngдо base.movв верхньому правому куті. Ви можете використовувати наступні параметри, щоб визначити позицію - у моєму прикладі я лише розмістив її за десять пікселів від межі:

  • main_w (основна ширина відео)
  • main_h (основна висота відео)
  • overlay_w (ширина накладеного відео)
  • overlay_h (накладене відео з накладанням)

Команда фільтра буде:

movie='logo.png' [logo]; [in][logo] overlay=main_w-overlay_w-10:10 [out]

Перетворення цього в повну команду FFmpeg:

ffmpeg -i base.mov -vf "movie='logo.png' [logo]; [in][logo] overlay=main_w-overlay_w-10:10 [out]" -c:v libx264 -crf 20 out.mov

В -c:v libx264 -crf 20параметрах визначають вихід відео кодека і його якість (де CRF, ймовірно , буде від 19 до 24 років , в залежності від якості ви хочете, нижче , тим краще).

Тут досить хороша публікація в блозі: Як нанести водний знак на відео за допомогою FFmpeg . Це переходить у деталізацію позиціонування.


Велике спасибі. Мені потрібен водяний знак знаходиться на доріжці (потоці) окремо, щоб увімкнути або вимкнути його за допомогою програми quicktime pro.
tostaky

1
Ви можете спробувати створити комбіноване відео знову, додавши накладення. ffmpeg -i base.mov -i with-logo.mov -map 0 -map 1 -c:v copy -c:a copy output.mov, але це, звичайно, збільшить розмір відео. Я не знаю жодного іншого рішення.
slhck

Мені потрібно не подвоїти розмір відео ... дякую !!
tostaky
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.