nginx-http-flv-module
nginx-http-flv-module是在nginx-rtmp-module基础上实现的一个音视频传输模块,将RTMP转为FLV封装格式,再通过HTTP协议下发。
支持HTTP-FLV方式直播,添加了GOP缓存功能,减少了首屏等待时间,对RTMP和HTTP-FLV都有效,添加了VHOST(单IP地址多域名)功能并支持类似Nginx的HTTP模块的通配符配置;修复了nginx-rtmp-module中已知的bug。
推流:
ffmpeg -re -i media_file -c copy rtmp://host[:port]/app_name/stream_name
其中media_file建议是H.264视频编码和AAC音频编码;port如果不指定,默认为1935,app_name和stream_name是RTMP协议中的概念。
播放:
http://host[:http_port]/dir?[port=rtmp_port&]app=app_name&stream=stream_name
重点说明一下port=rtmp_port参数,如果不指定,那么默认去1935端口拉取RTMP流,否则去推流中的port端口拉取RTMP流。
示例图片:
JWPlayer(RTMP)和VLC(HTTP-FLV)
flv.js(HTTP-FLV)
注意:
VHOST功能(单IP地址映射为多个域名)在多进程模式下还有问题。