.TS 파일에서 UDP를 통한 TS 스트림 전송

.TS 파일에서 UDP를 통한 TS 스트림 전송

UDP를 통해 ts 스트림(.ts 파일)을 전송하고 싶습니다.

저는 아래 파이프라인을 사용했습니다.

gst-launch-1.0 filesrc =location=a.ts ! tsparse ! rtpmp2tpay ! udpsink host="IP" port="port"

하지만 몇 초 안에 스트림이 종료됩니다.

수신자 측에서는 일부 데이터만 수신하고 있습니다.

filesrc에 대해 do-timestamp=true를 설정하면 경고가 발생합니다.

0:00:00.051245178  4751       0xe494a0 WARN        mpegtspacketizer mpegtspacketizer.c:1388:calculate_skew: delta - skew: 5124091:34:25.044918089 too big, reset skew

TS 파일은 yuv 파일의 디코드와 mpegtsmux에 의해 생성됩니다.

해당 TS 파일은 내가 직접 역다중화 및 디코딩할 때 제대로 작동합니다.

하지만 UDP를 통해 해당 ts 파일을 스트리밍하면 이 문제가 발생합니다.

UDP를 통해 TS 스트림을 어떻게 전송할 수 있나요?

답변1

MPEG2-TS는 DTS/PTS 디코딩 및 프리젠테이션을 위해 타임스탬프를 전달합니다. 타임스탬프 재스탬프를 파이프라인에 삽입해야 합니다.

디코딩할 때 로컬 디코더는 타임스탬프의 상대적 시간 정보만 사용하거나 완전히 버리고 비트 전송률에서 타이밍을 다시 계산할 수 있습니다. 이는 대부분의 거의 모든 스트림에서 잘 작동합니다(VLC는 수년간 타임스탬프를 따르지 않았으며 최근 릴리스에서만 배웠습니다).

어쩌면 누군가가 이 답변을 편집하고 파이프라인에 삽입할 올바른 키워드를 제공할 수도 있습니다.

관련 정보