Android直播实践
首先,感谢开源,感谢大神的分享精神!
最近工作不忙,所以打算了解下这两年很火的直播相关的技术,所以看到了鸿洋大神的一篇博客,才有了后面的研究。
博客地址:http://blog.****.net/lmj623565791/article/details/77937483
按照博客里面写的照做了一遍,实现了里面说的效果,但是也有一些问题。
实现一个直播平台主要包括三部分:
一、搭建流媒体服务器
这里参照大神的方法,搭建rtmp流媒体服务器
这里使用srs,srs的链接为: https://github.com/ossrs/srs
克隆到本地后,找到srs目录,我的是在主目录下(即 ~目录)
通过命令:
cd ~/src/trunk
进入到trunk目录下执行:
./configure (我的是Linux系统,鸿洋大神用的mac)
接下来执行:
make
执行make需要一点时间,耐心等待。完成后继续执行一下命令:
./etc/init.d/srs start (这条命令要在trunk目录下执行,不要cd到init.d下直接使用 ./srs start,会失败,因为有些配置文件的目录是在trunk下)
上面的命令执行成功后会看到提示:
这时候,我们的流媒体服务器已经搭建完成了,并且启动了
停止:./etc/init.d/srs stop
重启: ./etc/init.d/srs restart
二、推流端(将本地视频文件或者摄像头数据转换成流的形式,推送给流媒体服务器)
推流端直接使用了大神推荐的ffmpeg的demo,地址:https://github.com/WritingMinds/ffmpeg-android-java
使用很简单,导入android-studio后,进入以下目录进行修改,如图:
进入app下,找到Home.java这个类,在该类中加入全局变量如图中标记3(其实是一条ffmpeg的命令)。
这里注意,第一行后面的路径是自己手机上一个视频文件的路径,最后一行中 rtmp这里后面的地址是推流端设定的地址,其中的ip是流媒体服务器ip。
同样在Home.java里面还要修改run按钮的点击事件。因为程序默认是支持手动输入命令的,所以我在这里加了判断,如果没有输入命令就直接执行我们前面写好的命令。这需要注意,这里的命令是通过空格进行拆分的,所以前面写命令的时候,记得加空格!!!(不知道为什么要拆开。。。。捂脸)
跑起来截图就是这样:
三、拉流端(我的理解就是播放器)
下载地址:http://www.videolan.org/vlc/
下载安装好后设置拉流的地址,如图:
选择打开网络串流
在弹出的界面选择网络,填写推流端设置的地址(rtmp开头哦) rtmp://..........
输入完成后,点击播放,这时候就可以看到推流端的视频了,再上个图:
按照以上操作基本就完成了直播的套路,不知道是网速原因还是别的原因,视频播放比较卡。
虽然走通了,但是要真正用到项目里面还有很多的路要走。再接再厉,加油~
后续完成了demo会更新博客,有需要的小伙伴等不及可以邮箱联系我 [email protected]
以上内容如有不妥,请联系本人进行修改或删除,谢谢~