相关概念
传输协议
(1)RSVP:资源预留协议
(2)RTP:实时传输协议
(3)RTCP:实时传输控制协议
(4)MMS:微软流媒体服务协议
(5)RTSP:实时流协议
(6)RTMP:实时消息传输协议
流媒体服务器
流媒体指以流方式在网络中传送音频、视频和多媒体文件的媒体形式。相对于下载后观看的网络播放形而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等待整个文件下载完毕。
流媒体播放形式
(1)HTTP
这种方式要下载flv视频文件到本地播放,一旦FLV视频文件下载完成,就不会消耗服务器的资源和带宽,但是拖动功能没有RTMP流媒体方式强大。
(2)RTMP
可以任意拖拽播放进度条,但是比较消耗服务器的资源。
Nginx+HLS
HLS( Http Live Streaming)苹果公司开放的支持html5直接播放的视频技术。nginx实现http服务器功能,可以通过http访问m3u8实现文件播放。
要使用HLS播放的第一步,是将视频文件切割成多个ts视频流,然后使用m3u8索引文件进行播放。生成m3u8和ts文件可以借助ffmpeg工具。
ffmpeg -i "G:\video\7 magic leap2.avi" -f hls "G:\video\HLR\test.m3u8"
对于大文件用上面这种方式有可能出现m3u8缺少索引的情况,因此也可以使用以下的方式进行文件转换。
ffmpeg -i bigfile.mp4 -codec:v libx264 -codec:a aac -map 0 -f ssegment -segment_format mpegts -segment_list tos.m3u8 -segment_time 10 taste_of_shanghai%04d.ts
直接将m3u8文件所在目录设置为http server的根目录。即可使用播放器打开远程连接。
Nginx+Jwplayer
1、做准备工作
(1)zlib 提供数据压缩使用
(2)gcc-c++
(3)pcre 是一个Perl库,包括perl兼容的正则表达式
(4)openssl openssl-devel
(5)yamdi 给flv添加关键帧使用
(6)nginx
(7)jw player
下载地址:http://webscripts.softpedia.com/JW-FLV-Media-Player/download/
2、安装
部分参考:https://blog.csdn.net/CHS007chs/article/details/101603000
(1)安装yamdi
wget http://sourceforge.net/projects/yamdi/files/yamdi/1.4/yamdi-1.4.tar.gz #安装yadmi
tar xzvf yamdi-1.4.tar.gz
cd yamdi-1.4
make && make install
(2)添加mp4支持模块
wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz
tar -zxvf nginx_mod_h264_streaming-2.2.7.tar.gz
(3)nginx添加模块
./configure --add-module=../nginx_mod_h264_streaming-2.2.7 --prefix=/opt/nginx --with-http_flv_module
3、配置
可以从网上找
4、使用jw player
参考网上