孙悟空 发表于 2015-9-29 11:20:53

使用FFmpeg实现抠图合并功能(chroma key)

在很多视频中可以看到图像是合成的,例如有些神剧里面某大侠跳下万丈深渊的场景,某人在三昧真火中被烧的场景,还有些游戏主播,体育主播在主场景前面有个人解说的场景,都是chroma key的技术实现的,具体的链接可以参考:
http://www.cs.utah.edu/~michael/chroma/

效果图如下:



在最新版本的ffmpeg中,已经增加了chroma key功能的filter,只需要一条命令即可搞定

./ffmpeg -i ~/fuck.mp4 -i ~/1.mp4 -shortest -filter_complex "chromakey=0x70de77:0.1:0.2;overlay" -map "" output.mp4


将1.mp4中的人物抠出来,合并到fuck.mp4中,就可以搞定了
合并之前的1.mp4的效果


执行命令行如下:


与fuck合并后的效果



qq1728744610 发表于 2017-5-9 15:18:48

有没有可能实现在录制时就抠图更换背景?

孙悟空 发表于 2017-5-9 20:17:12

qq1728744610 发表于 2017-5-9 15:18
有没有可能实现在录制时就抠图更换背景?

可以的

孙悟空 发表于 2017-5-9 20:18:20

qq1728744610 发表于 2017-5-9 15:18
有没有可能实现在录制时就抠图更换背景?

输入的可以是文件,也可以是直播流,输出的可以是文件,也可以是直播流

qq1728744610 发表于 2017-5-10 21:03:07

孙悟空 发表于 2017-5-9 20:18
输入的可以是文件,也可以是直播流,输出的可以是文件,也可以是直播流 ...

如果录制时输入的是byte[],用那些命令来实现抠图?

孙悟空 发表于 2017-5-11 10:17:37

qq1728744610 发表于 2017-5-10 21:03
如果录制时输入的是byte[],用那些命令来实现抠图?

没用过Byte类型

qq1728744610 发表于 2017-5-11 10:52:30

孙悟空 发表于 2017-5-11 10:17
没用过Byte类型

如果输入转换成Bitmap呢

孙悟空 发表于 2017-5-11 14:11:58

qq1728744610 发表于 2017-5-11 10:52
如果输入转换成Bitmap呢

也没用过……

qq1728744610 发表于 2017-5-11 16:07:01

孙悟空 发表于 2017-5-11 14:11
也没用过……

把我看看这条命令,我想用图片替换视频中的绿色背景,结果没有成功: ffmpeg -i /sdcard/WeiXinRecordedDemo/test.png -i /sdcard/WeiXinRecordedDemo/finish.mp4 -filter_complex chromakey=0x70de77:0.1:0.2;overlay -map /sdcard/WeiXinRecordedDemo/mergeVideo.mp4

孙悟空 发表于 2017-5-11 18:07:29

qq1728744610 发表于 2017-5-11 16:07
把我看看这条命令,我想用图片替换视频中的绿色背景,结果没有成功: ffmpeg -i /sdcard/WeiXinRecordedD ...

提示什么错误
页: [1] 2
查看完整版本: 使用FFmpeg实现抠图合并功能(chroma key)