SRS로 WebRTC 스트리밍 및 재생 속도 향상

3361 단어
WebRTC는 현재 비교적 성숙되었고 방송도 비교적 안정적이며 프로토콜도 이미 RFC가 되었고 해당하는 개원 프로젝트도 비교적 많다.물론 저는 WebRTC에 고성능 간단하고 사용하기 쉬운 서버가 부족하다고 생각합니다. 이전에도 기존의 서버를 분석한 적이 있습니다. 여러 가지 문제가 있습니다. SRS는 이런 문제를 해결할 기회가 있습니다.
현재 SRS의 WebRTC 지원 진행 상황은 다음과 같습니다.
SRS4.0.14는 RTMP 스트리밍, WebRTC 재생을 지원합니다.
SRS4.0.76은 WebRTC 스트리밍, WebRTC 재생을 지원합니다.
개발 중, WebRTC 스트리밍, RTMP 재생.
관련 Wiki:
  • v4_CN_RTCWiki
  • v4_EN_RTCWiki

  • Online


    온라인 프레젠테이션, RTMP 스트리밍, HTTP-FLV 및 WebRTC 재생:
  • webrtc://d.ossrs.net/live/livestream
  • http://d.ossrs.net/live/livestream.flv
  • rtmp://d.ossrs.net/live/livestream

  • Remark: 서버가 3개의 동시 시청을 지원하기 때문에 카드가 비교될 수 있습니다.
    Remark: 기본 음소거(WebRTC 자동 재생 요구사항)는 오른쪽 아래 작은 스피커를 눌러 소리를 낼 수 있습니다.
    Remark: Flash가 비활성화되어 있으므로 Chrome에서 RTMP 스트림을 재생할 수 없습니다. VLC를 사용하여 재생하십시오.
    온라인 프레젠테이션, WebRTC 스트리밍, WebRTC 재생:
  • 밀어내기:webrtc://d.ossrs.net/live/show
  • 재생:webrtc://d.ossrs.net/live/show

  • Remark: 흐름을 추적할 때 HTTPS 페이지가 필요합니다. 물론 이 컴퓨터localhost는 이 제한이 없습니다.
    SRS로 WebRTC 서버를 직접 구축하는 것도 매우 쉬우며 다음은 조작 절차입니다.

    Start SRS


    참고: 이 컴퓨터의 IP를 Docker에 전송해야 합니다. 그렇지 않으면 스트리밍 및 재생에 실패합니다.
    네이티브 IP를 직접 전송할 수 있습니다(예: 192.168.1.3.IP를 직접 전송하는 것이 번거롭다면 스크립트로 IP를 얻을 수 있습니다.
    macOS에서 명령을 실행하여 IP를 직접 설정합니다.
    docker run --rm --env CANDIDATE=192.168.1.3 \
        -p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp \
        registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v4.0.76 \
        objs/srs -c conf/rtc.conf
    

    macOS에서 스크립트로 IP 가져오기 명령을 실행합니다.
    eip=$(ifconfig en0 inet| grep 'inet '|awk '{print $2}')
    if [[ ! -z $eip ]]; then
      docker run --rm --env CANDIDATE=$(ifconfig en0 inet| grep 'inet '|awk '{print $2}') \
          -p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp \
          registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v4.0.76 \
          objs/srs -c conf/rtc.conf
    fi
    

    CentOS에서 스크립트로 IP 가져오기 명령을 실행합니다.
    eip=$(ifconfig eth0|grep 'inet '|awk '{print $2}')
    if [[ ! -z $eip ]]; then
      docker run --rm --env CANDIDATE=$(ifconfig eth0|grep 'inet '|awk '{print $2}') \
          -p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp \
          registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v4.0.76 \
          objs/srs -c conf/rtc.conf
    fi
    

    시작 후 액세스 가능http://localhost:8080/, 시작 여부를 확인합니다.
    Note: 최신 개발 버전 미러링은tags나images에서 볼 수 있습니다. 예를 들어 v4.0.71 버전에도 이 미러링이 있습니다.
    Docker는 반드시 이 IP를 설정해야 합니다. 그렇지 않으면 스트리밍과 재생에 실패할 수 있습니다.

    Demo


    프레젠테이션, WebRTC 스트리밍 및 재생, 링크:
  • WebRTC 스트리밍:webrtc://localhost/live/show
  • WebRTC 재생:webrtc://localhost/live/show

  • 프레젠테이션, RTMP 스트리밍, WebRTC 재생.먼저 RTMP를 FFMPEG 또는 OBS로 서버로 푸시합니다.
    ffmpeg -re -i doc/source.200kbps.768x320.flv -c copy \
        -f flv -y rtmp://localhost/live/livestream
    

    Remark: 벽 균열은 SRS가 가지고 있는 doc/source.200kbps.768x320.flv 이 파일을 먼저 사용하고 그것으로 연결한 다음에 다른 내용원을 바꾸어 각종 문제가 제대로 조사되지 않도록 하는 것을 권장합니다.
    재생 가능한 흐름 주소:
  • WebRTC 재생:webrtc://localhost/live/livestream
  • HTTP-FLV 재생:http://localhost:8080/live/livestream.flv

  • Remark: IP를 Host 기기의 IP로 바꾸십시오. 물론 공망 IP일 수도 있습니다. 접근할 수 있는 IP만 있으면 됩니다.
    Note: 코드가 개발자 지점에 통합되었고, 직접 컴파일하고 디버깅할 수도 있습니다.

    좋은 웹페이지 즐겨찾기