2vi*_*on2 4 ffmpeg video-editing
我使用以下命令在视频上从左到右转换覆盖图像。
ffmpeg -i Test.mp4 -i transparent.png -filter_complex "overlay=x='if(gte(t,0), -w+(t)*100, 3)':y=450" out.mp4
叠加图像不断从左向右移动。我需要它在某个点停止,比如从左到右的过渡。怎么做?
呵呵,有趣的任务。所以我认为解决方案是
ffmpeg -i 1.ts -i 2.ts -filter_complex "[0:v][1:v]overlay=x='if(lte(-w+(t)*100,w/2),-w+(t)*100,w/2)':y=0[out]" -map '[out]' -y out.mp4
Run Code Online (Sandbox Code Playgroud)
此过滤器图从左到右移动第二张图片,直到它到达屏幕的一半(w/2)。所以你需要修改的只是这个表达式中的 w/2。对于某些静态停止点(100 像素)也是如此:
ffmpeg -i 1.ts -i 2.ts -filter_complex "[0:v][1:v]overlay=x='if(lte(-w+(t)*100,100),-w+(t)*100,100)':y=0[out]" -map '[out]' -y out.mp4
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
通常,对于幻灯片效果,您必须:
color源。movieoverlay这是一个图像保存为image.png(大小:1920?1080,剪辑持续时间:15 秒)的示例:
ffmpeg -f lavfi -i "\
color=black:d=15:s=1920x1080[background]; \
movie=image.png[overlay]; \
[background][overlay]overlay='W-n:(H-h)/2' \
" output.mp4
Run Code Online (Sandbox Code Playgroud)
图像会不停地从右向左滑动:
这是图像停在中心的示例:
ffmpeg -f lavfi -i "\
color=black:d=15:s=1920x1080[background]; \
movie=image.png[overlay]; \
[background][overlay]overlay='min(W-n\,0):(H-h)/2' \
" output.mp4
Run Code Online (Sandbox Code Playgroud)
任何给定时间的叠加位置被指定为overlay过滤器的一个选项。该位置必须作为图像左上角的坐标给出。
上面第一个示例中的 X/Y 坐标对是W-nand (H-h)/2,其中:
W 是背景宽度(1920)n 是当前帧数H 是背景高度(1080)h 是叠加高度(此处为 1080,但可能不同)因此,在第 0 帧,图像最初将放置在距左侧1920 - 0 = 1920像素处,因此随着n 的增加,图像将从右侧滑入。
一些技巧:
x表达式的计算结果必须为0,因此您可以使用min(W-n, 0). 在这种情况下,即使帧数大于宽度,图像也不会移动到负 x 位置,而是停留在 0。| 归档时间: |
|
| 查看次数: |
11407 次 |
| 最近记录: |