2008-12-05 4 views
49

스트리밍 비디오를 시청하기 위해 브라우저 기반 클라이언트 (나중에 만들겠습니까)를 사용하여 사람들이 연결할 수있는 간단한 서버 응용 프로그램을 만들고 싶습니다. 그리고 C#을 사용하고 싶습니다.C#으로 웹캠 비디오를 스트리밍 할 수 있습니까?

웹캠을 통해 비디오 또는 빠른 이미지를 캡처하고 네트워크를 통해 전송하려면 무엇이 필요합니까?

+0

C#으로 WebCam에서 이미지를 캡처하려는 사람은 http://www.codeproject.com/KB/miscctrl/webcam_c_sharp.aspx를 참조하십시오. – kape123

+0

어쩌면이 도움이 될 것입니다 : - http://sourceforge.net/projects/ispysoftware/ - http://www.ispyconnect.com/ –

답변

19

"캡쳐/스 트리머를 상자에 넣기"구성 요소를 원한다면 다른 사람들이 언급 한 것처럼 여러 가지가 있습니다.

낮은 수준의 컨트롤을 사용하려면 thealliedhacker가 지적한대로 DirectShow를 사용해야합니다. C#에서 DirectShow를 사용하는 가장 좋은 방법은 DirectShow.Net 라이브러리를 사용하는 것입니다.이 라이브러리는 모든 DirectShow COM API를 래핑하며 많은 유용한 바로 가기 기능을 포함합니다.

캡처 및 스트리밍 외에도 녹음, 오디오 및 비디오 형식 변환, 오디오 및 비디오 라이브 필터 및 많은 것을 할 수 있습니다.

Microsoft는 DirectShow가 사라지 겠지만 DirectShow가 제공하는 모든 것을 수행하는 새로운 라이브러리 또는 API를 아직 출시하지 않았다고 주장합니다. 필자가 발표 한 최신 항목 중 상당수가 여전히 DirectShow라고 생각됩니다. Microsoft에서의 지위로 인해 MSDN과 포럼에서 찾을 수있는 책이나 참고 자료는 많지 않습니다. 작년에 우리가 프로젝트를 시작했을 때 그 주제에 대한 가장 좋은 책은 절판되었고 사용 된 사본으로 약 350 달러에 판매되었습니다!

다음은 책 : Programming Microsoft DirectShow입니다. 아마존에서 $ 299에 대한 새로운 사본 (이 게시 시점) 또는 사용 된 사본 $ 149을 얻을 수 있습니다!

alt text http://www.lmet.fr/www.lmet.fr/icons/Scans13/Big/9780/73/56/18/213.gif

+2

어떤 책 이었습니까? – faulty

+4

나는 오래된 질문에 답하고 있지만 그 책에 돈을 쏟기 전에 아마존 리뷰를 읽었다. 모두가 주장하는 것처럼 모든 것이 끔찍합니다. GraphEditPlus를 구입하고 그것이 생성하는 코드를 살펴보면 간단한 작업에 더 나은 가치가 있습니다. – dgnorton

+1

좋은 시도, Mark Pesce – Uri

3

우리 프로젝트에 VideoCapX을 사용했습니다. 미디어 플레이어에서 열 수있는 MMS/ASF 스트림으로 스트리밍됩니다. 그런 다음 미디어 플레이어를 웹 페이지에 삽입 할 수 있습니다.

많은 제어가 필요하지 않거나 코드를 작성하지 않고 VideoCapX를 시도하려는 경우 U-Broadcast을 시도해보십시오. 이들은 장면 뒤에서 VideoCapX를 사용합니다.

6

일반적인 API는 DirectShow입니다.

P/Invoke를 사용하여 C++ API를 가져올 수 있지만이 작업을 수행 한 프로젝트가 이미 몇 개 있다고 생각됩니다.

http://www.codeproject.com/KB/directx/DirXVidStrm.aspx

http://channel9.msdn.com/forums/TechOff/93476-Programatically-Using-A-Webcam-In-C/

스트리밍 부분을 얻으려면, 당신은 아마 지연을 줄이기 위해 압축 코덱을 적용 DirectShow를 사용하려면, 당신은 스트림을 취득하고 전송할 수 있습니다. 멀티 캐스트를 사용하여 네트워크 부하를 줄이는 방법을 고려해 볼 수 있습니다.

+2

DirectShow 용 C++ API를 가져 오기 위해 실제로 P/Invoke를 사용할 수 없습니다 COM 기반. DirectShow.Net이라는 DirectShow 래퍼를 사용할 수 있습니다. – faulty

4

당신은 VideoLAN를 사용할 수 있습니다. VideoLAN은 ​​서버로 작동하거나 더 많은 제어를 위해 자체 C# 응용 프로그램을 래핑 할 수 있습니다. C# 클라이언트에서 사용할 수 있고 포함시킬 수있는 뷰어 용 .NET 래퍼도 있습니다.

1

웹 브라우저에서 비디오를 녹화하고 싶다면 Flash 만 사용할 수 있습니다. 우리는 똑같은 일을하려고합니다. 우리는 또한 주로 .NET 하우스이며 .NET을 사용하여 웹캠 _from_within_the_browser_을 캡처하는 방법을 보지 못합니다.여기에 언급 된 다른 모든 솔루션은 데스크톱 응용 프로그램에 만족한다면 큰 도움이 될 것입니다.

0

웹캠에서 브라우저로 이미지를 스트리밍하는 또 다른 옵션은 mjpeg입니다. 이것은 최신 브라우저가 태그의 일부로 지원하는 일련의 jpeg 이미지입니다. 다음은 C#으로 작성된 샘플 서버 :

https://www.codeproject.com/articles/371955/motion-jpeg-streaming-server

이것은 LAN을 통해 잘 작동,하지만 MJPEG로하지뿐만 아니라 통해 인터넷 다른 비디오 코덱 (H264, VP8 등)

로 effcient 아니다