有关nginx和rtmp编译这里就不介绍,本文仅记录有关rtmp模块的有关配置
配置环境在Centos下
服务配置
在nginx.conf中插入
rtmp {
server {
listen 1935;#服务端口
chunk_size 4096;#看手册也不明白
application live {#live 直播名字
on_publish http://youdoname/live-ctrl.php;#推流时向向这个地址发送【数据a】,当这个页面返回的代码不是404,则全部视为可以推流,测试测时候可以把这一项注释掉,等服务器做好,在加入这个功能。
live on;#开启直播
wait_key on;#不明白,网上说不会乱码
hls on;#开启hls录制
hls_path /home/live/hls;//hls录制文件保存地址
hls_fragment 2s;//hls切片长度,默认5秒
hls_nested on;#在录制时给每一个频道都创建一个目录来保存切片文件
###############################
#hls在工作时会不停录制、删除,只保留最近一小段时间的内容,这一小段时间没有在手册上看到设置。
#同时也会更新index.m3u8文件内容
#开启hls录制,主要是为了可以通过html5的video标签播放
#video原生是不支持m3u8的,但可以通过hls.js库让其能够播放
#当然,页面中也可以加入flash直接播放rtmp协议,只是现在大多都不用flash了
###############################
recorder all {#all是录制app名字,后面发送控制命令会用到
record all manual;#录制所有,手动录制
record_suffix "_%Y-%m-%d_%T.flv";#添加文件后缀,前缀是频道名
record_path /home/live/record; //录制文件存放目录
record_notify on;#当特定的记录器开始或停止记录文件时,向发布者发送状态消息
on_record_done http://works.tv.cc/live-ctrl-record.php; //录制完成向这个地址发送【数据B】
exec_record_done '/usr/local/bin/ffmpeg' -y -i $path -vcodec libx264 -f mp4 $dirname/$basename.mp4 2>>$dirname/$basename.log;//录制完成执行命令,这里是用ffmpeg转码以$开头的是变量,手册中很详细
#####################################
#录制的文件格式