2014-03-13 4 views
2

HTTP 라이브 스트리밍에서 사용하기 위해 CAF 파일에서 변환 된 여러 AAC 파일이 있습니다. 스트림은 작동하지만 각 AAC 파일 간에는 작은 간격이 있습니다. 이러한 차이는 CAF에서 코드 변환 될 때 AAC 파일에 첨부 된 "Priming"및 "Remainder"프레임 때문에 발생한다는 것을 알고 있습니다.HTTP 라이브 스트리밍을위한 CAF에서 AAC로 변환

제 질문은이 간격을 제거 할 수있는 방법이 있습니까? 또는 오디오 플레이어 (VLC, JWPlayer)가 갭을 건너 뛰도록 이해할 수 있도록 FFMpeg를 사용하여 파일을 포장하십시오 (m4a에서 가능할 수도 있습니다)?

답변

1

프라이밍 프레임을 제거하려고 할 수 있습니다. 스트림은 여전히 ​​재생 가능합니다 (모든 AAC 프레임은 ADTS 헤더가 있다고 가정 할 때 임의로 액세스 할 수 있습니다).하지만 인코더가 예열되는 동안 일부 손실 된 오디오가 발생할 수 있습니다. 그것은 지각 할 수도 있고 그렇지 않을 수도 있습니다. 이를 수행하는 가장 좋은 방법은 원시 형식의 오디오를 연결하는 것이므로 CAF를 원시 PCM 연결 PCM으로 디코딩하고 AAC를 하나의 파일로 인코딩합니다.

+0

이렇게하는 것이 문제는 iOS에서 수행되고 실시간으로 서버에 업로드되어야한다는 것입니다. AAC가 완료 될 때까지 기다릴 수 없기 때문에 장치의 마이크 (예 : iPhone)에서 마이크를 수신 할 때 세그먼트로 업로드해야합니다. – MouseTech

+0

완료 될 때까지 기다리지 마십시오. 가능할 때 조각으로 보냈다. – szatmary

+0

내가 따를지는 잘 모르겠다. 들어오는 CAF를 원시 PCMS로 디코딩하고 PCMS를 함께 연결 한 다음 concat 파일을 단일 AAC 파일로 인코딩합니다. 서버에 보내지는 큰 AAC 파일 하나만 남겨 두지 않겠습니까? – MouseTech