как добавить водяной знак в несколько областей с помощью ffmpeg?

я использую инфраструктуру laravel, а также использую php-библиотеку ffmpeg. На самом деле я сделал почти 70% работы. Но проблема, с которой я столкнулся, заключается в том, чтобы показать водяной знак в нескольких областях видео. Я сделал водяной знак в верхнем левом углу, который очень хорошо работает на этом видео. Но я хочу добавить водяной знак в верхний левый, нижний левый, нижний правый. Я использовал этот код для верхнего левого водяного знака (для видео): -

$inputVideo = public_path('input/airplane_flight_airport_panorama_1080.mp4');
$outputVideo = public_path('uploads/output.mp4');
$watermark = public_path('input/watermark.jpg');

$wmarkvideo = "ffmpeg -i ".$inputVideo." -i ".$watermark." -filter_complex ". '"overlay=x=(main_w-overlay_w):y=(main_h-overlay_h)/(main_h-overlay_h)"'." ".$outputVideo;
exec($wmarkvideo );

Пожалуйста, помогите мне, как я могу добавить водяной знак в верхний левый, нижний левый, нижний правый в этих областях. Заранее спасибо :)


person kunal    schedule 06.03.2018    source источник


Ответы (1)


Это команда ffmpeg, которую вы могли бы использовать для нескольких водяных знаков.

ffmpeg -i inputVideo -i watermark-tr -i watermark-tl -i watermark-br -i watermark-bl 
       -filter_complex "[0][1]overlay=x=W-w:y=0[tr];
                        [tr][2]overlay=x=0:y=0[tl];
                        [tl][3]overlay=x=W-w:y=H-h[br];
                        [br][4]overlay=x=0:y=H-h"  outputfile

tr = вверху справа; tl = верхний левый; бр = внизу справа; бл = нижний левый


Так же и с центром

ffmpeg -i inputVideo -i watermark-tr -i watermark-tl -i watermark-br -i watermark-bl -i watermark-c
       -filter_complex "[0][1]overlay=x=W-w:y=0[tr];
                        [tr][2]overlay=x=0:y=0[tl];
                        [tl][3]overlay=x=W-w:y=H-h[br];
                        [br][4]overlay=x=0:y=H-h[bl];
                        [bl][5]overlay=x=(W-w)/2:y=(H-h)/2"  outputfile
person Gyan    schedule 06.03.2018
comment
$mark = ffmpeg -i .$inputVideo. -i .$водяной знак.-tr -i .$водяной знак.-tl -i .$водяной знак.-br -i .$водяной знак.-bl -filter_complex . '[0][1]overlay=x=W-w:y=0[tr]; [tr][2]overlay=x=0:y=0[tl]; [tl][3]overlay=x=W-w:y=H-h[br]; [br][4]overlay=x=0:y=H-h'. .$ВыводВидео; исполнить ($ знак); - person kunal; 07.03.2018
comment
watermark-tr представляет имя файла для верхнего правого водяного знака. Он должен быть полностью заменен переменной. То же самое для других. - person Gyan; 07.03.2018
comment
как я могу добавить водяной знак в центр, вы также можете мне помочь? - person kunal; 07.03.2018
comment
Поскольку вы являетесь экспертом в ffmpeg. Можете ли вы предложить мне одну вещь, я загружаю большие видео на свой веб-сайт, который я хочу, когда пользователь выбирает большой видеофайл, я хочу сжать этот файл до меньшего мегабайта. я не нашел ни одной ссылки ..... я смог сжать те файлы, которые существуют в каталоге моего веб-сайта. я хочу сжать те видео, которые пользователь загружает через форму. Пожалуйста помогите - person kunal; 07.03.2018
comment
если вы знаете ответ, перейдите по этой ссылке: - заголовок stackoverflow.com/questions/49144923/ - person kunal; 07.03.2018