:오른쪽 선택은 오디오 및 비디오 콘텐츠를 재생하기 위해 내가하고있어
내가 예를 들어 아이폰/아이 패드에 애플에 의해 지원 포함의 나 MKV/MKA 파일이 아닌 오디오 및 비디오 파일을 재생해야 여러 오디오 채널.
저는 미디어 파일에서 오디오 및 비디오 스트림을 찾으려면 libffmpeg를 사용하고 있습니다. 비디오 avcodec_decode_audio3
반환 값은 각각의 기능에 따르고으로 avcodec_decode_video2
오디오 디코딩되고
avcodec_decode_video2
은 다음합니다 - pakcage에서 비디오 비디오 프레임에 대한 정보를 요약AVFrame
구조를 반환 구체적이고data
필드가 이것은 그림/채널 평면에 대한 포인터입니다.avcodec_decode_audio3
- 반환samples
형 int16_t의 *하는 것 같아요 원시 오디오 데이터
그래서 기본적으로 나는이 모든 일을했고 성공적으로 미디어 콘텐츠를 디코딩합니다.
내가해야 할 일 : 사과 서비스를 사용하여 오디오 및 비디오를 재생해야합니다. 수행해야하는 재생은 동영상을 재생하는 동안 오디오 채널의 믹싱을 지원해야합니다. 즉, mkv 파일에 두 개의 오디오 채널과 비디오 채널이 포함되어 있어야합니다. 그래서 어떤 서비스가 나에게 적합한 선택인지 알고 싶습니까? 필자의 연구에 따르면 AudioQueue 서비스는 유용한 오디오 재생이 될 수 있으며 비디오 용 AVFoundation 일 수도 있습니다.
내 케이스의 올바른 기술 즉, 오디오 재생이 가능한 오디오 재생 및 비디오 재생 + 오디오 재생을 도와주세요.
스티브에 대한 답변 주셔서 감사합니다. 기본적으로 내 앱은 오디오 트랙을 믹싱하고 동영상을 재생하는 등의 모든 작업을 수행합니다. 그래서 당신의 답장에서 내가 선택한 것을 이해해야합니다. 1. Audio Queue : 오디오 믹싱 및 재생 2. AudioUnits : 오디오 녹음 3. OpenGL : 비디오 보여주기. 나는 그것을 올바르게 얻었 느냐? – deimus
동시에 녹음 및 재생하는 경우 AudioUnits를 모두 권장합니다. 이 경우 음성 처리 IO 장치를 사용해야합니다. 그렇지 않으면 녹음 내용에 스피커의 출력이 포함됩니다. VP IO 장치는 Acoustic Echo Cancellation을 사용합니다. 예 OpenGL이 더 우수한 성능을 발휘합니다. 다른 API도 먼저 테스트 해 볼 수 있는지 (예 : CoreImage 또는 CoreGraphics) 확인하십시오. –