流媒体开发之路

其实很早之前,就想写属于自己的博客,大二就有了CSDN账号,很讽刺的是,工作几年了,账号里面的内容竟然和小鲜肉脸一样干净。干净的让人尴尬。回顾自己的这几年的开发之路,接触了很多新的东西,也用了很多技术,也写了不少的代码。可是最后回忆起来,却想起不多,与自己不爱去总结有关,所以我想从今天开始总结自己曾经用过和学过的技术,也记录一些曾经踩过的坑儿!

      因为项目需要,我之前是做C#转到了Java,开始了自己的流媒体学习之路。也开始了一步一个坑儿的阶段。由于项目需要实时的视频和语音,与远程观看与语音对讲。由于硬件的二次开发接口对于客户端的数量有限制。不得不放弃从厂商的二次开发接口入手。最后老大敲定采用流媒体的方案。搭建直播平台。我就开始负责直播平台搭建。

     刚开始,采用的是Nginx+Nginx-rtmp-module+ffmpeg 搭建直播平台,系统:ubantu14.04  。主要使用ffmpeg进行推流和拉流和rtsp=>rtmp。这个工具十分强大,花了1周才看完他的文档。觉得自己只学到了一个皮毛。但是不影响自己的开发。当环境搭建后,播放器采用的是vlc播放器,一个万精油级别的播放器。当一切准备就绪后,首先测试了一下将本地文件推到本地Nginx中,vlc 播放很流畅,没有出现卡顿的现象。后来换成自己产品。ffmpeg 出现了花屏现象,vlc播放不流畅,以及延迟很大。在局域网的情况下,出现了接近10s的延迟。这是不可接受的。后面优化了ffmpeg命令,将视频进行h264压缩,语音aac压缩。基本解决了花屏情况。可是10s的延迟是不能接受。vlc 后期出现了加载视频很慢的情况。就不在考虑使用vlc 作为播放器。在网上找了很多的播放器,不过不少都是收费的。在GitHub中,有人推荐了SRS(Simple-Rtmp-Server) 项目地址:http://www.ossrs.net/srs.release/releases/  ,有完整的文档和详细的介绍。而且自带srs播放器。低延迟和低耗。据说延迟可以到1s内。官网上有详细安装说明,不过我还是喜欢自己的安装方式。大概记录一下

1、首先在GitHub 中下载  https://github.com/ossrs/srs/tree/v2.0-r2#history 完整版本的,我不太喜欢他的自动安装

2、将下载好的zip发到linux系统中并解压

3、cd srs/trunk

4、./configure --prefix=/usr/local/srs --with-ssl --with-hls --with-hds --with-dvr --with-nginx --with-http-callback --with-http-server --with-stream-caster --with-http-api --with-ffmpeg --with-transcode --with-ingest --with-stat --with-librtmp --with-research --with-utest --with-gperf --with-gprof

5:make make install

6、sudo /usr/local/srs/etc/inin.d/srs start 就可以启动srs流媒体服务器。

这个项目中已经将ffmpeg 集成进来,可以在程序中直接调用此命令。省去了很多麻烦。行!今天就先到这儿,第一篇博客有些乱 ,但是却是我迈出的一大步!!!哈哈




你可能感兴趣的:(Java之流媒体)