基于GPUImage的多滤镜rtmp直播推流

举报
风吹稻花香 发表于 2021/06/05 00:28:26 2021/06/05
【摘要】 之前做过开源videocore的推流改进:1)加入了美颜滤镜; 2) 加入了librtmp替换原来过于简单的rtmpclient; 后来听朋友说,在videocore上面进行opengl修改,加入新的滤镜比较麻烦,IOS的滤镜最好的要算GPUImage了。 自己就决定将多滤镜开源GPUImage来实现rtmp的直播推流;   实现的方案: 1,GPUIma...

之前做过开源videocore的推流改进:1)加入了美颜滤镜; 2) 加入了librtmp替换原来过于简单的rtmpclient;

后来听朋友说,在videocore上面进行opengl修改,加入新的滤镜比较麻烦,IOS的滤镜最好的要算GPUImage了。

自己就决定将多滤镜开源GPUImage来实现rtmp的直播推流;

 

实现的方案:

1,GPUImageMovieWriter进行rgba视频数据的输出。

通过重写GPUImageMovieWriter,实现一个代理协议pixelBufferdelegate,讲gpu滤镜编码后的RGBA视频数据进行输出;

    self.movieWriter = [[GPUImageMovieWriterEx alloc] initWithMovieURL:movieURL size:CGSizeMake(360.0, 640.0)];

    self.movieWriter.encodingLiveVideo = YES;

    self.movieWriter.pixelBufferdelegate = self;

2,初始化编码和rtmp模块

    self.rtmpSession = [[VCRtmpSession alloc] initWithVideoSize:VIDEO_SIZE_CIF fps:25 bitrate:BITRATE_CIF];

    [self.rtmpSession startRtmpSession:@"rtmp://192.168.1.104/live/123456"];

3,设置想要的GPUImage滤镜

            self.filter = [[GPUImageBeautifyFilter alloc] init];

            [self.videoCamera addTarget:self.filter];

 

现在就可以使用基于GPUImage的RTMP推流了,

github代码地址: https://github.com/runner365/GPUImageRtmpPush

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/72771476

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。