문제

실제 스트리밍 오디오 및 비디오 컨텐츠를 제공하는 가장 좋은 방법을 개념적으로 이해하려고 노력하고 있습니다. 최소한의 독점 기술을 사용하여 웹 브라우저를 사용하여 소비하기를 원합니다. 나는 정적 파일을 제공하지 않고 프로그레시브 다운로드를 사용하지 않을 것이며, 이것은 실제 오디오 스트림이 라이브로 캡처되는 것입니다. 소스와 합리적으로 동기화 될 스트림을 어떻게 방송합니까? 어떤 종류의 프로토콜이 적합합니까?

편집하다:

연구에서 나는 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 둘 다 독점적입니다.

오픈 소스가 실제로 당신에게 그렇게 중요하다면, 내가 이해할 수있는 것은 대부분의 스트리밍 미디어 시장을 무시해야합니다. 살펴보십시오

  • 이론: 로열티가없는 개방형 표준, 손실 동영상 압축 기술
  • Vorbis: 오디오 손실 오디오 압축을위한 형식 사양 및 소프트웨어 구현.
  • 오그: 무료 열린 표준 컨테이너 형식

실용주의가 당신을 최대한 활용하면 Adobe 제품에 대한 혐오감을 재고하십시오. Flash는 다른 브라우저 기반 플레이어 (즉 Windows Media Player, Quick Time 및 Real Player)보다 더 널리 분산되어 있음을 기억하십시오.)

오픈 소스와 함께 RTMP를 사용할 수 있습니다. Red5 아마도 가장 큰 관심사 일 것입니다-플래시 지원 브라우저로 라이브 스트리밍 할 수 있습니다.

귀하의 우선 순위에 대해 생각하는 것이 좋습니다. 당신의 질문에서 우리를 위해 그들을 철자하십시오.

다른 팁

UDP 기반 스트리밍 프로토콜은 방화벽이나 NAT 뒤에있을 때 종종 추가 복잡성이 있다고 STU의 답변에 추가합니다. 예를 들어, 집 밖에서 WiFi 액세스 포인트를 사용하려는 경우 UDP 배송을 사용하여 RTP를 지원하지 않습니다. 많은 클라이언트에는 타임 아웃 전에 패킷을받지 않으면 클라이언트가 TCP 전달을 시도하는 실패 메커니즘이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top