最近直播大火,直播推流软件遍地开花,那么用NGINX如何进行推流呢?下面咱们就简单的介绍一下用NGINX的rtmp模块如何实现视频推流,咱们主要从一下几点介绍:html
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
router := gin.Default()
router.Any("/auth", func(context *gin.Context) {
name := context.PostForm("name")
username := context.PostForm("username")
password := context.PostForm("password")
fmt.Println(name)
fmt.Println(username)
fmt.Println(password)
if username == "hanyun" && password == "123456" {
context.JSON(http.StatusOK, nil)
} else {
context.AbortWithStatus(http.StatusUnauthorized)
}
})
router.Run(":8686")
}
复制代码
咱们在本地起了个golang的服务,监听8686端口,对密码为123456用户名为hanyun的用户返回HTTP状态码为200,其余的反水状态码为401。为何要这么作呢?后面阐述缘由。 nginx的配置文件nginx
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
application live {
live on;
on_publish http://127.0.0.1:8686/auth;
on_play http://127.0.0.1:8686/auth;
}
application hls {
live on;
hls on;
hls_path temp/hls;
hls_fragment 8s;
}
}
}
http {
server {
listen 8080;
location / {
root html;
}
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root html;
}
location /hls {
#server hls fragments
types{
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias temp/hls;
expires -1;
}
}
}
复制代码
咱们起了一个服务,用于播放咱们的推流内容,同时也能够模拟推流,访问git
http://192.168.0.101:8080/
复制代码
具体状况下小伙伴们能够把ip地址改成本身的ip。 这里重点说一下nginx拉流和推流的限制github
rtmp {
server {
listen 1935;
application live {
live on;
on_publish http://127.0.0.1:8686/auth;
on_play http://127.0.0.1:8686/auth;
}
application hls {
live on;
hls on;
hls_path temp/hls;
hls_fragment 8s;
}
}
}
复制代码
推流的限制golang
on_publish http://127.0.0.1:8686/auth;
复制代码
拉流的限制后端
on_play http://127.0.0.1:8686/auth;
复制代码
nginx在推流和拉流的时候会采用post的方式请求咱们定义的地址,若是咱们返回的HTTP状态码为200就能够进行拉流或者推流了,若是返回其余的状态码,例如401就会拒绝推流或者拉流。bash
再这里给你们讲解一下这个推流的地址的定义app
rtmp://192.168.0.101/live/stream?username=hanyun&password=123456
复制代码
经过对这些的讲解咱们就只能够知道怎么进行拉流,推流,鉴权,小伙们能够本身动手试一下。 给你们附上已经安装rtmp的nginx代码和go的代码 连接:pan.baidu.com/s/1iG2e0Adh… 提取码:0y0i 复制这段内容后打开百度网盘手机App,操做更方便哦ide