rtmp 생방송 서버 구축 (흰자위 구덩이 밟기)

SRS 포지셔닝은 운영 수준의 인터넷 생방송 서버 집단으로 더욱 좋은 개념의 완전성과 가장 간단한 실현을 추구하는 코드이다.SRS는 RTMP를 SRS로 밀어넣기, RTSP/UDP/FLV를 SRS로 밀어넣기, SRS로 끌어당기기 등 다양한 접속 방안을 제공합니다.SRS는 또한 접속된 RTMP 흐름을 여러 가지 변환을 지원한다. 예를 들어 RTMP 코드를 다른 서버에 전송하고, HTTP-FLV 흐름으로 변환하고, HLS로 변환하고, HDS로 변환하고, FLV로 녹화하는 것이다.SRS에는 RTMP 멀티 레벨 클러스터, VHOST 가상 서버, 무중단 서비스 Reload, HTTP-FLV 클러스터와 같은 CDN 비즈니스를 지원하는 주요 기능이 포함되어 있습니다.또한 SRS는 HTTP 콜백, 보안 정책 보안, HTTP API 인터페이스, RTMP 속도 측정 등 다양한 응용 인터페이스를 제공합니다.
 
네, 게으르다.
 
센터 7 컴파일 시작
./configure --disable-all --with-ssl --with-hls --with-nginx --with-http-server  &&  make
문서가 알려줄 거예요.
./obj/srs -c conf/https.hls/conf
사실은 구덩이!!!
etc/init.d/srs로 열 수 있습니다.
그리고 호출된 것은 srs입니다.conf
그리고 xsolist로 미루면 됩니다.
그리고 추류 검증,
컴파일할 때 --with-http-callback
 
srs.conf에 http_ 추가hooks{
enabled         on;

 
# when client connect to vhost/app, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_connect",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "tcUrl": "rtmp://video.test.com/live?key=d2fa801d08e3f90ed1e1670e6e52651a",
        #           "pageUrl": "http://www.test.com/live.html"
        #       }
        # if valid, the hook must return HTTP code 200(Stauts OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_connect http://xxx/api0 http://xxx/api1 http://xxx/apiN
        on_connect      http://127.0.0.1:8085/api/v1/clients http://localhost:8085/api/v1/clients;
        # when client close/disconnect to vhost/app/stream, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_close",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live"
        #       }
        # if valid, the hook must return HTTP code 200(Stauts OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_close http://xxx/api0 http://xxx/api1 http://xxx/apiN
        on_close        http://127.0.0.1:8085/api/v1/clients http://localhost:8085/api/v1/clients;
        # when client(encoder) publish to vhost/app/stream, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_publish",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "stream": "livestream"
        #       }
        # if valid, the hook must return HTTP code 200(Stauts OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_publish http://xxx/api0 http://xxx/api1 http://xxx/apiN
        on_publish      http://127.0.0.1:8085/api/v1/streams http://localhost:8085/api/v1/streams;
        # when client(encoder) stop publish to vhost/app/stream, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_unpublish",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "stream": "livestream"
        #       }
        # if valid, the hook must return HTTP code 200(Stauts OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_unpublish http://xxx/api0 http://xxx/api1 http://xxx/apiN
        on_unpublish    http://127.0.0.1:8085/api/v1/streams http://localhost:8085/api/v1/streams;
        # when client start to play vhost/app/stream, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_play",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "stream": "livestream",
        #           "pageUrl": "http://www.test.com/live.html"
        #       }
        # if valid, the hook must return HTTP code 200(Stauts OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_play http://xxx/api0 http://xxx/api1 http://xxx/apiN
        on_play         http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions;
        # when client stop to play vhost/app/stream, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_stop",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "stream": "livestream"
        #       }
        # if valid, the hook must return HTTP code 200(Stauts OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        # support multiple api hooks, format:
        #       on_stop http://xxx/api0 http://xxx/api1 http://xxx/apiN
        on_stop         http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions;
        # when srs reap a dvr file, call the hook,
        # the request in the POST data string is a object encode by json:
        #       {
        #           "action": "on_dvr",
        #           "client_id": 1985,
        #           "ip": "192.168.1.10", "vhost": "video.test.com", "app": "live",
        #           "stream": "livestream",
        #           "cwd": "/usr/local/srs",
        #           "file": "./objs/nginx/html/live/livestream.1420254068776.flv"
        #       }
        # if valid, the hook must return HTTP code 200(Stauts OK) and response
        # an int value specifies the error code(0 corresponding to success):
        #       0
        on_dvr          http://127.0.0.1:8085/api/v1/dvrs http://localhost:8085/api/v1/dvrs;

 
 
}
한마디 하자면, 사실은 온통 쓸데없는 말뿐이다
 
이렇게 간소화할 수 있어요.
 http_hooks{
enabled         on;

 
        on_connect      http://127.0.0.1:8085/api/v1/clients http://localhost:8085/api/v1/clients;
        on_close        http://127.0.0.1:8085/api/v1/clients http://localhost:8085/api/v1/clients;
        on_publish      http://127.0.0.1:8085/api/v1/streams http://localhost:8085/api/v1/streams;
        on_unpublish    http://127.0.0.1:8085/api/v1/streams http://localhost:8085/api/v1/streams;
        on_play         http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions;
        on_stop         http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions;
        
        on_dvr          http://127.0.0.1:8085/api/v1/dvrs http://localhost:8085/api/v1/dvrs;

 
 
}
문서는api를 켜겠다고 계속 말했습니다.사실 안 써요.
안에 연결은 마음대로 바꿀 수 있어요.
 on_퍼블릭에 대응하는 게 바로 추론 검증입니다.
{"action": "on_publish","client_id": 1985,"ip": "192.168.1.10", "vhost": "video.test.com", "app": "live","tcUrl": "rtmp://x/x?key=xxx","stream": "livestream"}
srs가 너에게 줄 링크post json
"tcUrl":rtmp://x/x?key=xxx",
0 을 반환하면 인증이 통과됩니다.
되돌아오다
친구가 없을 정도로 php 코드를 쓰는 것을 나타낸다.
중간에 제이슨을 만났어요_decode()의 구덩이
오직 json_decode (변수,trun) 하면 됩니다.
 
 

좋은 웹페이지 즐겨찾기