2014-12-08 7 views
0

위와 같이 원본 비디오를 보여주는 비디오 플레이어와 편집 된 버전을 보여주는 두 개의 비디오 플레이어가있는 기본 Windows.Forms GUI를 만들려고합니다. C#을 사용하여 찾고 있지만 C/C++를 사용하여 특정 이유가있을 경우 열어, 또한 Windows.Forms있을 필요가 없기 때문에 시각적으로 인상적 일 필요가 없기 때문에 나는 그것이 될 줄 알았는데 단순함으로 인한 최고/나는 그것에 대한 약간의 경험을 가지고있다.DirectShow를 사용하여 C#으로 비디오 재생, 편집 및 재생

private void loadMedia_btn_Click(object sender, EventArgs e) 
    {   
     OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
     openFileDialog1.AddExtension = true; 
     openFileDialog1.DefaultExt = "*.*"; 
     openFileDialog1.ShowDialog(); 

     initialVideoPlayer.URL = openFileDialog1.FileName; 
     string fileName = openFileDialog1.FileName; 
    } 

는 DirectShow를하고 (주로 편집)을 OpenCV와 같은 다른 사람을 간단히 살펴했다하지만 난 그것을 할 수있는 가장 좋은 방법은 잘 모르겠어요 : 나는 AxWindowsMediaPlayer를 사용하고 순간

는 제어 , WMP 컨트롤에서 프레임을 아주 쉽게 추출 할 수 없기 때문에 더 깔끔한 방법이 있는지 몰랐습니다. 한 가지 문제는 실험실의 컴퓨터가 DirectX (또는 적어도 새 버전이 아님)가 없으므로 DirectShow가 작동하는지 확신 할 수 없다는 것입니다.

내가 좋아하는 다양한 질문을 검토 한 결과 :

Take image from video playing on windows media player in C#

C# Windows Forms capture a image from embeded Windows Media Player

는하지만 그들은 내가 각 프레임을 추출하고자 할 것이기 때문에 적합하지 않는 것 이미지를 만들 것 그들을 처리하기 위해 (보간법 적용, 아마 움직임 추정, 에지 검출 어쩌면).

그래서 비디오를 재생하고, 프레임을 추출하고 일부 처리를 수행 한 다음 모든 것을 다시 모아 두 번째 플레이어에서 재생하려고합니다. 조언 : 당신은 직접 코드에서 처리를 수행하는 콜백 비디오 프로세싱 또는 샘플 그래버 필터를 수행하기 위해 사용자 정의 사용 DirectShow 필터를 변환 할 수 있습니다

답변

0

에 대한

덕분에 (C#의 속도가 느려질 수 있습니다,하지만 당신은 인텔을 사용할 수 있습니다 IPP를 사용하면 매우 빠르게 만들 수 있습니다.)

비디오를 편집하려면 소스, 샘플 그래버 및 인코더/멀티플렉서 또는 DirectShow 편집 서비스가있는 간단한 그래프를 사용할 수 있습니다 (향후 더 많은 기능을 제공하려는 경우).

+0

그래서 DirectShow를 사용하여 실험실 PC를 사용하지 않는 것이 좋습니다 (로컬로 Directx/필요한 라이브러리를 설치할 수 있습니까?). PC에서 처리를 구현 한 다음 dev . 나중에 이더넷을 통해 보드. 그렇다면 DirectShow를 사용하여 비디오를 표시 할 것을 제안 하시겠습니까? AxWMP를 완전히 없애시겠습니까? – GeorgeStorm

+0

모든 PC에 DirectShow가 있습니다 ... –

+0

확실하지 않은 DirectX의 특정 버전이 필요하다고 생각했습니다. 내 실수는 :) – GeorgeStorm