Falsh를 통한 실시간 방송 재생 (Live Streaming) 딜레이관리에 대해 초 응급 질문드립니다(골든타임)

cyk7890의 이미지

Falsh를 통한 실시간 방송 재생 (Live Streaming) 딜레이관리에 대해 초 응급 질문드립니다(골든타임)

진짜 초 응급이에요

Flash 로 실시간방송을 수신받고있습니다.
버퍼타임이 0일땐 0.4~0.5초정도의 딜레이를 가지고 꾸준히 재생이 됩니다. 다만 음성의경우 음질불안정, 음성끊김현상이 자주 발생함에따라
버퍼타임을 1로 주고 테스트중인데요

버퍼를 주면 그때부터는 시작딜레이가 1.6초정도인데 점점 증가합니다.(꾸준히 지속적증가) 하지만 리커넥션을 맺으면 다시 1.6초정도로 회복합니다.
지속적으로 증가를 하길래.. 방송자단 타임스탬프를 플래시로 주기적으로 넘겨서 오차가 1초가 발생하면 리커넥트를 하게 해봤습니다

근데 이는 단지 주먹구구식 해결방법인것 같으며 딜레이 증가가 계속 꾸준히 발생함에따라 리커넥션이 5분 ~ 10분에 한번씩 일어나는데
이게 다수에 사용자라고 생각하면 굉장히 위험한 로직인것같습니다

그래서 딜레이를 감소시킬수있는 다른 방법이 없을까 하고 계속 찾고있는데요
다른 방법아시는분 계시면 좀 알려주세요

참고 : (영상 / 음성을 각각 다른 포트로 따로 보내고 따로 받아서 처리합니다, 때문에 싱크도 벌어짐이 조금 있긴하지만 딜레이를 감소시키기 위한 선택이었습니다. )

bluebamus의 이미지

RTSP와 RTP를 사용하는 제 분야에서 설명 드리자면

인코딩 : 타 업체에서 2초 단위로 I-Frame 구성 -> 0.5로 수정합니다.
문제 1 : 네트워크의 상황에 따라 지속적인 딜레이 생성 (TCP) 패킷 손실 및 지연이 1~1.5단위로 번번하게 발생되는 곳이 있음
고려 2 : 플레이에서 요구되는 데이터의 양 (초당 플레이를 위한 데이터 양)
고려 3 : 음성 데이터는 영상 데이터 8개 가량이 들어오고 나서 하나가 들어옴 (PTS 확인시 1초 이상 가량 늦게 들어옴)
문제 2 : 음성과 영상 데이터를 맞추기 위해 플레이에서 요구되는 데이터 양이 증가됨

상위 상황에 고려하여 초기 버퍼링을 증가 시키고, FastTransmission을 제공하여 데이터 전달의 속도가 기본 프리퀀시보다 빠르게 제공될 수 있는 API 제공

위와 같은 문제와 고려 그리고 대처 방안이 있었습니다.

어떻한 네트워크에서 테스트 하신진 몰라도, 여러 문제점에 대해 고려하시고 특성을 이해하시면 답이 분명 있으실 겁니다.

도움이 되시길 바랍니다.