2010-01-26 4 views
3

두 명의 사용자를 연결할 수있는 클라이언트 (또는 웹 클라이언트)를 만든 다음 서로 웹캠 스트림을 보내는 것이 가능한지 궁금합니다.Red5 또는 다른 플래시/미디어 서버를 사용하지 않고이 작업을 수행해야합니다. 어떤 프로토콜을 사용할 수 있습니까? 슈퍼 간단한 방법으로는 어떤 등 API를 ...웹캠 스트리밍 피어 - 투 - 피어

+1

나는 실제로 내 수석 디자인과 함께이 작업을했습니다. 좋은 해결책을 찾지 못했습니다. 내가 한 일은 DirectShow로 웹캠에서 데이터를 가져 와서 내가 만든 간단한 UDP 프로토콜 (RTP와 비슷한)으로 데이터를 보내는 것입니다. – Will

답변

2

, UDP 자습서를 보면 :

http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.aspx

를 UDP는 그것이 어디에 도착 데이터를 보증하지 않습니다 (조금 너무 신뢰할 수없는 것으로 끝나는 경우 TCP 연결을 시도 할 수도 있습니다.

그러나 가장 큰 문제 중 하나는 NAT를 통과하려고하는 것입니다. 먼저 연결된 연결이 끊어지지 않는 한 대부분의 방화벽은 들어오는 데이터를 차단합니다. 이 해결하기 위해 UPnP를 사용할 수 있지만, 그것은 아마 코드의 비트를 취할 것입니다 :이 도움이

http://www.codeproject.com/KB/IP/upnpnattraversal.aspx

희망을. UDP를 사용하면 데이터를 보내고받을 수있는 약 10 줄의 코드가 필요합니다. TCP는 조금 더 있지만 신뢰할 만합니다. Google은 자세한 정보를 얻으 려합니다.

거기에서 매우 간단합니다. 웹캠에서 데이터를 가져옵니다. 그것을 .jpg로 MemoryStream (System.IO)에 저장하십시오. 그런 다음 해당 데이터를 TCP 또는 UDP를 통해 보냅니다.

1

TCP 또는 UDP를 직접 사용하고 원시 바이트를 보내거나받는 것이 좋습니다. 더 높은 수준의 프로토콜은 단순히 불필요한 오버 헤드가 될 것입니다.

+0

NAT에 대한 다른 답변의 요점은 읽을만한 가치가 있습니다. 적어도 하나의 클라이언트가 다른 하나가 연결할 수있는 알려진 주소/번호에서 신뢰할 수있는 포트를 열어야합니다. – Peter

1

UDP를 사용하여 서로 이야기하기 위해 두 클라이언트를 얻으려면 한 가지 더해야합니다. NAT 통과가 필요합니다. 이것은 Skype의 작동 방식입니다.

STUN Article

1

어도비 Stratus는 당신이 그렇게 할 수있게된다.

관련 문제