轻松入门Android直播相关技术 从0搭建直播系统

./etc/init.d/srs start

如果是mac系统,此时会失败,原因是srs.conf中max_connections太大,

目录为srs/trunk/conf/srs.conf,可以修改为248(其他操作系统可能无此问题)。

再次回到trunk目录:

./etc/init.d/srs start

到此我们的srs服务器就搭建起来了。

注:

Centos、Ubuntu可以参考官网搭建,比较简单。

如果你启动过程中还遇到了其他错误,可以查看log信息:

srs/trunk/objs/srs.log

其他指令:

停止 ./etc/init.d/srs stop

重启 ./etc/init.d/srs restart

有了服务器之后,我们就准备开始我们的推流端。

如果你实在搭建不成功,可以先拿116.196.121.20这个ip做测试,我在京东云上搭建的,配置较低,主要用于大家临时测试,可能不稳定,看一眼就行,后续会关掉,所以还是尽可能自己搭建成功吧。

使用OBS推流

下载地址:https://obsproject.com/

先下载安装,这里就简单了

首先选择点击+选择来源,这里我选择了窗口捕获,然后点击右侧的设置:

选择流,串流类型选择自定义,然后url,填写:

rtmp://你的ip/你喜欢的url

流名称可以按照上述自由输入。

记住我们的url和流名称:

rtmp://192.168.1.102/zhy/mylive

完成后,点击确定。

然后点击开始推流即可。

这样,我们的OBS推流就开启啦,软件的更多使用自行探索吧。

最后就剩下我们的拉流了。

使用VLC拉流

下载地址:http://www.videolan.org/vlc/

先下载安装,这个就更简单啦。

点击Open Network,输入我们刚才的url+流名称,点击确定即可。

稍等,就开始播放我们的推流内容了。

演示个动图:

最左侧是VLC,中间是OBS,右侧是我窗口捕获对象。

到这里,就算我们搭建了一个直播系统啦~~自己搭建成功的感觉,无比爽快,也能很大的激发我们后续的学习兴趣。

后面我们可以根据自己的需求去选择学习拉流或者推流,逐步替换掉软件。拉流的方式很多,很多开源播放器都支持。这里我们考虑替换掉推流,希望可以使用手机来推流。

使用第三方推流SDK


最简单的方式,就是可以借助于第三方的推流SDK,大多情况下第三方SDK完整方案都是收费的,不过他们的推流Android SDK倒是可以下载无需付费情况下来学习使用的。

这里以百度云的直播SDK为例,下载地址:

https://cloud.baidu.com/doc/Downloadcenter/Push.html#.E7.89.88.E6.9C.AC.E6.9B.B4.E6.96.B0.E8.AF.B4.E6.98.8E

直接点击下载Android SDK即可,下载完成后解压,然后倒入AS(这竟然是个Eclipse项目…),还好AS支持,导入后:

直接将mStreamKey修改我们的rtmp的地址即可。

注意,需要在build.gradle中添加下v7的依赖

compile ‘com.android.support:appcompat-v7:23.0.0’

然后运行,界面还可以:

贴一下运行时的效果图:

还是以vlc拉流即可,整个过程很缓慢,耐心等待,效果也不是很好,不过能跑通即可,主要是学习。然后你可以举一反三试试其他的SDK。

当然了,很多开源项目其实比SDK作为学习资料更好,比较源码都有,下面以一个开源项目举例。

使用开源项目推流


使用一个开源项目:

https://github.com/begeekmyfriend/yasea

直接clone,导入。

这个比较顺利,导入后,修改下rtmp链接:

然后运行即可(导入不成功,自己想办法解决,基础能力啦~)。

贴一张效果图:

硬解码的情况下,效果比前面的SDK好很多~~

好了,最后我们再看一种方式。

恩,ffmpeg很火,ffmpeg很强大。

所以最后一种方式,就是看如何利用ffmpeg推流啦~~

利用ffmpeg推流


大家可以自己下载ffmepg的源码,然后按照网上的方式去编成so,简单的一点而且比较实用的,就是编出可以执行ffmpeg 命令的so,这样就能干很多事情了。

这里,由于篇幅,我们就直接使用别人编好的项目了。

https://github.com/WritingMinds/ffmpeg-android-java

直接导入,该项目支持直接运行ffmpeg的命令。

ffmpeg命令很多:

例如:

将.avi转成gif动画(未压缩)

ffmpeg -i video_origine.avi gif_anime.gif

合成视频和音频

ffmpeg -i son.wav -i video_origine.avi video_finale.mpg

还有非常多的功能,可以参考:

http://blog.csdn.net/king1425/article/details/70348374

其中有一个命令就是支持推流,这里将手机上的zixia.mp4作为输入:

ffmpeg -re -i /storage/emulated/0/zixia.mp4

-vcodec libx264

-acodec aac

-f flv

-strict -2 rtmp://192.168.1.102/zhy/mylive=

那么这个库是支持在手机上运行ffmpeg命令的,那就简单了:

最后

总而言之,成功是留给准备好的人的。无论是参加什么面试,都要做好充足的准备,注意好面试的礼仪和穿着,向面试官表现出自己的热忱与真诚就好。即使最后没有过关,也要做好经验的总结,为下一次面试做好充足准备。

这里我为大家准备了一些我在面试后整理的面试专题资料,除了面试题,还总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料分享给大家,希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

毕竟不管遇到什么样的面试官,去面试首先最主要的就是自己的实力,只要实力够硬,技术够强,就不怕面试拿不到offer!

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!


《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
不管遇到什么样的面试官,去面试首先最主要的就是自己的实力,只要实力够硬,技术够强,就不怕面试拿不到offer!

[外链图片转存中…(img-npJ49YIP-1715414360250)]

[外链图片转存中…(img-QlwIjqJv-1715414360251)]

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

[外链图片转存中…(img-NJEuM2Xr-1715414360251)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 28
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值