分享一下最近对直播的研究red5 nginx-rtmp-module rtmp hls m3u8 ts

Red5

red5 

之前在google停更了很久,现在在github上频繁更新,但是对HLS支持需要用red5 pro(收费的)

red5 依赖 red5 server(其实是在tomcat上进行开发的)

red5 project 

通过red5的eclipse插件可以轻松创建,当然如果熟手的话手动创建也是没有问题的,暂时遇到的坑也就是HLS不支持和libs的问题了

red5 application

主要通过实现配置handle class,class extends MultiThreadedApplicationAdapter 即可,通过捕捉不同事件来进行我们的推拉认证等开发工作

Nginx-rtmp-module

基于nginx的插件,俄罗斯友人开发,支持RTMP,HLS

Setup And Conf


安装到nginx,配置nginx.conf启动,即可。
配置方式在nginx-rtmp-module的github上写的很清楚
(抽空我写一个配置和安装的博文,包含代理推拉,验证,优化等。)

VLC

一款高能播放器,具体百度把。今天简单说说,我们用它来拉流基本没有问题,注意是基本!一会后面再说

FFMPEG

继续百度,今天是阐述不是写总结,FFmpeg功能强大这里我们用它来推流,配置他的环境变量就可以在cmd里直接用 ffmpeg xxx了

最后分享一个小坑吧

其实也不算坑,ffmpeg推流会有flv属性配置,flv是adobe flash的视频格式。apple和adobe的关系,不言而喻了,但是Microsoft和adobe还算不错的

所以我们推流到 rtmp://ip/domain/streamKey ,使用vlc拉 rtmp流 当然是没问题的,但是拉 hls的就会出现win平台可以拉,但是ios上不可以拉的问题

主要在于如果使用ffmpeg推流本地摄像头中配置了flv,则会把flv转为rtmp,到server那里再换成带有flv特性的m3u8 ,这个m3u8从win是可以播的。

但是ios上对这个m3u8体现的是黑屏,sdk体现的是failed。但ffmpeg 直接推送某个视频文件到 server 就行,当然这个视频文件不能是flv的。我们用

mp4,完全ok。所以我们还是用ffmpeg推送mp4格式最稳妥,当然也可以下载第三方推流软件,比如Yasea 
 

你可能感兴趣的:(总结,流媒体)