|
|
@ -3214,34 +3214,57 @@ to pass the two inputs through a @var{setpts=PTS-STARTPTS} filter to |
|
|
|
have them begin in the same zero timestamp, as it does the example for |
|
|
|
have them begin in the same zero timestamp, as it does the example for |
|
|
|
the @var{movie} filter. |
|
|
|
the @var{movie} filter. |
|
|
|
|
|
|
|
|
|
|
|
Follow some examples: |
|
|
|
You can chain together more overlays but the efficiency of such |
|
|
|
|
|
|
|
approach is yet to be tested. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@subsection Examples |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@itemize |
|
|
|
|
|
|
|
@item |
|
|
|
|
|
|
|
Draw the overlay at 10 pixels from the bottom right corner of the main |
|
|
|
|
|
|
|
video: |
|
|
|
@example |
|
|
|
@example |
|
|
|
# draw the overlay at 10 pixels from the bottom right |
|
|
|
|
|
|
|
# corner of the main video. |
|
|
|
|
|
|
|
overlay=main_w-overlay_w-10:main_h-overlay_h-10 |
|
|
|
overlay=main_w-overlay_w-10:main_h-overlay_h-10 |
|
|
|
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Using named options the example above becomes: |
|
|
|
|
|
|
|
@example |
|
|
|
|
|
|
|
overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10 |
|
|
|
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
|
|
# insert a transparent PNG logo in the bottom left corner of the input |
|
|
|
@item |
|
|
|
|
|
|
|
Insert a transparent PNG logo in the bottom left corner of the input, |
|
|
|
|
|
|
|
using the @command{ffmpeg} tool with the @code{-filter_complex} option: |
|
|
|
|
|
|
|
@example |
|
|
|
ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output |
|
|
|
ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output |
|
|
|
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
|
|
# insert 2 different transparent PNG logos (second logo on bottom |
|
|
|
@item |
|
|
|
# right corner): |
|
|
|
Insert 2 different transparent PNG logos (second logo on bottom |
|
|
|
ffmpeg -i input -i logo1 -i logo2 -filter_complex |
|
|
|
right corner) using the @command{ffmpeg} tool: |
|
|
|
'overlay=10:H-h-10,overlay=W-w-10:H-h-10' output |
|
|
|
@example |
|
|
|
|
|
|
|
ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=10:H-h-10,overlay=W-w-10:H-h-10' output |
|
|
|
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
|
|
# add a transparent color layer on top of the main video, |
|
|
|
@item |
|
|
|
# WxH specifies the size of the main input to the overlay filter |
|
|
|
Add a transparent color layer on top of the main video, WxH specifies |
|
|
|
|
|
|
|
the size of the main input to the overlay filter: |
|
|
|
|
|
|
|
@example |
|
|
|
color=red@@.3:WxH [over]; [in][over] overlay [out] |
|
|
|
color=red@@.3:WxH [over]; [in][over] overlay [out] |
|
|
|
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
|
|
# play an original video and a filtered version (here with the deshake filter) |
|
|
|
@item |
|
|
|
# side by side |
|
|
|
Play an original video and a filtered version (here with the deshake |
|
|
|
|
|
|
|
filter) side by side using the @command{ffplay} tool: |
|
|
|
|
|
|
|
@example |
|
|
|
ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w' |
|
|
|
ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w' |
|
|
|
|
|
|
|
@end example |
|
|
|
|
|
|
|
|
|
|
|
# the previous example is the same as: |
|
|
|
The above command is the same as: |
|
|
|
|
|
|
|
@example |
|
|
|
ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w' |
|
|
|
ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w' |
|
|
|
@end example |
|
|
|
@end example |
|
|
|
|
|
|
|
@end itemize |
|
|
|
You can chain together more overlays but the efficiency of such |
|
|
|
|
|
|
|
approach is yet to be tested. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@section pad |
|
|
|
@section pad |
|
|
|
|
|
|
|
|
|
|
|