请选择 进入手机版 | 继续访问电脑版

ChinaFFmpeg

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 36249|回复: 21

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

[复制链接]
发表于 2017-6-19 18:53:42 | 显示全部楼层 |阅读模式
在之前的帖子中,大师兄实现了两个视频跑马灯的效果,根据那个视频效果,如果我想把两个视频分段拼接为一个视频文件,既concat的效果,同时在播放完第一个视频文件以后,进入播放第二个视频文件的时候,如果实现第二个视频镜头滑入的转场特效效果?
例如播放完第一段视频以后,第二段视频播放的时候,是从上滑入的?类似视频飘入的效果。

如何实现?
回复

使用道具 举报

 楼主| 发表于 2017-6-20 12:30:40 | 显示全部楼层
孙悟空 发表于 2017-6-19 20:25
[mw_shl_code=applescript,true]ffmpeg -i ~/test/objectC/facebook.mp4 -i ~/test/objectC/facebook.mp4 - ...

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2017-6-19 20:15:17 | 显示全部楼层
这个也可以用类似跑马灯的效果走起来
创建一个overlay即可
回复 支持 反对

使用道具 举报

发表于 2017-6-19 20:25:12 | 显示全部楼层
[AppleScript] 纯文本查看 复制代码
ffmpeg -i ~/test/objectC/facebook.mp4 -i ~/test/objectC/facebook.mp4 -filter_complex "[0:v][1:v] overlay=y='if(gte(t,2), -h+(t-2)*800, NAN):x=20"  /root/a.mp4


上下滑动
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-19 22:42:36 | 显示全部楼层
孙悟空 发表于 2017-6-19 20:25
[mw_shl_code=applescript,true]ffmpeg -i ~/test/objectC/facebook.mp4 -i ~/test/objectC/facebook.mp4 - ...

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

使用道具 举报

 楼主| 发表于 2017-6-20 11:51:05 | 显示全部楼层
做一个镜头切换的特效,大师兄
回复 支持 反对

使用道具 举报

发表于 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  有好的思路吗??

[Bash shell] 纯文本查看 复制代码
ffmpeg -i ~/Movies/Test/input_red_blue.mp4 -i ~/Movies/objectC/facebook.mp4 -vcodec libx264 -filter_complex "[1:v]scale=1920x1080[v1]; [0:v][v1]overlay=x='if(gte(t,1), min(-w+(t-2)*2000, 0), NAN)':y=0[o]" -map '[o]' -vcodec h264_videotoolbox -s 320x240 -map 1:1 -allow_sw 1 -y ~/output.mp4
回复 支持 反对

使用道具 举报

发表于 2017-9-23 18:27:08 | 显示全部楼层
本帖最后由 worldffmpeg 于 2017-9-23 18:34 编辑
孙悟空 发表于 2017-9-22 14:43
[mw_shl_code=bash,true]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 "[0:v][1:v]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 "[0:v][1:v]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 "[0:v][1:v]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时间对不是,中间会跳。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 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能慢慢切入,而不是简单连接在一起
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|ChinaFFmpeg

GMT+8, 2024-3-29 22:40 , Processed in 0.057228 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表