브라우저 기반 스트리밍 비디오/오디오 (프로그레시브 다운로드 아님)
-
07-07-2019 - |
문제
실제 스트리밍 오디오 및 비디오 컨텐츠를 제공하는 가장 좋은 방법을 개념적으로 이해하려고 노력하고 있습니다. 최소한의 독점 기술을 사용하여 웹 브라우저를 사용하여 소비하기를 원합니다. 나는 정적 파일을 제공하지 않고 프로그레시브 다운로드를 사용하지 않을 것이며, 이것은 실제 오디오 스트림이 라이브로 캡처되는 것입니다. 소스와 합리적으로 동기화 될 스트림을 어떻게 방송합니까? 어떤 종류의 프로토콜이 적합합니까?
편집하다:
연구에서 나는 RTSP, HTTP 스트리밍, RTMP 및 RTP의 몇 가지 프로토콜이 있음을 발견했습니다.
HTTP 스트리밍 TCP (HTTP 기반)에 의존하고 패킷을 잃지 않기 때문에 어떤 종류의 라이브 공연/통신을 스트리밍하는 경우 다소 적합하지 않습니다. 낮은 대역폭 상황에서 클라이언트는 재생에서 크게 뒤쳐 질 수 있습니다. 심판
RTMP 플래시 미디어 서버가 필요한 독점 기술입니다. 그것에 대한 쓰레기. 내가 Flash를 보았던 이유는 사용자 경험이 진행되는 한 매우 유연하기 때문입니다. SoundManager2는 플래시로 미디어를 재생하기위한 우수한 JavaScript 인터페이스를 제공합니다. 이것이 내가 클라이언트 응용 프로그램에서 찾는 것입니다.
RTSP/RTP Microsoft가 MMS 프로토콜을 사용하여 사용하여 전환 한 것입니다. RTSP는 제어 프로토콜입니다. 몇 가지 뚜렷한 차이가있는 HTTP와 유사합니다. 서버는 클라이언트와 대화 할 수 있으며 일시 중지와 같은 추가 명령이 있습니다. 또한 세션 ID로 유지되는 상태의 프로토콜도 있습니다. RTP는 페이로드 (인코딩 된 오디오 또는 비디오)를 제공하기위한 프로토콜입니다. 몇 가지 오픈 소스 프로젝트가 있으며 그중 하나는 Apple에 의해 지원됩니다. 여기. 이것이 내가 원하는 것을 할 수있는 것 같고 꽤 많은 플레이어가 그것을 지원합니다. 이 페이지에서 "라이브"방송에 적합한 것 같습니다. 여기.
고마워요, 조쉬
해결책
먼저 두 가지 잘못된 점을 빨리 쓰러 뜨릴 것입니다. 다음과 같은 세부 사항 :
- RTMP는 Flash Media Server보다 다른 서버를 통해 수행 할 수 있습니다.
- TCP는 라이브에 적합합니다. UDP를 좋아하는 사람들로부터 너무 많은 FUD가 있습니다. 애플은 방금 초안 사양을 발표했다 iPhone 용 HTTP (및 TCP)를 통해 간단하고 라이브 스트리밍을 수행하는 것. 나는 그것이 브라우저에서도 끝날 것으로 기대합니다. 또한 TCP는 회사 방화벽을 훨씬 더 자주 그리고 쉽게 통과하는 보너스를 가지고 있습니다.
내 읽은 것은 복잡하고 UDP 기반 스트리밍이 줄어들고 있다는 것입니다. 나는 사망을 예측하지 않고 시장의 점점 더 적고 적은 점유율입니다. UDP 기반 스트리밍 서버는 TCP 기반 솔루션 (10 배 이상)에 비해 막대한 리소스를 소비하며 이점은 그다지 확실하지 않습니다.
당신은 독점 기술을 원하지 않는다고 말합니다 [플래시]의 쓰레기", 그러나 여전히 실제 스트리밍을하고 싶습니까? 당신에게 그것을 깨는 것을 싫어하지만 둘 다 realaudio 그리고 RealVideo 둘 다 독점적입니다.
오픈 소스가 실제로 당신에게 그렇게 중요하다면, 내가 이해할 수있는 것은 대부분의 스트리밍 미디어 시장을 무시해야합니다. 살펴보십시오
실용주의가 당신을 최대한 활용하면 Adobe 제품에 대한 혐오감을 재고하십시오. Flash는 다른 브라우저 기반 플레이어 (즉 Windows Media Player, Quick Time 및 Real Player)보다 더 널리 분산되어 있음을 기억하십시오.)
오픈 소스와 함께 RTMP를 사용할 수 있습니다. Red5 아마도 가장 큰 관심사 일 것입니다-플래시 지원 브라우저로 라이브 스트리밍 할 수 있습니다.
귀하의 우선 순위에 대해 생각하는 것이 좋습니다. 당신의 질문에서 우리를 위해 그들을 철자하십시오.
다른 팁
UDP 기반 스트리밍 프로토콜은 방화벽이나 NAT 뒤에있을 때 종종 추가 복잡성이 있다고 STU의 답변에 추가합니다. 예를 들어, 집 밖에서 WiFi 액세스 포인트를 사용하려는 경우 UDP 배송을 사용하여 RTP를 지원하지 않습니다. 많은 클라이언트에는 타임 아웃 전에 패킷을받지 않으면 클라이언트가 TCP 전달을 시도하는 실패 메커니즘이 있습니다.