2012-12-15 2 views
0

RTP를 통해 MPEG2-TS 스트림을 수신하고 있습니다. 그러나 특정 프레임의 끝을 찾을 수 없습니다. MPEG2 스트림 만 RTP를 통해 왔을 때 RTP 헤더의 마커 비트는 프레임의 끝이 있으면 1로 설정되지만이 경우 마커 비트는 항상 0입니다. 아무도 도와 줄 수 있습니까? 프레임 끝을 어떻게 찾을 수 있습니까? MPEG2-TS의 경우?MPEG2 스트림이 RTP를 통해 MPEG-TS 컨테이너로 들어올 때 프레임 끝을 찾는 방법은 무엇입니까?

답변

2

RFC 2250에 따르면 M 비트는 mpeg-ts의 경우 프레임의 끝을 표시해야합니다. (MPEG ES 캡슐화를위한 3.3 RTP Fixed Header) 많은 디코더가 헤더에 삽입하지 않을 수도 있습니다.

프레임의 시작을 찾는 다른 방법은 188 바이트 mpeg-ts 패킷의 헤더를 디코딩하는 것입니다. packet.mpeg-ts에는 "Payload Unit Start Indicator"가 들어 있습니다.

  1. RTP 데이터가 MPEG-TS 패킷의 정수를 포함처럼

    그래서 당신 너 한테이 될 것입니다.
  2. 각 패킷은 0x47로
  3. 검사 시작 '페이로드 유닛 개시 지시자가 == 1 "확인
  4. 경우 각 패킷은"페이로드 부 스타트 인디케이터 "fiels PES 또는 PSI
  5. 무시할 경우, 패킷의 경우 PSI 및 1 단계로 계속 진행하고, 그렇지 않으면 다음 단계로 이동하십시오.
  6. PES 패킷 점검을 위해 "스트림 ID"가 비디오를 새 프레임에 맞춘 경우 확인하십시오.
관련 문제