2017-01-19 9 views
8

RTP URL에서 RTP 패킷 (오디오 스트리밍)을 스트리밍하려고합니다. 예 : rtp : //@225.0.0.0 같은 장치에 대한 많은 연구 끝에 URL이 내 장치에서 다소 스트리밍되어 https://github.com/maknapp/vlckitSwiftSample으로 재생되었습니다. 스트리밍 된 데이터 만 재생하지만 데이터를 저장할 수있는 기능은 없습니다.iOS 기기의 RTP URL에서 스트리밍하는 RTP 패킷을받는 방법은 무엇입니까? (예 : rtp : //@225.0.0.0)

연구 및 기타 출처에서 RTP를 통해 패킷을 스트리밍하고 iOS 기기에 저장하는 데 유용한 많은 내용과 간단한 정보를 찾을 수 있습니다.

다음 링크를 사용해 보았습니다.

이 두

  • https://github.com/chrisballinger/FFmpeg-iOS

  • https://github.com/kewlbear/FFmpeg-iOS-build-script

      도 POD 문제 다른 프로젝트로 인해 컴파일하거나 RTSP 스트림 대신 RTP 스트림에 나에게 참조를 제공 안내되지 않습니다.

      누군가가 우리에게 그러한 것들을 어떻게 구현할 수 있는지에 대한 지침이나 아이디어를 주면 감사하겠습니다.

  • 답변

    6

    먼저 무엇이 작동하는지 이해해야합니다.

    RTP 스트림의 제작자 즉, 보낸 사람은 아마하고있는 다음

    1. 는 데이터 소스를 사용 : 오디오의 경우,이 마이크 나 오디오 샘플 또는 파일
    2. 수 AAC 또는 Opus와 같은 오디오 코덱을 사용하여 오디오를 인코딩합니다.
    3. 는 RTSP 더 스트림 정보를 제공하기 위해 필요한 시그널링 정보를 제공하기 때문에

    프로토콜 이들 패킷을 전송하는 등의 UDP 등

  • 는 수송층을 사용하여 인코딩 된 오디오 프레임으로부터 RTP 패킷을 생성하는 RTP 패킷 타이 저를 사용한다. 일반적으로 RTP 자체는 정체 제어, 피드백, 동적 비트 전송률 같은 것들이 RTCP의 도움으로 처리되기 때문에 충분하지 않습니다.

    어쨌든, 입력 스트림을 저장하기 위해, 다음을 수행해야합니다

    1. 그것을 밖으로 인코딩 된 오디오 프레임을 얻기 위해 RTP V 디코더를 사용합니다. 직접 작성하거나 타사 구현을 사용할 수 있습니다. 사실 ffmpeg는 대부분의 코덱과 프로토콜에 필요한 모든 코드가 포함 된 큰 프레임 워크입니다. 그러나 귀하의 경우, 간단한 RTP 패킷 해독기를 찾으십시오. 올바른 코덱을 참조 할 수 있도록 특정 코덱에 해당하는 헤더가있을 수 있습니다.

    2. 일단 인코딩 된 프레임에 액세스하면 스트림에서 사용되는 오디오 코덱에 따라 m4a 또는 ogg와 같은 미디어 컨테이너에 같은 코드를 쓸 수 있습니다.스트림을 재생하기 위해

  • , 당신은 다음을 수행해야합니다
    1. 그것을 밖으로 인코딩 된 오디오 프레임을 얻기 위해 RTP V 디코더를 사용합니다. 직접 작성하거나 타사 구현을 사용할 수 있습니다. 사실 ffmpeg는 대부분의 코덱과 프로토콜에 필요한 모든 코드가 포함 된 큰 프레임 워크입니다. 그러나 귀하의 경우, 간단한 RTP 패킷 해독기를 찾으십시오. 당신은 인코딩 된 프레임에 액세스 할 수 후에는 디코딩 프레임에 액세스하면 플랫폼 직접 재생

    2. 동안 그 코덱을 지원하는 경우

    3. , 프레임을 디코딩 또는 확인 (라이브러리로 사용 가능)는 오디오 디코더를 사용 , iOS에서 AVFoundation을 사용하여 동일하게 재생할 수 있습니다. 당신이 그것을 할 수있는 쉬운 방법을 찾고 있습니다 경우

    는 타사 구현을 사용할 수 있습니다와 같은 http://audiokit.io/