How to convert MPEG2-TTS to MPEG2-TS format to playback using ffplay

44 Views Asked by At

I know some OSS such as ffmpeg or gstreamer don't support to play-back MPEG2-TTS stream. Then, I tried to convert 192 bytes TTS packet to 188 bytes TS packet by deleting first 4 bytes like:

def conv_tts2ts(rtp_payload):

    payload_len = len(rtp_payload)
    if payload_len % 192 != 0:
        raise

    pkt_num = int(payload_len / 192)
    ts_data = bytearray()
    for i in range(pkt_num):
        spos = 192 * i
        epos = spos + 192
        tmp = rtp_payload[spos:epos]
        ts_data.extend(tmp[4:])

    return ts_data

# after this, send ts_data with RTP header received from MPEG2-TTS streamer via UDP/IP.

However, ffplay and ffprobe don't reaction.

I expect to be able to play-back using ffplay as MPEG2-TS format. Please tell me how to convert TTS to TS in order to deocde by ffmpeg?

0

There are 0 best solutions below