2009-03-16 2 views
1

DirectX를 설치하지 않고 C#을 사용하여 위치 X의 비디오 (.wmv)에서 프레임/이미지를 가져올 수 있는지 알고있는 사람이 있는지 알고 있습니까? Windows 2008 (설치하고 싶은 웹 서버 가능한 한 적게).C# 프레임 wmv 파일에서 프레임을 잡아

심지어 directx를 사용하는 간단한 솔루션이 좋을 수도 있습니다.

헹크

답변

1

당신은 FFmpeg을 시도해야합니다.

+0

비디오에서 미리보기 이미지를 캡처해야하는 사람은 FFmpeg를 사용했습니다. 트렁크를 통해 최신 기능을 구현해야만 할 수있었습니다. 그때 이후로 전체 릴리스의 일부 였는지 확실하지 않습니다. 그것은 그를 위해 정말로 잘 돌아갔다. – Joel

6

실제로 살펴볼 내용은 Windows 용 범용 미디어 (오디오 및 비디오 모두) 라이브러리 인 DirectShow입니다. 이전에는 DirectX에 포함되었지만 몇 년 전에는 Windows (Platform) SDK의 일부가되었습니다. Windows Vista 이후로 이제는 더 이상 사용되지 않으므로 Media Foundation을 사용합니다. 필자가 읽은 바로는 훨씬 더 나은 라이브러리 (DirectShow는 복잡한 작업에서는 지옥 임)이지만 불행히도 XP 및 이전 버전에 대한 지원이 부족하기 때문에 Media Foundation을 대상으로하는 것은 현실적으로 불가능합니다 ...

내가 할 수있는 최선의 방법은 바로 당신이 DirectShow.NET 인 DirectShow 용 .NET 래퍼 라이브러리를 가리키는 것이다.이 라이브러리는 오히려 안정적이며 잘 테스트되고있다. 여기에는 다양한 샘플이 포함되어있어 도움이 될 수 있지만 결코 간단한 해결책은 아닙니다. 또한, this CodeProject article/샘플 애플리케이션을 살펴 보는 것이 좋습니다. 웹캠 비디오 캡처와 파일 (WMV 포함)의 비디오 재생을 모두 처리합니다. 그 주위를 놀고, 프레임 검색/단일 프레임 캡처를 수행하는 방법을 배우는 것 (나는 그 프로젝트가 일 수도 있고, 일 수도 있다고 생각한다)은 필요한 것을 얻는다. 아마도 CodeProject 앱의 DirectShow.NET 샘플에서 정확한 솔루션을 찾을 수도 있습니다.

물론 내가 여기 있다면 더 쉬운 해결책을 제안 하겠지만, 당신은 그 순간 DirectShow라는 끔찍한 일에 매달려 있습니다. 어쨌든 행운을 빌어 요!

+0

시도한 DirectShow.Net은 Vista에서 작동하지만 Windows 2008에서는 작동하지 않습니다. ( – Henk

+0

Hmmm ... 아주 이상하게 들리지만 Windows Server 2008에서 실패해야하는 특별한 이유가 있어서는 안됩니다. 아마도 이것은 Windows SDK v6.1 대신 6.0 (Vista)을 사용한다는 사실과 관련이 있습니다. 해당 PC에서 SDK의 네이티브 (C++) 샘플을 실행하려고하면 유용 할 것입니다. – Noldorin

+0

qedit가 누락 된 것 같습니다. Windows 2008 컴퓨터에서 dll : ( – Henk

0

WMV (/ WMA/ASF) 파일의 프레임에 직접 액세스 할 수 있도록 설계된 Windows Media Format SDK를 살펴보십시오. 특히

http://msdn.microsoft.com/en-us/library/dd757738(VS.85).aspx

, 당신은이 파일을 (IWMSyncReader 인터페이스 이름) 읽기에 대한 동기 API에 관심. WMFSDK에는 꽤 괜찮은 샘플들이 있습니다. 여기서 가장 흥미로운 것은 WMSyncReader로, 위치 X부터 시작하여 WMV 파일을 파고 프레임을 얻는 방법을 보여줄 것입니다.

관련 문제