Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как сделать водяной знак с прозрачностью в видео

Автор вопроса: PaulSОтветов: 4

Я пытаюсь сделать водяной знак в видео. В тот момент, когда файл изображения (.png) для водяного знака содержит прозрачность, изображение больше не отображается в видео. Если я конвертирую это изображение в .jpg и обратно в .png, оно работает хорошо. Если я создаю новый png без прозрачности, он тоже работает. Но когда я добавляю, например. непрозрачность слоя для этого изображения, оно больше не отображается.

Я использую avconv 0.8.6-4:0.8.6-0ubuntu0.12.04.1 со следующей командой

avconv -y -i video.mp4 -f 'movie=watermark.png [watermark]; [in][watermark] overlay=10:10 [out]' -c:v libx264 -t 255 -strict experimental out.mp4

Если я использую .gif для водяного знака, я получаю изображение, но все оно непрозрачно.

Любая подсказка?

opacitytransparencywatermarkavconv

Ответы

Ответ 1 · рейтинг 1 · PaulS

Ответ на мой вопрос прост, хотя мне понадобился день, чтобы его найти.

"Обычный" ffmpeg, поставляемый с репозиторием моего дистрибутива Ubuntu, жаловался на параметр "c: v libx264". avconv знает этот параметр, но глючит; он просто не отображает прозрачные изображения.

Решение было таким же простым, как установка самой последней версии ffmpeg (я выбрал статическую версию). Теперь это работает как шарм. :)

Ответ 2 · PJunior

Вот как мне удалось добавить водяной знак в файл mp4 (вверху слева) с помощью avconv версии 0.8.6-6:0.8.6-1ubuntu2.

avconv -y -i source.mp4 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:10 [out]" -c:v libx264 target.mp4

Надеюсь, это поможет кому-то.

Ответ 3 · fxsam

Если вы используете ffmpeg-1.2, а не avconv, то команда довольно проста:

ffmpeg -i source.mp4 -i logo.png -filter_complex 'overlay' -strict -2 outputmovie.mp4

У меня это работало нормально, с прозрачностью, запеченной в файле logo.png. Просто убедитесь, что там есть альфа. Это также предполагает, что файл logo.png имеет тот же размер, что и справочный материал.

Ответ 4 · user3361920

Я использовал прозрачное изображение png, и это сработало для меня. Теперь я могу видеть сцену за водяным знаком в видео, поскольку изображение водяного знака png прозрачно. Так что просто отредактируйте изображение с помощью фотошопа и добавьте 50% непрозрачности (или любое другое значение, которое вы хотите) на изображении.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы