C #으로 웹캠 비디오를 스트리밍하려면 어떻게해야합니까?
사람들이 스트리밍 비디오를보기 위해 브라우저 기반 클라이언트 (나중에 만들 예정)를 사용하여 연결할 수있는 간단한 서버 애플리케이션을 만들고 싶습니다. 그리고 C #을 사용하고 싶습니다.
웹캠을 통해 비디오 또는 빠른 이미지를 캡처하여 네트워크를 통해 전송하려면 무엇이 필요합니까?
"박스 속 캡처 / 스 트리머"구성 요소를 원한다면 다른 사람들이 언급 한대로 몇 가지가 있습니다.
모든 것에 대한 낮은 수준의 제어를 원하면 thealliedhacker가 지적한대로 DirectShow를 사용해야합니다. C #에서 DirectShow를 사용하는 가장 좋은 방법은 DirectShow.Net 라이브러리 를 사용하는 것입니다. 모든 DirectShow COM API를 래핑하고 유용한 단축키 기능을 많이 포함하고 있습니다.
캡처 및 스트리밍 외에도 녹음, 오디오 및 비디오 형식 변환, 오디오 및 비디오 라이브 필터 등 많은 작업을 수행 할 수 있습니다.
Microsoft는 DirectShow가 사라진다고 주장하지만 DirectShow가 제공하는 모든 것을 수행하는 새로운 라이브러리 또는 API를 아직 출시하지 않았습니다. 나는 그들이 발표 한 많은 최신 것들이 여전히 DirectShow라고 생각한다. Microsoft에서의 지위 때문에 MSDN과 포럼에서 찾을 수있는 것 외에는 많은 책이나 참고 문헌이 없습니다. 작년에 우리가 그것을 사용하여 프로젝트를 시작했을 때 주제에 관한 최고의 책인 Programming Microsoft DirectShow 는 절판되었고 중고 사본으로 약 $ 350에 판매되었습니다!
이를위한 일반적인 API는 DirectShow입니다.
P / Invoke를 사용하여 C ++ API를 가져올 수 있지만 이미이 작업을 수행 한 프로젝트가 몇 개 있다고 생각합니다.
http://channel9.msdn.com/forums/TechOff/93476-Programatically-Using-A-Webcam-In-C/
http://www.codeproject.com/KB/directx/DirXVidStrm.aspx
스트리밍 부분을 얻으려면 DirectShow를 사용하여 압축 코덱을 적용하여 지연을 줄인 다음 Stream을 가져 와서 전송할 수 있습니다. 멀티 캐스트를 사용하여 네트워크 부하를 줄일 수 있습니다.
VideoLAN을 사용할 수 있습니다 . VideoLAN은 서버로 작동합니다 (또는 더 많은 제어를 위해 자체 C # 애플리케이션을 둘러 쌀 수 있습니다). 또한 사용하여 C # 클라이언트에 임베드 할 수있는 뷰어 용 .NET 래퍼도 있습니다.
저는 우리 프로젝트에 VideoCapX 를 사용 했습니다. 미디어 플레이어에서 열 수있는 MMS / ASF 스트림으로 스트리밍됩니다. 그런 다음 웹 페이지에 미디어 플레이어를 포함 할 수 있습니다.
많은 제어가 필요하지 않거나 코드를 작성하지 않고 VideoCapX를 사용해보고 싶다면 U-Broadcast를 사용해보십시오 . 그들은 뒤에서 VideoCapX를 사용합니다.
웹 브라우저 내에서 비디오를 녹화하고 싶다면 유일한 옵션은 플래시라고 생각합니다. 우리는 같은 일을하려고합니다. 우리는 또한 주로 .NET 하우스이며 .NET을 사용하여 _from_within_the_browser_ 웹캠을 캡처하는 방법을 찾지 못했습니다. 여기에 언급 된 다른 모든 솔루션은 데스크톱 앱에 만족한다면 아마 훌륭하게 작동 할 것입니다.
웹캠에서 브라우저로 이미지를 스트리밍하는 또 다른 옵션은 mjpeg를 사용하는 것입니다. 이것은 대부분의 최신 브라우저가 태그의 일부로 지원하는 일련의 jpeg 이미지입니다. 다음은 C #으로 작성된 샘플 서버입니다.
https://www.codeproject.com/articles/371955/motion-jpeg-streaming-server
이것은 LAN에서는 잘 작동하지만 mjpeg는 다른 비디오 코덱 (h264, VP8 등)만큼 효과적이지 않기 때문에 인터넷에서는 잘 작동하지 않습니다.
참조 URL : https://stackoverflow.com/questions/342774/how-can-i-stream-webcam-video-with-c
'programing' 카테고리의 다른 글
Android보기 클리핑 (0) | 2021.01.16 |
---|---|
심층 분할기 특성 이해 (0) | 2021.01.16 |
Swift 2, 경고 : dyld 공유 캐시에서 Objective-C 클래스 정보를로드 할 수 없습니다. (0) | 2021.01.16 |
자동 증가 기본 키를 사용하는 경우와 사용하지 않는 경우 (0) | 2021.01.16 |
글꼴 색상 속성의 이상한 것이 실제 색상을 생성하는 이유는 무엇입니까? (0) | 2021.01.16 |