2012-02-13 2 views
2

파일 기반 비디오 자산의 오디오 스트림을 실시간으로 가로 채서 사운드 트랙에 일부 라이브 효과를 적용하고 믹싱하려고합니다. 비디오가 재생되는 동안 다른 오디오 소스와 함께 사용하십시오.실시간 처리를 위해 비디오 자산의 오디오 트랙 원시 데이터에 액세스

AVPlayer 개체의 오디오 트랙을 가져 와서 별도의 주소 지정이 가능한 입력으로 오디오 그래프에 삽입하고 적절한 오디오 장치를 사용하여 콜백을 통해 처리 한 다음 다시 삽입 할 수 있다는 것이 이상적입니다. 실시간으로 오디오 출력으로 전달할 수 있지만 원본 비디오 자산의 무결성을 유지하면서 손쉬운 방법을 찾을 수는 없습니다. AVPlayer의 오디오 버퍼에 액세스하여 원시 데이터를 사운드 처리 콜백으로 전달하는 방법을 찾을 수 없었습니다.

유일한 접근법은 오디오 트랙과 비디오 트랙을 별도의 파일로 처리 한 다음 AVPlayer로 비디오 트랙을 처리하여 (오디오가 제거 된 상태로) 모든 오디오 병렬로 실행되는 별도의 Core Audio 처리 경로를 거치지 만,이 방법을 사용하면 AV 동기화가 어려워 질뿐만 아니라 번거로운 오프라인 준비 작업이 추가 될 수도 있습니다. 어떤 아이디어 또는 대안적인 접근?

답변

0

AVAudioPlayer는 실시간 기능이 없으므로이 고급 프레임 워크를 가장 낮은 레벨의 Audio Units (및 오디오 그래프)와 직접 연결할 수는 없다고 생각합니다.

오디오 그래프에 파일 플레이어 노드를 구현하는 것이 좋습니다. 이 플레이어 노드는 비디오로부터 오디오를 재생해야한다. 그러나 아마도 새로운 AVAudioEngine이 좋은 접근 방법 일 수 있습니다.하지만이 프레임 워크는 매우 버그가 많으며 현재 베타 버전으로는 잘 설명되어 있지 않습니다. 오디오 신호 실시간 처리는 자체적으로 힘든 주제입니다. 비디오와 결합하면 정말 어렵습니다. :-) 귀하의 신청서에 대해 실현 가능한 해결책을 찾았 으면 알려주십시오.

관련 문제