ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RTMP (Real Time Messaging Protocol)
    Programming/Android 2022. 3. 31. 21:18

    RTMP (Real Time Messaging Protocol)

    • 어도비 스시템즈사의 독점 통신 규약이다.
    • RTMP는 오디오, 비디오 및 기타 데이터를 인터넷을 통해 스트리밍 할 때 쓰인다.
    • RTMP는 어도비 플래시 플레이어와 서버 사이의 통신에 이용된다. 현재는 플래시 뿐만 아니라 다른 응용프로그램에서도 쓰이고 있다.
    • RTMP (기본): 1935번 포트 사용, 암호화되지 않은 RTMP, 혹시나 1935번 포트로 시도해서 실패하면 443 포트(RTMPS)나 80 포트(RTMPT)로 재시도함.

    RTMP 동작

    순수 TCP 기반의 RTMP 프로토콜은 접속을 지속적으로 유지하는 데 기여한다. 또 실시간 통신을 한다. 더 큰 덩어리의 정보를 보낼 수 있는 동안, 부가적으로 비디오 및 오디오 스트림을 부드럽게 전달하기 위해, 이 프로토콜은 비디오 및 데이터를 여러 조각들로 나누기도 한다.

    이 조각들의 크기는 클라이언트 및 서버 간에 유동적으로 결정된다. 동적 크기 조절은 비활성화할 수 있다. 비디오 및 기타 데이터에 대한 스트림 조각들의 기본 사이즈는 128Byte이다. 오디오에 대한 스트림 조각 기본 사이즈는 64Byte이다. 여러 개의 스트림이 있을 때, 각각의 스트림으로 부터 깨내온 조각들은 인터리빙(interleaving)되며, 한 접속 내에서 다중화된다.

    데이터 덩어리(chunk) 크기가 클 경우, RTMP 프로토콜은 조각 당 1바이트 헤더만 실어 보내기도 한다. 그렇게 함으로써 부하를 상당 부분 줄일 수 있다. 그러나 실제 조각들은 인터리빙 되지 않는다. 대신, 인터리빙과 다중화는 패킷 수준에서 수행된다. 활성화된 여러 다른 채널에 실린 RTMP 패킷들은 각각의 채열의 대역폭, 레이턴시 그리고 기타 QoS 요구에 맞게 인터리빙 된다. 이렇게 인터리빙 된 패킷들은 다시 나눌 수 없으며, 조각 수준에서 다시 인터리빙되지 않는다.

    RTMP 프로토콜은 패킷들을 주고 받을 수 있는 여러 개의 채널들을 정의한다. 각 채널들은 다른 채널에 대해 독립적으로 동작한다. 예를 들어, RPC 요청과 응답에 할당된 채널이 있고, 또 비디오 스트림 데이터에 대한 채널이 있고, 오디오 스트림 데이터에 대한 채널이 있고, 아웃-오브-밴드(out-of-band) 제어 메시지(조각 크기 결정 등)들에 대한 채널이 있는 식이다. 일반적으로 하나의 RTMP 세션 내에, 어떤 시점에서 여러 개의 채널이 동시에 활성화될 수 있다. RTMP 데이터가 패킷화될 때, 패킷 헤더가 생성된다. 패킷 헤더는 채널의 아이디(id), 패킷의 타임스탬프(필요한 경우에는), 패킷 페이로드 크기 등을 담고 있다. 패킷 헤더 다음에는 패킷 페이로드가 온다. 패킷 페이로드는 현재 클라이언트와 서버 간 약속된 조각 크기만큼씩 조각으로 쪼개진다. 패킷 헤더 자체가 조각나는 경우는 없다. 패킷의 첫 번째 조각 크기에 헤더 크기가 더해지지 않는다. 다시 말해 실제 패킷 페이로드만이 조각으로 쪼개진다.

    더 상위 레벨에서, RTMP 프로토콜은 MP3 및 플래시 비디오 멀티미디어 스트림을 캡슐화한다. 액션 메시지 포맷을 이용하여 RPC를 수행하기도 한다.[2]


    • 인터리빙 : 사전적 의미는 “끼워 넣기”이다.
      • IP 네트워크를 통하여 트래픽을 전송할 때 발생할 수 있는 군집 에러를 랜덤 에러로 변환하여 에러 정정을 용이하게 사용하기 위한 기법
      • 디지털 무선 전송시스템에서 Interleaving
        • 데이터 열의 순서를 일정 단위로 재배열시킴으로써 순간적인 잡음에 의하여 데이터 열 중간의 비트가 손실되더라도 그 영향을 국부적으로 나타나게하여 그것을 복구할 수 있게함
        • 즉 어떤 한 시점에서 간섭 등으로 정보가 손실된 채 신호를 수신한 경우에, 이 신호를 다시 원래의 순서대로 재배열해 봄으로써 손실된 정보가 분산되며 단지 부분적으로만 정보가 손실되게 됨
        • 메세지 스트림 비트를 램덤하게 하는 기술이며, 따라서 이것은 채널에 의해 야기된 연집 에러 오류를 랜덤 에러 오류로 변환시킴

    인터리빙

    • 다중화 (먹싱 or 멀티 플렉싱)
      • 두개 이상의 로우레벨의 채널을 하나의 고수준 채널로 통합하는 과정

    스트림

    • 실제 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미합니다.
    • 즉, 스트림은 운영체제에 의해 생성되는 가상의 연결고리를 의미하며 중간 매개자 역할을 합니다.
    • 스트림은 한 방향으로만 통신할 수 있으므로, 입력과 출력을 동시에 처리할 수 는 없습니다.
    • 따라서 스트림은 사용목적에 따라 입력스트림과 출력스트림으로 구분됩니다.

    코딩교육 티씨피스쿨

    [rtmp]

    [안드로이드] 네트워크 심화 ( Stream )

    RTMP (Real Time Messaging Protocol)

    • 어도비 스시템즈사의 독점 통신 규약이다.
    • RTMP는 오디오, 비디오 및 기타 데이터를 인터넷을 통해 스트리밍 할 때 쓰인다.
    • RTMP는 어도비 플래시 플레이어와 서버 사이의 통신에 이용된다. 현재는 플래시 뿐만 아니라 다른 응용프로그램에서도 쓰이고 있다.
    • RTMP (기본): 1935번 포트 사용, 암호화되지 않은 RTMP, 혹시나 1935번 포트로 시도해서 실패하면 443 포트(RTMPS)나 80 포트(RTMPT)로 재시도함.

    RTMP 동작

    순수 TCP 기반의 RTMP 프로토콜은 접속을 지속적으로 유지하는 데 기여한다. 또 실시간 통신을 한다. 더 큰 덩어리의 정보를 보낼 수 있는 동안, 부가적으로 비디오 및 오디오 스트림을 부드럽게 전달하기 위해, 이 프로토콜은 비디오 및 데이터를 여러 조각들로 나누기도 한다.

    이 조각들의 크기는 클라이언트 및 서버 간에 유동적으로 결정된다. 동적 크기 조절은 비활성화할 수 있다. 비디오 및 기타 데이터에 대한 스트림 조각들의 기본 사이즈는 128Byte이다. 오디오에 대한 스트림 조각 기본 사이즈는 64Byte이다. 여러 개의 스트림이 있을 때, 각각의 스트림으로 부터 깨내온 조각들은 인터리빙(interleaving)되며, 한 접속 내에서 다중화된다.

    데이터 덩어리(chunk) 크기가 클 경우, RTMP 프로토콜은 조각 당 1바이트 헤더만 실어 보내기도 한다. 그렇게 함으로써 부하를 상당 부분 줄일 수 있다. 그러나 실제 조각들은 인터리빙 되지 않는다. 대신, 인터리빙과 다중화는 패킷 수준에서 수행된다. 활성화된 여러 다른 채널에 실린 RTMP 패킷들은 각각의 채열의 대역폭, 레이턴시 그리고 기타 QoS 요구에 맞게 인터리빙 된다. 이렇게 인터리빙 된 패킷들은 다시 나눌 수 없으며, 조각 수준에서 다시 인터리빙되지 않는다.

    RTMP 프로토콜은 패킷들을 주고 받을 수 있는 여러 개의 채널들을 정의한다. 각 채널들은 다른 채널에 대해 독립적으로 동작한다. 예를 들어, RPC 요청과 응답에 할당된 채널이 있고, 또 비디오 스트림 데이터에 대한 채널이 있고, 오디오 스트림 데이터에 대한 채널이 있고, 아웃-오브-밴드(out-of-band) 제어 메시지(조각 크기 결정 등)들에 대한 채널이 있는 식이다. 일반적으로 하나의 RTMP 세션 내에, 어떤 시점에서 여러 개의 채널이 동시에 활성화될 수 있다. RTMP 데이터가 패킷화될 때, 패킷 헤더가 생성된다. 패킷 헤더는 채널의 아이디(id), 패킷의 타임스탬프(필요한 경우에는), 패킷 페이로드 크기 등을 담고 있다. 패킷 헤더 다음에는 패킷 페이로드가 온다. 패킷 페이로드는 현재 클라이언트와 서버 간 약속된 조각 크기만큼씩 조각으로 쪼개진다. 패킷 헤더 자체가 조각나는 경우는 없다. 패킷의 첫 번째 조각 크기에 헤더 크기가 더해지지 않는다. 다시 말해 실제 패킷 페이로드만이 조각으로 쪼개진다.

    더 상위 레벨에서, RTMP 프로토콜은 MP3 및 플래시 비디오 멀티미디어 스트림을 캡슐화한다. 액션 메시지 포맷을 이용하여 RPC를 수행하기도 한다.[2]


    • 인터리빙 : 사전적 의미는 “끼워 넣기”이다.
      • IP 네트워크를 통하여 트래픽을 전송할 때 발생할 수 있는 군집 에러를 랜덤 에러로 변환하여 에러 정정을 용이하게 사용하기 위한 기법
      • 디지털 무선 전송시스템에서 Interleaving
        • 데이터 열의 순서를 일정 단위로 재배열시킴으로써 순간적인 잡음에 의하여 데이터 열 중간의 비트가 손실되더라도 그 영향을 국부적으로 나타나게하여 그것을 복구할 수 있게함
        • 즉 어떤 한 시점에서 간섭 등으로 정보가 손실된 채 신호를 수신한 경우에, 이 신호를 다시 원래의 순서대로 재배열해 봄으로써 손실된 정보가 분산되며 단지 부분적으로만 정보가 손실되게 됨
        • 메세지 스트림 비트를 램덤하게 하는 기술이며, 따라서 이것은 채널에 의해 야기된 연집 에러 오류를 랜덤 에러 오류로 변환시킴

    인터리빙

    • 다중화 (먹싱 or 멀티 플렉싱)
      • 두개 이상의 로우레벨의 채널을 하나의 고수준 채널로 통합하는 과정

    스트림

    • 실제 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미합니다.
    • 즉, 스트림은 운영체제에 의해 생성되는 가상의 연결고리를 의미하며 중간 매개자 역할을 합니다.
    • 스트림은 한 방향으로만 통신할 수 있으므로, 입력과 출력을 동시에 처리할 수 는 없습니다.
    • 따라서 스트림은 사용목적에 따라 입력스트림과 출력스트림으로 구분됩니다.

    코딩교육 티씨피스쿨

    [rtmp]

    [안드로이드] 네트워크 심화 ( Stream )

    RTMP (Real Time Messaging Protocol)

    • 어도비 스시템즈사의 독점 통신 규약이다.
    • RTMP는 오디오, 비디오 및 기타 데이터를 인터넷을 통해 스트리밍 할 때 쓰인다.
    • RTMP는 어도비 플래시 플레이어와 서버 사이의 통신에 이용된다. 현재는 플래시 뿐만 아니라 다른 응용프로그램에서도 쓰이고 있다.
    • RTMP (기본): 1935번 포트 사용, 암호화되지 않은 RTMP, 혹시나 1935번 포트로 시도해서 실패하면 443 포트(RTMPS)나 80 포트(RTMPT)로 재시도함.

    RTMP 동작

    순수 TCP 기반의 RTMP 프로토콜은 접속을 지속적으로 유지하는 데 기여한다. 또 실시간 통신을 한다. 더 큰 덩어리의 정보를 보낼 수 있는 동안, 부가적으로 비디오 및 오디오 스트림을 부드럽게 전달하기 위해, 이 프로토콜은 비디오 및 데이터를 여러 조각들로 나누기도 한다.

    이 조각들의 크기는 클라이언트 및 서버 간에 유동적으로 결정된다. 동적 크기 조절은 비활성화할 수 있다. 비디오 및 기타 데이터에 대한 스트림 조각들의 기본 사이즈는 128Byte이다. 오디오에 대한 스트림 조각 기본 사이즈는 64Byte이다. 여러 개의 스트림이 있을 때, 각각의 스트림으로 부터 깨내온 조각들은 인터리빙(interleaving)되며, 한 접속 내에서 다중화된다.

    데이터 덩어리(chunk) 크기가 클 경우, RTMP 프로토콜은 조각 당 1바이트 헤더만 실어 보내기도 한다. 그렇게 함으로써 부하를 상당 부분 줄일 수 있다. 그러나 실제 조각들은 인터리빙 되지 않는다. 대신, 인터리빙과 다중화는 패킷 수준에서 수행된다. 활성화된 여러 다른 채널에 실린 RTMP 패킷들은 각각의 채열의 대역폭, 레이턴시 그리고 기타 QoS 요구에 맞게 인터리빙 된다. 이렇게 인터리빙 된 패킷들은 다시 나눌 수 없으며, 조각 수준에서 다시 인터리빙되지 않는다.

    RTMP 프로토콜은 패킷들을 주고 받을 수 있는 여러 개의 채널들을 정의한다. 각 채널들은 다른 채널에 대해 독립적으로 동작한다. 예를 들어, RPC 요청과 응답에 할당된 채널이 있고, 또 비디오 스트림 데이터에 대한 채널이 있고, 오디오 스트림 데이터에 대한 채널이 있고, 아웃-오브-밴드(out-of-band) 제어 메시지(조각 크기 결정 등)들에 대한 채널이 있는 식이다. 일반적으로 하나의 RTMP 세션 내에, 어떤 시점에서 여러 개의 채널이 동시에 활성화될 수 있다. RTMP 데이터가 패킷화될 때, 패킷 헤더가 생성된다. 패킷 헤더는 채널의 아이디(id), 패킷의 타임스탬프(필요한 경우에는), 패킷 페이로드 크기 등을 담고 있다. 패킷 헤더 다음에는 패킷 페이로드가 온다. 패킷 페이로드는 현재 클라이언트와 서버 간 약속된 조각 크기만큼씩 조각으로 쪼개진다. 패킷 헤더 자체가 조각나는 경우는 없다. 패킷의 첫 번째 조각 크기에 헤더 크기가 더해지지 않는다. 다시 말해 실제 패킷 페이로드만이 조각으로 쪼개진다.

    더 상위 레벨에서, RTMP 프로토콜은 MP3 및 플래시 비디오 멀티미디어 스트림을 캡슐화한다. 액션 메시지 포맷을 이용하여 RPC를 수행하기도 한다.[2]


    • 인터리빙 : 사전적 의미는 “끼워 넣기”이다.
      • IP 네트워크를 통하여 트래픽을 전송할 때 발생할 수 있는 군집 에러를 랜덤 에러로 변환하여 에러 정정을 용이하게 사용하기 위한 기법
      • 디지털 무선 전송시스템에서 Interleaving
        • 데이터 열의 순서를 일정 단위로 재배열시킴으로써 순간적인 잡음에 의하여 데이터 열 중간의 비트가 손실되더라도 그 영향을 국부적으로 나타나게하여 그것을 복구할 수 있게함
        • 즉 어떤 한 시점에서 간섭 등으로 정보가 손실된 채 신호를 수신한 경우에, 이 신호를 다시 원래의 순서대로 재배열해 봄으로써 손실된 정보가 분산되며 단지 부분적으로만 정보가 손실되게 됨
        • 메세지 스트림 비트를 램덤하게 하는 기술이며, 따라서 이것은 채널에 의해 야기된 연집 에러 오류를 랜덤 에러 오류로 변환시킴

    인터리빙

    • 다중화 (먹싱 or 멀티 플렉싱)
      • 두개 이상의 로우레벨의 채널을 하나의 고수준 채널로 통합하는 과정

    스트림

    • 실제 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미합니다.
    • 즉, 스트림은 운영체제에 의해 생성되는 가상의 연결고리를 의미하며 중간 매개자 역할을 합니다.
    • 스트림은 한 방향으로만 통신할 수 있으므로, 입력과 출력을 동시에 처리할 수 는 없습니다.
    • 따라서 스트림은 사용목적에 따라 입력스트림과 출력스트림으로 구분됩니다.

    코딩교육 티씨피스쿨

    [rtmp]

    [안드로이드] 네트워크 심화 ( Stream )

    'Programming > Android' 카테고리의 다른 글

    동영상의 이해  (0) 2022.03.31
    Android Thread  (0) 2020.12.18
    WebRTC  (0) 2020.12.04
    [Android] 해상도와 dpi, px, dp, dip, sp  (0) 2020.12.01
    Android LifeCycle  (0) 2020.11.30
Designed by Tistory.