https://github.com/efriandika/streaming-server
GitHub - efriandika/streaming-server: Docker + Nginx RTMP + S3FS (AWS S3 Integration)
Docker + Nginx RTMP + S3FS (AWS S3 Integration). Contribute to efriandika/streaming-server development by creating an account on GitHub.
github.com
https://github.com/arut/nginx-rtmp-module
GitHub - arut/nginx-rtmp-module: NGINX-based Media Streaming Server
NGINX-based Media Streaming Server. Contribute to arut/nginx-rtmp-module development by creating an account on GitHub.
github.com
스트리밍 수신서버에서 'efriandika/streaming-server' 모듈을 사용했다. 썸네일을 만들기 위해 위 모듈에서 사용하고 있는 arut/nginx-rtmp-module 의 github wiki와 issue를 찾아면서 방법을 찾았다.
nginx.conf 파일을 아래와 같이 수정하면 된다. "recoder preview" 부분을 추가 했다.
rtmp {
server {
listen 1935;
chunk_size 4000;
application stream {
live on;
exec ffmpeg -i rtmp://localhost:1935/stream/$name
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 750k -f flv -g 30 -r 30 -s 640x360 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_360p878kbs
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 400k -f flv -g 30 -r 30 -s 426x240 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_240p528kbs
-c:a libfdk_aac -b:a 64k -c:v libx264 -b:v 200k -f flv -g 15 -r 15 -s 426x240 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_240p264kbs;
}
application hls {
live on;
hls on;
hls_fragment_naming system;
hls_fragment 5;
hls_playlist_length 10;
hls_path /opt/data/hls;
hls_nested on;
hls_variant _360p878kbs BANDWIDTH=878000,RESOLUTION=640x360;
hls_variant _240p528kbs BANDWIDTH=528000,RESOLUTION=426x240;
hls_variant _240p264kbs BANDWIDTH=264000,RESOLUTION=426x240;
recorder preview {
record keyframes;
record_max_frames 4;
record_path /opt/flv;
record_interval 10s;
exec_record_done ffmpeg -i $path -vcodec png -vframes 1 -an -f rawvideo -s 426x240 -ss 00:00:01 -y /opt/data/thumb/thumbnail_$name.png;
}
}
}
}
시도 1
하지만 역시나 첫 시도에서는 썸네일이 저장이 안되었다.
시도 2
"/opt/flv", "/opt/data/thumb" 디렉토리가 자동으로 생성되는 줄 알았는데 그게 아니었다. 그래서 폴더를 만들고 다시 시도했다
시도 3
docker logs 를 통해 확인해보니 권한문제로 인한 오류라고 해서 `chmod 777 /opt/flv && chmod 777 /opt/data/thumb` 를 실행하고 다시 해보니 잘되었다!
3트 만에 해결을 할 수 있었다! 이제 이거를 서버에 올려야 하는데 시간이 없다보니 우선 docker image를 만들어서 docker hub에 올려서 서버에서 다운받아서 사용했다. 이거는 좀 아쉬운 부분이다. docker file을 만들어서 하는게 더 좋을 것 같다.
https://hub.docker.com/repository/docker/jmhee3410/gbs/general
'네이버 부스트캠프 웹・모바일 8기 > 그룹프로젝트' 카테고리의 다른 글
아프리카 TV & GBS 동시송출 후기 (0) | 2024.01.19 |
---|---|
네이버 부스트캠프 8기 5주차 회고 (0) | 2024.01.08 |
네이버 부스트캠프 그룹프로젝트 4주차 회고 (0) | 2023.12.06 |
네이버 부스트캠프 그룹프로젝트 3주차 회고 (0) | 2023.11.27 |