lihp1603 发表于 2017-6-19 18:53:42

如何实现视频过渡滑入视频特效?

在之前的帖子中,大师兄实现了两个视频跑马灯的效果,根据那个视频效果,如果我想把两个视频分段拼接为一个视频文件,既concat的效果,同时在播放完第一个视频文件以后,进入播放第二个视频文件的时候,如果实现第二个视频镜头滑入的转场特效效果?
例如播放完第一段视频以后,第二段视频播放的时候,是从上滑入的?类似视频飘入的效果。

如何实现?

lihp1603 发表于 2017-6-20 12:30:40

孙悟空 发表于 2017-6-19 20:25
ffmpeg -i ~/test/objectC/facebook.mp4 -i ~/test/objectC/facebook.mp4 - ...

大师兄,就是这样的,跑马灯使用overlay,我意思是把第二个视频下落以后,继续播放第二段视频的内容,既合成第一段和第二段以后,在他们的中间插入一个切换的过场特效。

孙悟空 发表于 2017-6-19 20:15:17

这个也可以用类似跑马灯的效果走起来
创建一个overlay即可

孙悟空 发表于 2017-6-19 20:25:12

ffmpeg -i ~/test/objectC/facebook.mp4 -i ~/test/objectC/facebook.mp4 -filter_complex " overlay=y='if(gte(t,2), -h+(t-2)*800, NAN):x=20"/root/a.mp4

上下滑动

lihp1603 发表于 2017-6-19 22:42:36

孙悟空 发表于 2017-6-19 20:25
ffmpeg -i ~/test/objectC/facebook.mp4 -i ~/test/objectC/facebook.mp4 - ...

恩,感谢大师兄的快速但复,这个就是和你之前那个跑马灯的效果一样的,但我的意思可能表达的不是特别清楚,跑马灯的效果我已经参考你之前的贴子,已经实现成功。
这次我是想实现两个视频合成,把两段视频文件合成一段先后播放用的视频文件(t=t1+t2),因为两个视频文件内容不同,所以想在播放完t1的视频最后几帧的时候,t2的开始一帧视频或者前几帧视频滑入窗口形成视频切换的场景效果,然后接着播放t2的后续视频内容。:lol,如果没明白的话,我争取再找个demo贴上来。

lihp1603 发表于 2017-6-20 11:51:05

做一个镜头切换的特效,大师兄

worldffmpeg 发表于 2017-9-22 11:59:31

lihp1603 发表于 2017-6-20 12:30
大师兄,就是这样的,跑马灯使用overlay,我意思是把第二个视频下落以后,继续播放第二段视频的内容,既 ...

大师兄,这个gif有好的思路吗??

孙悟空 发表于 2017-9-22 14:43:16

worldffmpeg 发表于 2017-9-22 11:59
大师兄,这个gif有好的思路吗??

ffmpeg -i ~/Movies/Test/input_red_blue.mp4 -i ~/Movies/objectC/facebook.mp4 -vcodec libx264 -filter_complex "scale=1920x1080; overlay=x='if(gte(t,1), min(-w+(t-2)*2000, 0), NAN)':y=0" -map '' -vcodec h264_videotoolbox -s 320x240 -map 1:1 -allow_sw 1 -y ~/output.mp4

worldffmpeg 发表于 2017-9-23 18:27:08

本帖最后由 worldffmpeg 于 2017-9-23 18:34 编辑

孙悟空 发表于 2017-9-22 14:43
ffmpeg -i ~/Movies/Test/input_red_blue.mp4 -i ~/Movies/objectC/facebook.mp4 ...
大师兄,跑马灯的方式 挺好的,能实现上面的特效。A播放, B慢慢切入
但是如果是生成gif图的话。
循环切换却不好处理。比如:A播放3秒, B慢慢切入,也播放3秒后,A切入。。。

我的做法:
(1)./ffmpeg -i 1.flv -i 2.flv -filter_complex "overlay=x='if(gte(t,1), max(0, w - (t-1)*480), NAN)':y=0" -y 1_2.flv
(2)./ffmpeg -i 2.flv -i 3.flv -filter_complex "overlay=x='if(gte(t,1), max(0, w - (t-1)*480), NAN)':y=0" -y 2_3.flv
   //这里实现循环
(3)./ffmpeg -i 3.flv -i 1.flv -filter_complex "overlay=x='if(gte(t,1), max(0, w - (t-1)*480), NAN)':y=0" -y 3_1.flv
//mylist.txt 里面 有 1_2.flv 2_3.flv 3_1.flv
(4)./ffmpeg -f concat -i mylist.txt -c copy output.flv
(5)   ./ffmpeg -i output.flv -f gif -y output.gif
但是这种方法 在两个视频交替时候,1_2.flv 切进来的时间 和 2_3.flv时间对不是,中间会跳。

worldffmpeg 发表于 2017-9-23 18:41:34

worldffmpeg 发表于 2017-9-23 18:27
大师兄,跑马灯的方式 挺好的,能实现上面的特效。A播放, B慢慢切入
但是如果是生成gif图的话。
循环切换 ...

哎,其实就是想 采用 ./ffmpeg -f concat -i mylist.txt -c copy output.flv 连接几个视频的时候,视频b能慢慢切入,而不是简单连接在一起
页: [1] 2 3
查看完整版本: 如何实现视频过渡滑入视频特效?