По работе пришлось разобраться с накладыванием копирайт на видео. Как оказалось все сравнительно просто, но есть нюансы.
Используем библиотеку ffmpeg и плагин vhook. Варианта три:
1 2 3 4 5 6 7 |
ffmpeg -i input.avi -acodec copy -vhook '/path/to_vhook/watermark.so -f /path/to_watermark/watermark.png' output.avi #text watermark with margin 10px from left upper corner ffmpeg -i inputfile.avi -vhook '/path/to_vhook/drawtext.so -f /path/to_font/tahomabd.ttf -x 10 -y 10 -t WatermarkText' outputfile.avi #img watermark with margin 5px from left upper corner ffmpeg -i inputfile.avi -vhook '/path/to_vhook/imlib2.so -i /path/to_img/watermark.png -x 5 -y 5' outputfile.avi |
Первый вариант неудобен тем, что требуется делать картинку в размер видео иначе ffmpeg сам ее растянет. Второй вариант текстовый. Третий вариант самый удобный, картинка позиционируется с отступом от верхнего левого угла.
А где же грабли спросит недоумевающий читатель? А без граблей не обошлось. Обычно перед выкладыванием на сайте с видео нужно сделать целый ряд операций, сконвертировать в нужный формат, привести к стандартному размеру, уменьшить bitrate у звука, … и т.д. и т.п. Все эти операции включая и накладывание ватермарки разумно воткнуть в одну команду, чтобы сэкономить время. Операции конвертирования видео весьма затратны по времени. Т.е. делаем примерно так
1 |
ffmpeg -i inputfile.avi -s 176x144 -r 15 -vb 120k -acodec libamr_nb -ar 8000 -ac 1 -ab 12.2k -vhook '/path/to_vhook/imlib2.so -i /path/to_img/watermark.png -x 5 -y 5' outputfile.3gp |
И тут уже проблема. Вначале накладывается watermark, потом идет resize и прочие операции. При этом качество "водяного знака" страдает и от него остается только пятно. Поэтому хотя бы ресайз и конвертирование придется вынести в отдельную команду. Вариант ниже c конвертированием avi в 3gp работает без фокусов.
1 2 3 4 |
#video resize and convert avi to 3gp ffmpeg -i inputfile.avi -s 176x144 -r 15 -vb 120k -acodec libamr_nb -ar 8000 -ac 1 -ab 12.2k tempfile.3gp #watermark ffmpeg -i tempfile.3gp -vhook '/path/to_vhook/imlib2.so -i /path/to_img/watermark.png -x 5 -y 5' outputfile.3gp |
Свежие комментарии