1

У меня проблема с добавлением водяного знака в мое видео. Я конвертирую видео в 5 разных разрешениях, используя опцию -s.

что я пробовал:

waterMark="\"movie=/watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]\""

resolutions=$(echo -e "${resolutions} -s ${newX}x${myY} ${map} -vcodec libx264 ${options} 
-vf ${waterMark} ${NEW_FILENAME}_${myY}p.mp4")

ffmpeg -i $FILENAME "${resolutions}"

вот эхо команды: echo "ffmpeg -i $ FILENAME $ resolution"

ffmpeg -i test.mp4  
 -s 1728x720 -map 0:0 -map 0:1 -vcodec libx264 -acodec aac -strict experimental -movflags faststart -vf "movie=/watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]" test_720p.mp4 
 -s 1152x480 -map 0:0 -map 0:1 -vcodec libx264 -acodec aac -strict experimental -movflags faststart -vf "movie=/watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]" test_480p.mp4 
 -s 864x360 -map 0:0 -map 0:1 -vcodec libx264 -acodec aac -strict experimental -movflags faststart -vf "movie=/watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]" test_360p.mp4 
 -s 576x240 -map 0:0 -map 0:1 -vcodec libx264 -acodec aac -strict experimental -movflags faststart -vf "movie=/watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]" test_240p.mp4 
 -s 344x144 -map 0:0 -map 0:1 -vcodec libx264 -acodec aac -strict experimental -movflags faststart -vf "movie=/watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]" test_144p.mp4

Я не знаю, в чем ошибка, все, что я получаю, это часть кода красным цветом:

Metadata:
  handler_name    : VideoHandler
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 126 kb/s
Metadata:
  handler_name    : SoundHandler  

эта часть в красном *

-s 1728x720 -map 0:0 -map 0:1 -vcodec libx264 -acodec aac -strict экспериментальный -movflags faststart -vf "movie =/watermark.png [водяные знаки]; [in] [водяные знаки] overlay = main_w-overlay_w- 10:10 [out] "test_720p.mp4 -s 1152x480 -map 0:0 -map 0:1 -vcodec libx264 -acodec aac -строчный экспериментальный -movflags faststart -vf" movie =/watermark.png [watermark]; [in ] [водяные знаки] overlay = main_w-overlay_w-10:10 [out] "test_480p.mp4 -s 864x360 -map 0:0 -map 0:1 -vcodec libx264 -acodec aac-строгие экспериментальные -movflags faststart -vf" movie =/watermark.png [водяные знаки]; [in] [водяные знаки] overlay = main_w-overlay_w-10:10 [out] "test_360p.mp4 -s 576x240 -map 0:0 -map 0:1 -vcodec libx264 -acodec aac - строгий экспериментальный -movflags faststart -vf "movie =/watermark.png [водяные знаки]; [in] [водяные знаки] overlay = main_w-overlay_w-10:10 [out]" test_240p.mp4 -s 344x144 -map 0:0 -map 0:1 -vcodec libx264 -acodec aac -strict экспериментальный -movflags faststart -vf "movie =/watermark.png [водяные знаки]; [в

странная часть в том, что если я запускаю код, полученный из echo "ffmpeg -i $FILENAME $resolutions" из терминала, он работает! но это не работает с Bash

Я также попытался добавить водяной знак сразу после -i $ FILENAME

ffmpeg -i $FILENAME -vf "movie=/watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]" $resolutions"

но в этом случае только первое видео выходит с водяным знаком.

1 ответ1

0

Я решаю это, запустив команду ffmpeg с помощью eval. eval принимает строку в качестве аргумента и оценивает ее так, как если бы вы ввели эту строку в командной строке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .