OpenCV에서 Nginx RTMP 서버로 Push 하기

하스레·2022년 8월 30일
0

서버: AWS EC2
운영체제: 우분투 22.04
opencv 실행: Google Colab

  1. 터미널에서 ec2 서버에 접속한다.

  2. (Nginx가 설치되어있다는 전제하에 -> 앞의 글 참고)
    '/etc/nginx/nginx.conf' 파일을 연다.
    난 flutter에서 rtmp 서버로 푸시하기 위해 application live로 설정을 해두었는데, 여기에 opencv에서 모자이크한 frame을 다른 url로 푸시하기 위해 application live-out을 추가해준다.

. . .
rtmp {
        server {
                listen 1935;
                chunk_size 4096;
                allow publish 127.0.0.1;
                deny publish all;

                application live {
                        live on;
                        record off;
                }
                
                application live-out {		// 추가
                        live on;			// 추가
                        record off;			// 추가
                }							// 추가
        }
}
  1. OpenCV로 모자이크 작업을 진행하는 코드에 rtmp://{서버 ip주소}/live-out로 push하는 코드를 추가한다. 이때, ffmpeg를 사용하여 스트림을 서버로 push하는데, ffmpeg 커맨드를 위한 subprocess를 만들어 PIPE를 통해 프레임들을 계속 전송하게 된다.
    스택 오버플로우의 이 글을 참고하여 구글 코랩에서 opencv로 모자이크작업을 진행한 코드에 rtmp 서버로 푸시하는 코드를 추가해주었다.

  2. 전체 코드
    https://github.com/Hi-DN/mosainfo-backend/issues/4

profile
Software Developer

0개의 댓글