윈도우 미디어 플레이어에서 지원하는 프로토콜에 대해서.

plusme의 이미지

UNIX 기반으로

윈도 미디어 플레이어의 프락시 서버를
만들려고 합니다.

윈도 미디어 플레이어 에서 지원하는 세션매니징 프로토콜이
MMS 인것 같드라고요..

Real 계열에서는.. RTP/RTCP/RTSP 를 사용하는거 같구요.
(근데 사실상.. de facto 표준인 윈도미디어플레이어 를 위해서 만들어야 겠지요..)

근데 MMS 를 보니, 실제로 UDP 기반만이 아니라
여러 트랜스포트 레이어 기반으로 동작을 하는것 같은 느낌이 듭니다.

심지어 HTTP 기반으로도 동작을 하는것 같더라고요..

근데 실제 TCP나 HTTP 기반으로 스트리밍 을 했을떄

현재 인터넷 환경에서 만족할 만한 품질이 나올수 있을까요?

경험있는 분들의

어떠한 조언도 환영합니다.!

cjh의 이미지

MMS는 MS 자체 프로토콜이고, 트랜스포트는 다섯가지가 있습니다.

- MMSU: UDP
- MMST: TCP
- HTTP
- RTSPU: UDP
- RTSPT: TCP

HTTP는 IIS랑 결합되어야 진정한 능력이 발휘되죠.
MMS[UT]는 윈도우 미디어 서비스에서만 실행됩니다.
RTSP는 리얼에서도 쓰이는 멀티미디어 통신 프로토콜이고, Windows Media 9(윈도 2003 서버 이상)에서만 가능합니다.

플레이어는 8.0 이하는 MMS[UT]와 HTTP, 9.0은 모두 지원됩니다. 다만 프로토콜 선택은 플레이어와 서버간에 협상을 해야 하는데, mms:// 라고만 지정하면 보통 RTSP -> MMS, UDP -> TCP 순으로 찾습니다.
현재 상태로는 MMST나 RTSPT가 가장 품질이 좋습니다. 대신 서버 부하가 좀 있죠...

프록시 만드시려면 kingate라는 오픈 소스 서버가 있습니다. 방법에 대해서는 MSDN에도 관련 문서가 있으니 찾아보세요...

--
익스펙토 페트로눔

plusme의 이미지

TCP/IP 기반으로 트랜스포트가 이루어지는것이

이해가 안갓던 이유가 2가지 입니다.

1. 퍼포먼스 (live cast 같은 목적으로 과연 사용이 가능할지?)

2. MMS 는 잘몰겠는데, RTP의 경우 RTCP라는 QoS 관련 채널이 있잖습니까?
이것이 필수(???) 아닌가요? 그렇다면 TCP/IP 의 경우도
컨트롤채널과 데이터 채널 두개의 포트로 리스닝 합니까? 그렇담,
http의 경우엔 어떻게 되는건지?

cjh의 이미지

1. 이미 MMS 프로토콜로 라이브 사용을 많이 하고 있습니다. 국내는 99%라고 해도 과언이 아니죠. 성능상 크게 문제될 점은 없습니다. 물론 웹 서비스에 비하면 리소스를 많이 먹기는 하죠.

2. WMT9 RTSP의 경우 제가 아는한 TCP/UDP소켓을 하나만 엽니다(port 554).

3. HTTP도 80번 포트만 갖고 통신합니다.

생각보다 멀티미디어 전송하는데 QoS같은거 안따집니다. :< 요즘은 그냥 플레이어로 죽 보내 버리고 마니까요.

--
익스펙토 페트로눔

plusme의 이미지

기존의 IP 기반의 멀티캐스트를 application layer 로
구현하려는 것입니다. 일단, 완전한 multicast 가 아닌
한쪽은 보내는 다른 한쪽은 받기만 하는 live cast 를 위한..

그런데 기존의 미디어 플레이어 기반으로 구현하려다 보니
힘든점이 많군요..(잘 몰라서)

기존의 서버와 클라이언트 는 하나도 변경하지 않는 다는 목적하에..

그 중간에 프락시를 둘 예정이거든요.

근데 이 프락시가 단순히 한쪽방향으로 패킷포워딩만 하면 되는건
아닌거 같거든요.

SOCKS V4/5 같이 양쪽으로 패킷을 포워딩 시켜야 하는데

그러려면 미디어세션 프로토콜 (MMS or RTSP.. ) 와 관련된 메카니즘이

있을테고..

그래서 지금은 그냥 JMF 를 써서 RTP로 프락시로 전송하고

프락시에서는 특정 JMF rtp client 들로 패킷을 전송하거나

다른 프락시로 패킷을 전송하도록 하려고 합니다.

그런데 이것은 실제 현실과는 조금 동 떨어진듯 한 느낌이 드네요..

어떠한 조언이라도 감사할듯......^_^

plusme의 이미지

아.. 글구...
저 말고 저거 구현하는 사람들 그룹이 또 있는데

그쪽은 그냥 http proxy 를 약간 변경해서 구현하려고
하고 있다는 소문이 들리는데..

과연 제 방법이
아니면 저쪽 방법이 더

구현 목표(application layer approach multicast)
에 가까운지

평가해주실수 있나요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.