C#의 Web-Camera에서 H.264로 비디오를 인코딩하는 방법은 무엇입니까? [닫은

StackOverflow https://stackoverflow.com/questions/1653001

문제

C#의 웹캠에서 H.264로 비디오를 어떻게 인코딩합니까?

내가 무엇이 필요 하나

  • 이에 대한 도움이있는 경우 MSDN.
  • 인코딩/디코딩을위한 오픈 소스 리브/포장지.
  • 수행 방법에 대한 튜토리얼 및 블로그 기사.

3GP 또는 FLV로 인코딩하는 방법의 일부 예 또는 파일 크기가 낮은 다른 것의 예는 감사하는 것 이상입니다.

도움이 되었습니까?

해결책

DirectShow SDK를 조사해야합니다.

H.264로 인코딩하는 것은 직접 불가능하지만 도움이되는 상업용 ActiveX 컨트롤이 있습니다. 하지만 몇 가지를 이해해야합니다.

DirectShow는 오디오/비디오 처리 프레임 워크이며 그래프 편집 도구를 사용하여 장치를 그래프에 놓고 테스트 할 수 있습니다. 그래프 빌드를 위해 유사한 코드를 작성해야합니다. 그래프는 최종 출력을 생성하기 위해 서로 상호 작용하는 장치/객체 체인입니다.

DirectShow는 .NET에서 사용될 수 있습니다. GraphedItPlus 도구를 사용하여 그래프를 만들고 .NET에서 사용 할 수 있지만 DirectShow가 Com에 밀접하게 바인딩되므로 .NET이 알려지지 않은 오류로 이어질 수 있기 때문에 .NET이 더 나을 수 있습니다. ActiveX Control, Native C ++에서 ActiveX Control을 작성하고 DirectShow를 사용하여 전체 녹음을 수행하고 WPF에서 ActiveX를 사용하면 프로그래밍하기가 어렵지만 더 안정적입니다.

일반적으로 다음과 같이 그래프가 필요합니다.

Video Source => Demux -> Audio Stream + Video Stream -> MP4Muxer 

X264는 무료 오픈 소스이며 우수한 MP4Muxer를 가지고 있지만 합법적이지 않으므로 코드에서 H264를 사용하기 위해 획득 한 특허 라이센스가 있어야합니다.

대안은 많은 상용 컨트롤을 사용할 수 있습니다. Intel의 IPP는 지금까지 H264의 가장 좋은 구현이지만 직접 쇼를하기에는 약간 까다 롭습니다.

다른 팁

아래는 .NET에서 비디오 캡처를 위해 CodeProject의 2 개의 샘플입니다.

그들은 구체적으로 H.264를 포함하지 않습니다. 이를 위해 캡처 한 후 비디오를 사후 처리하고 싶을 수도 있습니다.http://www.elecard.com/products/products-pc/sdk/codec-.net-sdk/

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