2011-04-08 6 views
6

Windows에 익숙한 Mac OS X의 새로운 기능. Windows에는 DirectShow, 내장 된 필터, COM 프로그래밍 및 GraphEdit이 포함되어있어 코드로 작성한 그래프에서 매우 빠른 프로토 타이핑 및 스누핑을 수행 할 수 있습니다.DirectShow, GraphEdit에 해당하는 Mac OS X

이제 카메라, 웹캠, 마이크, 색 공간, 파일, 분할, 동기화, 렌더링, 파일 읽기, 파일 저장 및 많은 작업을 수행하기 위해 Mac을 사용하려고합니다. DirecShow에서 라이브 퍼포먼스를위한 어플리케이션을 함께 사용할 때 당연합니다. Mac 측에서 지금까지 나는 아무것도 발견하지 못했습니다! 어디에보아야할지 모르겠다. 또는 미디어 조작의 용이함으로 맥의 명성을 굳건히 묶어 놓고, 미디어 조작으로 빌딩 블록을 망가뜨릴 수있는 일관된 프로그래밍 기능으로 가장 힘든 시간을 보내고있다.

나는 gstreamer 또는 일부 라이브러리를 QT에 사용하는 것에 대한 약한 제안을 보았지만, 이것이 Apple의 갈 길이라고 믿게 만들 수는 없습니다. 그리고 저는 퀵타임 문서를 보았습니다.하지만 전환, 스프라이트, 브로드 캐스팅을하지 않을 것입니다 ...

두뇌가 DirectShow에서 훈련 받았다는 것을 의미하는 것은 저는 Apple이 DirectShow- 같은 기능을합니다. 즉, 적절한 키워드를 모르며 어디서 볼지조차 모릅니다. 서적? 몇 샀어. 이제는 언니의 결혼 비디오를 편집 할 수있는 코드를 작성할 수 있습니다 (이 주제에 대해 제대로 검토 할 수 없다면 다음에 그게 무엇인지 물어볼 수는 있습니다). 그러나 어떤 필터를 사용할 수 있는지 식별 할 수 있습니다. 그들을 함께 묶는 방법 ... 아무것도. 제안?

+0

QuickTime이 맞다고 생각합니다. QT는 기본 사항입니다 (iTunes의 두건). (http://developer.apple.com/quicktime/) [전체 화면 비디오 재생]에 대한 샘플 코드를 확인하십시오. (http://developer.apple.com/ library/mac/# samplecode/MyMediaPlayer/소개/Intro.html) –

+1

아니요! 내가 틀렸다. 필터를 언급하는 [Core Video] (http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/CoreVideo/CVProg_Intro/CVProg_Intro.html)를 사용해보십시오. –

+0

포인터를 가져 주셔서 감사합니다. Core Video를 처음 보았을 때 나를 잘못 판단했을 수 있습니다. 내가 들어간 방향이 아닌 비디오에서 프레임을 추출하는 것이 좋다고 말한 것 같습니다. –

답변

10

비디오 처리는 현재 Mac에서 엄청난 변화를 겪고 있습니다. QuickTime은 매우 오래되었지만 크고 강력하므로 지난 5 년 동안 점진적 교체 프로세스를 거쳤습니다.

즉, QTKit은 앞으로 지원되는 QuickTime 하위 집합 (캡처, 재생, 형식 변환 및 기본 비디오 편집)입니다. 레거시 퀵타임 API는 당분간 아직 존재하며, 주요 기능이 다른 곳에서도 사용 가능할 때까지는 최소한 남아있을 것이다. 그러나 32 비트 만 가능하다. 일부 관련 동영상의 경우 장소에서 사용해야 할 수도 있습니다.

현재 iOS는 AV Foundation으로 처음부터 시작할 수 있으므로 Mac보다 앞서 있습니다. 맥 미디어 프레임 워크의 미래는 아마도 AV Foundation (QTKit가 최상위의 경량 임)이거나 매우 비슷하게 보이는 QTKit의 확장 일 것입니다.

오디오의 경우 Mac 및 iOS에있는 Core Audio가 있으며 곧 삭제되지는 않습니다. 꽤 강력하지만 다소 둔한 곳입니다. 다행스럽게도 온라인 지원은 매우 좋습니다. mailing list은 필수 리소스입니다.

필터 및 프레임 레벨 처리의 경우 Core Image과 마찬가지로 Core Video이 표시됩니다. 모션 그래픽의 경우 Quartz Composer에 그래픽 편집기와 자신 만의 패치를 추가 할 수있는 플러그인 아키텍처가 포함되어 있습니다. 프로그래밍 방식의 애니메이션 및 렌더링 모델 (OpenGL, Quartz, 비디오 등)을 쉽게 믹싱하려면 Core Animation이 필요합니다.

물론이 모든 것 외에도 내장 소스가 원하는 것을하지 않는 오픈 소스 라이브러리를 사용할 수있는 이유가 없습니다.

퀵타임 (및 QTKit이)에서

는, 오디오 및 비디오와 같은 개별 데이터 유형이 트랙으로 표시됩니다 :


은 아래에 코멘트를 해결하기 위해.QuickTime이 비디오 파일 형식뿐만 아니라 오디오를 열 수 있다는 것이 명백하지 않을 수도 있습니다. 오디오와 비디오를 결합하는 일반적인 방법은 다음과 같습니다.

  1. 비디오 파일로 QTMovie을 만듭니다.
  2. 오디오 파일로 QTMovie을 만듭니다.
  3. 오디오를 나타내는 QTTrack 개체를 가져 와서 비디오가 포함 된 QTMovie에 추가하십시오.
  4. 동영상을 평평하게 만들기 때문에 다른 동영상에 대한 참조가 포함되지 않고 실제로는 오디오 데이터가 포함됩니다.
  5. 동영상을 디스크에 씁니다.

Here's an example from Blender. end_qt 함수에서 A/V muxing이 어떻게 수행되는지 볼 수 있습니다. 거기에 Core Audio를 사용하는 경우도 있습니다 (AudioConverter*). (일부 클래식 QuickTime 내보내기 코드는 quicktime_export.c에 있지만 오디오는 아닌 것 같습니다.)

+0

먼저, 그러한 종합적인 정보에 대해 감사드립니다. 나는 아직도 그 주위에 내 마음을 얻으려고 노력하고있다. 하나의 기술이 다른 기술을 대체하고있는 순간을 위해 마련하십시오. 움직이는 조각이 너무 많아서주의를 기울여야 할 많은 영역이있는 것처럼 보입니다. 이런 식으로 DirectShow와 철학이 매우 다른 것처럼 보입니다. 일부 오디오를 처리하고 일부 비디오를 처리 한 다음 참가하여 캡처 시간을 기반으로 동기화되었는지 확인하려면 어디에서 볼 수 있습니까? 그것은 DirectShow에서 명백합니다. Mac 측에서 이와 같은 종류의 조직이 있으면 외면적으로 보입니다. –

+0

제 수정 된 답변을 참조하십시오 ... 제 응답이 너무 오랫동안 댓글을 달았습니다. –