3

В основном я делаю это:

for i in *.mp4; 
do ffmpeg -i "${i}" -vf "movie=logo.png [watermark]; [in][watermark] overlay=10:10 [out]" -strict -2 -qscale 0 "${i}-watermarked.mp4"; 
done;

но это эффективно делает эту команду

do ffmpeg -i "video.mp4" -vf "movie=logo.png [watermark];\ 
 [in][watermark] overlay=10:10 [out]" -strict -2 -qscale 0 "video.mp4-watermarked.mp4"; 

немного в конце - video.mp4-watermarked.mp4 - моя проблема. я хочу, чтобы это было видео с водяными знаками .mp4.

Как я могу это сделать ?

1 ответ1

6

Если вы используете bash, попробуйте использовать ${i%%.mp4} .

Для вашего примера это будет:

for i in *.mp4; 
do ffmpeg -i "${i}" -vf "movie=logo.png [watermark]; [in][watermark] overlay=10:10 [out]" -strict -2 -qscale 0 "${i%%.mp4}-watermarked.mp4"; 
done;

Существует множество других возможных манипуляций. Термин, который вы, возможно, захотите найти на страницах справочника, - это расширение параметров.

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