NGINX 에 RTMP 추가

6309 단어
작가 오리지널
저 자 는 시리즈 문장 으로 Nginx - Rtmp 모듈 코드 를 해석 하고 주 소 는 nginx - rtmp - module 입 니 다. 본 고 는 Nginx - Rtmp 의 모듈 컴 파일, 로드, 실행 등 을 소개 합 니 다.이 부분 은 주로 3 단계 로 실행 해 야 하 며 nginx 와 관련 된 약속 을 지 키 면 됩 니 다. 대체적으로 다음 과 같 습 니 다.
  • 다운로드 한 Rtmp 코드 를 nginx / src 파일 에 넣 습 니 다. 예 를 들 어 nginx / src / rtmp
  • 새 Rtmp 의 conf 파일 은 새 rtmp 파일 에 있 습 니 다. 예 를 들 어 nginx / src / rtmp / conf.conf 파일 의 작성 은 3 단 식 으로 ngx 를 정의 합 니 다.addon_name, module 추가, src 추가, 관련 변 수 를 설정 합 니 다.예 는 다음 과 같다.
  •  ngx_addon_name="ngx_rtmp_module"
    
       CORE_MODULES="$CORE_MODULES
                ngx_rtmp_module                             \
                ngx_rtmp_core_module                        \
                ngx_rtmp_cmd_module                         \
                ngx_rtmp_codec_module                       \
                ngx_rtmp_access_module                      \
                ngx_rtmp_record_module                      \
                ngx_rtmp_live_module                        \
                ngx_rtmp_play_module                        \
                ngx_rtmp_flv_module                         \
                ngx_rtmp_mp4_module                         \
                ngx_rtmp_netcall_module                     \
                ngx_rtmp_relay_module                       \
                ngx_rtmp_exec_module                        \
                ngx_rtmp_auto_push_module                   \
                ngx_rtmp_notify_module                      \
                ngx_rtmp_log_module                         \
                ngx_rtmp_limit_module                       \
                ngx_rtmp_hls_module                         \
                ngx_rtmp_dash_module                        \
                ngx_rtmp_cfms_module                        \
                "
       HTTP_MODULES="$HTTP_MODULES                         \
                ngx_rtmp_stat_module                        \
                ngx_rtmp_control_module                     \
                "
       NGX_ADDON_DEPS="$NGX_ADDON_DEPS                      \
                $ngx_addon_dir/ngx_rtmp_amf.h               \
                $ngx_addon_dir/ngx_rtmp_bandwidth.h         \
                $ngx_addon_dir/ngx_rtmp_cmd_module.h        \
                $ngx_addon_dir/ngx_rtmp_codec_module.h      \
                $ngx_addon_dir/ngx_rtmp_eval.h              \
                $ngx_addon_dir/ngx_rtmp.h                   \
                $ngx_addon_dir/ngx_rtmp_version.h           \
                $ngx_addon_dir/ngx_rtmp_live_module.h       \
                $ngx_addon_dir/ngx_rtmp_netcall_module.h    \
                $ngx_addon_dir/ngx_rtmp_play_module.h       \
                $ngx_addon_dir/ngx_rtmp_record_module.h     \
                $ngx_addon_dir/ngx_rtmp_relay_module.h      \
                $ngx_addon_dir/ngx_rtmp_streams.h           \
                $ngx_addon_dir/ngx_rtmp_bitop.h             \
                $ngx_addon_dir/ngx_rtmp_proxy_protocol.h    \
                $ngx_addon_dir/hls/ngx_rtmp_mpegts.h        \
                $ngx_addon_dir/dash/ngx_rtmp_mp4.h          \
                "
       NGX_ADDON_SRCS="$NGX_ADDON_SRCS                      \
                $ngx_addon_dir/ngx_rtmp.c                   \
                $ngx_addon_dir/ngx_rtmp_init.c              \
                $ngx_addon_dir/ngx_rtmp_handshake.c         \
                $ngx_addon_dir/ngx_rtmp_handler.c           \
                $ngx_addon_dir/ngx_rtmp_amf.c               \
                $ngx_addon_dir/ngx_rtmp_send.c              \
                $ngx_addon_dir/ngx_rtmp_shared.c            \
                $ngx_addon_dir/ngx_rtmp_eval.c              \
                $ngx_addon_dir/ngx_rtmp_receive.c           \
                $ngx_addon_dir/ngx_rtmp_core_module.c       \
                $ngx_addon_dir/ngx_rtmp_cmd_module.c        \
                $ngx_addon_dir/ngx_rtmp_codec_module.c      \
                $ngx_addon_dir/ngx_rtmp_access_module.c     \
                $ngx_addon_dir/ngx_rtmp_record_module.c     \
                $ngx_addon_dir/ngx_rtmp_live_module.c       \
                $ngx_addon_dir/ngx_rtmp_play_module.c       \
                $ngx_addon_dir/ngx_rtmp_flv_module.c        \
                $ngx_addon_dir/ngx_rtmp_mp4_module.c        \
                $ngx_addon_dir/ngx_rtmp_netcall_module.c    \
                $ngx_addon_dir/ngx_rtmp_stat_module.c       \
                $ngx_addon_dir/ngx_rtmp_control_module.c    \
                $ngx_addon_dir/ngx_rtmp_relay_module.c      \
                $ngx_addon_dir/ngx_rtmp_bandwidth.c         \
                $ngx_addon_dir/ngx_rtmp_exec_module.c       \
                $ngx_addon_dir/ngx_rtmp_auto_push_module.c  \
                $ngx_addon_dir/ngx_rtmp_notify_module.c     \
                $ngx_addon_dir/ngx_rtmp_log_module.c        \
                $ngx_addon_dir/ngx_rtmp_limit_module.c      \
                $ngx_addon_dir/ngx_rtmp_bitop.c             \
                $ngx_addon_dir/ngx_rtmp_proxy_protocol.c    \
                $ngx_addon_dir/hls/ngx_rtmp_hls_module.c    \
                $ngx_addon_dir/dash/ngx_rtmp_dash_module.c  \
                $ngx_addon_dir/hls/ngx_rtmp_mpegts.c        \
                $ngx_addon_dir/dash/ngx_rtmp_mp4.c          \
                $ngx_addon_dir/cfms/ngx_rtmp_cfms_module.c  \
                $ngx_addon_dir/cfms/ngx_rtmp_cfms_transcode.c  \
                $ngx_addon_dir/cfms/ngx_rtmp_cfms_relay.c   \
                "
      CFLAGS="$CFLAGS -I$ngx_addon_dir"
      USE_OPENSSL=YES
    

    만약 당신 이 rtmp 모듈 에 대해 맞 춤 형 제작 을 해 야 한다 면, 예 를 들 어 삭제 모듈 을 추가 해 야 한다 면, 여기에 상응하는 수정 을 해 야 한다.
  • 컴 파일 할 때 rtmp 모듈 을 더 하면 주로 두 단계 로 나 뉜 다. 1 Makefile 생 성, 예제 코드 는 다음 과 같다.
  • auto/configure --prefix=/usr/local/rtmp --sbin-path=sbin/rtmp --conf-path=conf/cfms.conf --add-module=src/rtmp
    2 컴 파일 연결 설치, 이 부분 은 nginx 매 뉴 얼 을 참고 합 니 다. 여 기 는 군말 이 아 닙 니 다.특히 컴 파일 완료 후 nginx / obj / ngxmodules. c 파일 의 전역 변수 ngxmodule_t *ngx_modules [] 는 rtmp 각 모듈 을 추가 합 니 다. nginx 시작 과 후속 메시지 처리 시 이 변 수 는 메 인 라인 으로 순서대로 진행 합 니 다 (자세 한 내용 은 후속 글 에서 설명 합 니 다). 예제 코드 는 다음 과 같 습 니 다.
    ngx_module_t *ngx_modules[] = { &ngx_core_module, &ngx_errlog_module, &ngx_conf_module, &ngx_rtmp_module, &ngx_rtmp_core_module, &ngx_rtmp_cmd_module, &ngx_rtmp_codec_module, &ngx_rtmp_access_module, &ngx_rtmp_record_module, &ngx_rtmp_live_module, ......
    본 고 는 준비 작업 만 하고 그 다음 에 rtmp 모듈 코드 를 분석 하 는 데 중심 을 두 며 nginx 프레임 워 크 와 관련 된 지식 을 추가 할 것 이다.

    좋은 웹페이지 즐겨찾기