Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Basically i am doing this:

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;

but this effectively does this command

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

the bit at the end - video.mp4-watermarked.mp4 is my issue. i want it to be video-watermarked.mp4.

how can i do this ?

share|improve this question
    
I am to tired to write the answer, but you want to look at the basename command to strip the first mp4 extension. –  Hennes Mar 10 '13 at 0:06

1 Answer 1

up vote 6 down vote accepted

If you're using bash try using ${i%%.mp4}.

For your example that would be:

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;

There are lots of other manipulations possible the term you might want to lookup in the manual pages is Parameter Expansion.

share|improve this answer
    
thanks looks like that will do it –  slycat Mar 10 '13 at 2:28

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.