2009-07-15 1 views
2

난 쓸모없는 비디오 형식을 해독 할 수있는 비디오 decrypter 라이브러리가 있고 콜백 함수를 통해 WAV의 BMP 및 오디오 비디오 프레임을 반환합니다. 이제 Windows에서 모든 표준 형식으로 새 비디오를 인코딩해야합니다.Visual C에서 비디오를 어떻게 인코딩합니까?

표준 방법은 무엇입니까? Win32/C를 사용하고 있습니다. 나는 Windows가 자체 인코딩 라이브러리와 드라이버를 가지고 있고 FFMPEG를 사용할 필요가 없다고 생각한다. 예제 코드 또는 적어도 보려는 라이브러리에 대한 포인터는 매우 유용합니다.

편집 : 동의합니다. FFMPEG는 가장 쉬운 방법입니다.

답변

5

Windows에는 두 가지 기본 선택 항목이 있습니다.

  1. 심각하게 고려하는 것이 너무 고대하지만 Video Compression Manager을 가지고 오래된 Windows Multimedia 라이브러리입니다.
  2. 그리고 DirectShow이 있습니다.

확실히 DirectShow를 통해 수행 할 수 있지만, COM 프로그래밍과 필터, 그래프 및 모니 커 개념을 즐기는 것이 좋습니다 (오). 충돌 과정이 자습서를 참조하십시오 :

Recompressing an AVI File

그리고 MSDN documentation합니다.

더 간단한 접근 방식은 실제로 FFMPEG 또는 VLC과 같은 라이브러리를 사용합니다.

1

나는 VirtualDub 소스 코드를 보길 권합니다. VFW를 사용하는 잘 알려진 인코더입니다. 해당 소프트웨어에서 아이디어를 얻을 수 있습니다.

4

자신을 덜어주기 위해 프랭크 (Frank)가 FFMPEG를 사용한다는 제안을 반영합니다. 올바른 인수를 사용하여 별도의 FFMPEG 프로세스를 실행하면 100 % 인코딩 목표를 달성하는 가장 쉬운 방법입니다.

귀하의 다른 옵션은 다음과 같습니다

libavcodec - FFMPEG에 사용되는 중앙 도서관을. 나는 많은 libavcodec의 Windows 바이너리가 사용 가능한 것으로 보이지 않으므로, 최소한 Cygwin이나 MingW 설정이 필요한 자신 만의 컴파일이 필요할 것이라고 경고한다.

ffdshow-tryouts - libavcodec에 기반한 DirectShow 필터로 구현 된 비디오 코덱 라이브러리. 그들은 그것을 조작하기 위해 API을 가지고있는 것처럼 보이지만 그것은 .NET 라이브러리입니다.