서버: AWS EC2
운영체제: 우분투 22.04
opencv 실행: Google Colab
터미널에서 ec2 서버에 접속한다.
(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; // 추가
} // 추가
}
}
OpenCV로 모자이크 작업을 진행하는 코드에 rtmp://{서버 ip주소}/live-out
로 push하는 코드를 추가한다. 이때, ffmpeg를 사용하여 스트림을 서버로 push하는데, ffmpeg 커맨드를 위한 subprocess를 만들어 PIPE를 통해 프레임들을 계속 전송하게 된다.
스택 오버플로우의 이 글을 참고하여 구글 코랩에서 opencv로 모자이크작업을 진행한 코드에 rtmp 서버로 푸시하는 코드를 추가해주었다.