분류 전체보기 (79) 썸네일형 리스트형 m3u8 트러블 슈팅 HTTP 환경에서는 http://nginx-rtmp:8080/hls 경로로 라이브 방송 스트림(m3u8 파일)을 수신하고 잘 재생되었습니다. HTTPS 환경에서는 해당 m3u8 파일이 로드되지 않아서 영상 재생이 불가능했습니다. 원인 분석 HTTPS 요청은 기본적으로 80번 또는 443번 포트로 들어옵니다. nginx가 http://nginx-rtmp:8080/hls로 프록시해줘야 하지만, 8080 포트가 아닌 80번 포트로 요청이 가면서 스트림을 찾지 못하는 문제가 발생한 것입니다.해결 방법 erver { listen 80; # 일반 HTTP 요청 처리 (React 또는 다른 클라이언트 애플리케이션) location / { proxy_pass.. 왕왕 초보 docker -compose 로 ec2 배포기 준비물docker file, docker-compose.yaml 파일 미리 작성 해서 로컬에서 build, up 되는 지 확인 하기 ec2 인스턴스(주의: 컨테이너 다수 있을 시 t2-micro 로는 안됨, -> 컴포즈 업하고 나서 CPU 사용률 80%찍고 터미널이 중단되며, 컨테이너 실행 중단하려고 인스턴스 재접속 할려고 해도 안들어가짐... 최소 t2 small 필요) RDS 미리 준비(당연) 위의 과정이 모두 준비가 되어 있다면 ec2 로 ssh -i 이미지@ 명령어로 인스턴스 내에 접속 git clone 이나 scp 명령어로 소스 파일들 끌어오기 (깃 클론 했을 경우 .env 파일 따로 작성 해주기) 인스턴스 내에서 docker, docker compose 설치 및 인스턴스 재 접속 (권한.. 라이브 채팅방 구현 계획 멀티 유저 채팅방 구현 websocket(필수): 실시간 양방향 통신 필요 보조 도구 필요성 (다중 서버일 경우를 전재)스케일링: 단일 소켓서버에 많은 채팅 참여가 연결 시 리소스 부족해짐 메시지 동기화: 여러 웹 소켓 서버 존재 시 한 서버에서 발생한 메시지를 다른 서버에 연결된 클라이언트와 동기화 해야함서버 수평 확장 시 : 2개 서버로 같은 라이브 방송 진행 시 1번 서버에 연결된 사용자와 2번 서버에 연결된 사용자를 연결 특징 Redis Pub/Sub Redis StreamsKafkaRabbitMQFirebase Realtime Database실시간 메시지 전송빠름빠름빠름빠름빠름메시지 보존 없음 있음 (로그 형태로 저장)있음 (로그 기반 저장)있음 (큐에 저장)있음 (클라우드에 저장)확장성클러.. 라이브 구현 계획 프로토콜 - webRTC:웹 브라우져 간에 플러그인 도움 없이 서로 통신할 수 있게 설계된 API 그러나 다른 프로토콜에 비해 많은 사용자를 받기 힘든 구조이므로 다수의 사용자를 받기 힘들다. 따라서 영상통화, 음성통화, P2P 파일 공유에 사용되는 중=> 라이브 방송 구현이므로 다수의 시청자가 사용해야하므로 탈락 -MPEC-DASH: TCP기반 영상 전송 프로토콜, 최대 4K해상도 지원, RTMP랑 비교하자면 품질을 더 신경 쓰지만 레이턴시가 조금 더 소요된다. DASH 프로토콜 사용, RTMP보다 비용 저렴, 방화벽도 그냥 통과,(RTMP는 방화벽 통과하려면 수동으로 포트 열어야함) => 기존에 HLS프로토콜을 사용해서 영상 전송 기능을 구현했기에 DASH 방식으로 라이브 기능을 구현하는 것은 일관.. ㅁㄴㅇㅁㅇㅁ 1. 굳이 ffmpeg과 미디어 컨버트를 같이 사용한 이유가 무엇인가요?ffmpeg는 영상 자르기(10초 제한)와 썸네일 추출 같은 작업에서 매우 빠르고 간단하게 처리할 수 있습니다. 이러한 작업은 명령 기반으로 실행되며, 일반적으로 몇 초 내에 완료됩니다.반면, 미디어 컨버트는 HLS 변환과 같은 작업에서 안정적인 퍼포먼스를 제공하지만, Job 생성과 실행에 시간이 분 단위로 소요됩니다.따라서, 영상의 길이 제한 및 썸네일 추출 같은 작업은 ffmpeg로 미리 처리하고, 이후 HLS 변환 등 복잡한 작업은 미디어 컨버트를 활용해 작업 시간을 단축하고 효율성을 높였습니다.2. 추후 도전 과제에 언급된 Nginx로 라이브 스트리밍을 구현할 예정인데, 구체적으로 어떤 방식인가요?Nginx와 RTMP 모듈을 .. ㅇ https://www.astroasis.shop/ docker compose로 beanstalk 배포하기(nest.js) 1. docker-compose.yaml 파일 작성 : beanstalk는 docker-compose.yaml/yml을 그대로 사용할 수 있어서 Dockerrun.aws.json파일을 따로 작성할 필요가 없음(내부적으로 compose 파일을 처리함)version: '3.8'services: app: image: app-image build: context: . ports: - '3000:3000' environment: DB_HOST: //DB호스트 DB_PORT: //DB포트 DB_USER: //DB 유저 네임 DB_PASS: //DB 비번 DB_NAME: //DB이름 networks: - app-net.. 서버 부하 테스트 Metrics for period to: 20:48:50(+0900) (width: 7.065s) -------------------------------------- http.codes.201: ................................................................ 8 http.downloaded_bytes: ......................................................... 1984 http.request_rate: ............................................................. 1/sec http.requests: ................................... 이전 1 2 3 4 ··· 10 다음