ffmpeg watermark first 30 second

13,887

Solution 1

You can convert the logo into a 30 second video with png codec and alpha channel, and apply the video as overlay.

The duration of the logo video should be specified through the number of frames at the frame rate of the main video (in your case, v.3pg). For example, for 30 fps main video run:

ffmpeg.exe -loop 1 -i w.png -vframes 901 -vf "fade=out:899:1:alpha=1" 
    -vcodec png -pix_fmt rgba w.mov

The logo needs to be faded out; otherwise it will not disappear. Then use the logo video as overlay on another video:

ffmpeg -i v.3gp -acodec copy -vf "movie=w.mov [logo]; [in][logo]
    overlay=10:main_h-overlay_h-10 [out]" nv.3gp

Alternatively, rather then ending abruptly, the logo can be faded out gradually, e.g. within 30 frames using -vf "fade=out:870:30:alpha=1".

Solution 2

overlay filter supports timeline editing; you can simply read from a png file and then overlay=enable='lte(t,30)':...

Solution 3

Realize it's late, but as I was looking at a similar problem I managed to solve this one. It fades in with 0.5 sec from start, then fades out at 30 sec

ffmpeg \
-i v.3gp \
-loop 1 -i w.png \
-acodec copy \
-filter_complex \
"[1:v] fade=in:st=0:d=0.5,fade=out:st=30:d=0.5 [logo]; [0:v][logo] overlay=10:main_h-overlay_h-10" \
nv.3gp
Share:
13,887
ncs
Author by

ncs

Updated on June 12, 2022

Comments

  • ncs
    ncs about 2 years
    ffmpeg -i v.3gp -acodec copy -vf "movie=w.png [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]" nv.3gp
    

    It work's fine, but i want watermark only first 30 seconds. Any ideas?

  • ncs
    ncs over 12 years
    Invalid value '1' for option 'loop'
  • ncs
    ncs over 12 years
    And it doesn't disappear ffmpeg -i w.png -vframes 901 -vf "fade=out:870:30:alpha=1" -vcodec png -pix_fmt rgba logo.mov ffmpeg -i v.3gp -acodec copy -vf "movie=logo.mov [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]" nv.3gp
  • Dmitry Shkuropatsky
    Dmitry Shkuropatsky over 12 years
    Strange. Are you using an older ffmpeg? Try -loop-input then, or get the latest
  • ncs
    ncs over 12 years
    ffmpeg -loop_input -f image2 -i w.png -vframes 901 -vf "fade=out:870:30:alpha=1" -vcodec png logo.mov // ffmpeg -i v.3gp -acodec copy -vf "movie=logo.mov [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]" nv.3gp // it's work, but thereis no alpha, i saw black square after fadeout. If i make logo.mov without -vf everything is ok, but watermark appears whole duration.
  • Dmitry Shkuropatsky
    Dmitry Shkuropatsky over 12 years
    You did not pass -pix_fmt rgba option. Also, try the latest ffmpeg.
  • ncs
    ncs over 12 years
    ffmpeg version 0.7.11, it's latest in freebsd ports, -pix_fmt rgba does not take any affect :(
  • Rakesh Sankar
    Rakesh Sankar about 12 years
    @Dmitry-Shkuropatsky could you please help me with this??? Basically when I try to merge a transparent video I get a black overlay instead of background effect.
  • XtraBytesLab
    XtraBytesLab over 8 years
    how do you avoid endless encoding loop ( caused by -loop 1 )? When on the other side I use eof_action=pass[out1] in the complex filter and map it to the output, the output has no working audio. Any ideas?
  • Tag
    Tag almost 8 years
    @fiveDust Try the -shortest argument (see advanced options documentation).
  • Joshua Pinter
    Joshua Pinter over 6 years
    @kev What a lukewarm comment. I love it.