2012-11-24 2 views
5

:Qt는 C++ 비디오 라이브러리

1) 기본 비디오의 재생 기능 그것은 모든 일반적인 비디오 포맷을해야

DVD VOB 및 MP4/MKV/AVI (h264, xvid, divx)와 같은 동영상 파일 형식을 지원합니다. 또한 비디오를 자동으로 디인터레이스하여 디스플레이 종횡비에 표시 할 수 있어야합니다.

2) 자르기

그것은 검은 막대를 제거하는 몇 가지 기본 기능 (사용자가 인수를 공급)해야한다.

3) 그것은 메모리에 스냅 샷을하는 기능을 가져야한다

스냅 샷.

4) 프레임 단위 추구

그것은 프레임별로 추구 할 몇 가지 기본적인 기능을해야한다, 예를 들어, prevFrame(), nextFrame(), jumpTo (frame) 및 getNumFrames()입니다.

Qt는 포논 :


  1. 나는 다음과 나는 그들이 지원하는 기능을 찾을 수있는 것과 노력했다. 필요한 모든 형식을 재생하고 올바르게 표시합니다.

  2. No.
  3. 아니요 구현되지 않음 (빈 이미지 반환).

QtFFmpegWrapper :

  1. 부분. DVD VOB를 디인터레이스하지 않습니다. DAR에 DVD VOB를 표시하지 않습니다.
  2. No.
  3. 예.
  4. 부분입니다. MKV (h264)에서 파손되었습니다.

Qt는 VLC :

  1. 예. 필요한 모든 형식을 재생하고 올바르게 표시합니다.
  2. 예. 그래도 작동한다면 시도하지 않았습니다.
  3. 부분입니다. 디스크에만. 편집 : QPixmap :: grabWindow (player-> videoWidget() -> winId())가 작동합니다.
  4. 아니요 밀리 초 단위로만 지정하십시오.

자르기를 제외하고 모든 기능이있는 QVision을 보았습니다. 어쩌면 자르기를 구현하는 것이 그렇게 어렵지는 않습니다. 하지만 내가 조사해야 할 다른 라이브러리가 있는지 궁금합니다. 아니면 뭔가를 놓친 것일 수도 있습니다.이 라이브러리 중 하나를 사용하여 가능합니다. 감사.

+2

프레임이 압축 된 비디오에 실제로 존재하지 않습니다. * 밀리 초 단위의 오프셋 계산은 프레임 속도를 지정할 때 매우 쉽습니다. – CapelliC

+0

@CapelliC * "프레임이 압축 된 비디오에 실제로 존재하지 않습니다."** ** [intra-frame] 대신에 프레임 간 압축을 사용하는 경우 ** (http://en.wikipedia.org/wiki/Intra-frame) – HostileFork

+0

'프레임 별 검색'특히 모든 비디오 시퀀스에서 prevFrame()을 사용할 수 없습니다. 모든 인트라 프레임 (I 프레임)에서는 문제가 없지만 대부분의 라이브러리에서 P 또는 B 프레임 (프레임의 종속성)은 어렵거나 불가능합니다. (자신이 직접 캐시를 만들지 않는 한 캐시가 너무 크면 메모리 크기 문제가 있습니다) – Eric

답변

0

ViscomSoft에서 Movie Player Gold SDK ActiveX 3.6을 고려해 볼 수 있습니다. 사이트에서 언급 한 자르기는 표시되지 않지만 메모리 스냅 샷과 프레임 별 단계가 지원되는 기능 중 하나입니다.

Windows Qt 소프트웨어에서 VideoEdit 및 Screen2Video SDK를 사용하여 매우 잘 작동했습니다.