使用腾讯RTMP SDK录屏推送

在 Android 手机上使用将摄像头视频推送直播有很多参考方案,比如下面这个使用javacv推送的https://github.com/beautifulSoup/RtmpRecoder/tree/master

我已将其工程AndroidStudio配置升级了下,可以从下面地址获取:https://github.com/smartsharp/RtmpRecoder

但是使用javacv的 FFMpegRtmpRecorder进行录屏推送就碰到了问题,先是使用 MediaCodec 的Encoder模式的Surface作为VirtualDisplay的参数,但是 MediaCodec 是编码器,直接就编码成 h.264格式了,这样的数据没法传给 FFMpegRtmpRecorder。不用 MediaCodec,那我用 ImageReader吧,ImageReader因为是接收屏幕录制的内容,所以只能设为 PixelFormat.ARGB8888,使用ImageReader的Surface获取的数据写到 FFMpegRtmpRecorder, 虽然流程没问题,但是视频推送后,直播不出来。干脆放弃!

后来看到一片文章,也是类似问题:http://www.dobest.me/blog/2016/06/17/Android%E5%B1%8F%E5%B9%95%E7%9B%B4%E6%92%AD%E6%96%B9%E6%A1%88/

还有一些 Android 开源工程,直接使用 librtmp 传输数据的,比如这个:https://github.com/eterrao/ScreenRecorder, 但是测试之后发现录屏推送并不流畅。

最后无意中发现腾讯直播sdk也提供录屏 rtmp推送,而且并没有腾讯云限制,就是任何RTMP服务器都可以推。测试之后发现效果很好。

文档介绍看这里:https://cloud.tencent.com/document/product/267/6457?lang=en

SDK下载看这里:https://cloud.tencent.com/document/product/454/7877   选择下载直播精简版即可

附上服务器搭建过程:

1.  搭建 RTMP 服务器:https://github.com/ossrs/srs, 按照文档里 1,2,3步骤执行即可;

2.  实现Android端推流客户端,看这里: https://github.com/smartsharp/TestTencentRtmp/TestApp

3.  flash播放器是 https://github.com/smartsharp/TestTencentRtmp/rtmpplayer/ 里的 rtpmplayer.html,直接用 Chrome浏览器打开即可,注意激活 flash 支持。

你可能感兴趣的:(使用腾讯RTMP SDK录屏推送)