关于映客 APP 那种直播可以美颜滤镜效果的实现方案探讨

2016-03-03 19:30:33 +08:00
 qq2511296

现在很多 app 提供主播视频直播时候美颜滤镜功能,有点问题想下大家

A:主播
B:观众

方案 1 :
获取 A 主播手机摄像头的每一帧图滤镜处理 然后显示在 A 主播手机屏幕上 然后推流到服务器
B 观众从服务器获取流 播放的时候再用滤镜把美颜效果显示出来

方案 2 :
获取 A 主播手机摄像头的每一帧图滤镜处理 然后显示在手机屏幕上 然后推流到服务器,由服务器再把流处理加上美颜滤镜
B 观众从服务器获取流直接播放

方案 3 :
获取 A 主播手机摄像头的每一帧图滤镜处理 然后显示在手机屏幕上 然后再把滤镜处理过的再推流到服务器
B 观众从服务器获取流直接播放

我个人感觉方案 3 比较靠谱。大家看看觉得哪种方式才是正确的做法?
我目前按方案 3 的方式做

目前实现了
1.摄像头图片实时滤镜(iOS 的 CoreImage 实现的,也许后面会去用 GPUImage)

- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
根据 sampleBuffer 来生成图片,然后把图片通过 CoreImage 去滤镜处理,然后把处理后的 Image 显示在 Layer 上

2.成功推流到 RTMP 服务器(通过 VideoCore 这个库进行推流)
(但我只会推没有滤镜处理的那个流,处理后变成一个图片了,不知道怎么推流了)

想知道把滤镜处理后的效果推流到服务器?

7715 次点击
所在节点    iDev
10 条回复
nicevar
2016-03-03 19:50:25 +08:00
没做过不太清楚,可以试一下抓一下网络包,看能弄到播放流地址没,像虎牙斗鱼战旗一类的是能抓到的,能抓到直接用 vlc 播放一下看是否处理了
qq2511296
2016-03-03 20:02:49 +08:00
@nicevar 斗鱼那种 直接播放流的话 好像是处理过的 不知道他是在主播那头处理的 还是说服务器处理
free9fw
2016-03-03 22:28:42 +08:00
GPUImage 是你的选择
qq2511296
2016-03-04 18:04:20 +08:00
@nicevar
@free9fw 这个已经知道了 都是摄像头采集数据 事实渲染 然后显示在图片上,然后同时把渲染好的再推到服务器,服务器那边不做什么处理了 客户端观看 直接播放流就可以
hyzjshwo
2016-03-10 13:26:24 +08:00
这种计算的东西 能交给客户端做就客户端做,你想想千万用户都占用服务器资源 太浪费
normanx
2016-04-05 11:51:36 +08:00
推到 RTMP 服务器上的是压缩过的视频流,不能推送原始图片数据。看斗鱼和花椒的安卓版里面都有 openh264 的库,估计是自己压缩成 h264 视频流,然后推送到 RTMP 服务器上。

楼主有美颜滤镜原理的相关资料么,能不能分享下,谢谢
qq2511296
2016-04-05 12:29:48 +08:00
@normanx 你可以去研究下 videocore 这个库 c++写的 里面有滤镜接口 你要是会 opengl 就不难
normanx
2016-04-06 17:07:39 +08:00
@qq2511296 非常感谢, opengl 不熟悉,看来要学习的东西很多
guikunzhi
2016-05-07 14:30:30 +08:00
美颜可以参考 https://github.com/Guikunzhi/BeautifyFaceDemo 基于 GPUImage 的
qq2511296
2016-05-07 16:46:36 +08:00
@guikunzhi 这是前段时间刚出来的 之前还有个 videocore 的 也带美颜滤镜的 sdk 反正这块要一点算法 open gl 那些东西

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/260901

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX