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

Я пытаюсь сделать водяной знак в видео. В тот момент, когда файл изображения (.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 для водяного знака, я получаю изображение, но все оно непрозрачно.

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


person PaulS    schedule 01.07.2013    source источник


Ответы (4)


arrow_upward
1
arrow_downward

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

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

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

person PaulS    schedule 04.07.2013
comment
Да, ubuntu больше не поставляется с ffmpeg, а с avconv, что не совсем то же самое. - person tomsv; 13.01.2014

arrow_upward
0
arrow_downward

Вот как мне удалось добавить водяной знак в файл 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

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

person PJunior    schedule 21.09.2013
comment
Если вы получаете ошибку Неизвестный кодировщик ‘libx264’, вот как ее решить. apt-get установить libavcodec-extra-53 - person PJunior; 22.09.2013

arrow_upward
0
arrow_downward

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

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

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

person fxsam    schedule 21.02.2014

arrow_upward
0
arrow_downward

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

person user3361920    schedule 25.06.2015