Unable to Video Transcode a UDP mpegts in gstreamer

46 views Asked by At

I've been fighting with this problem for quite a while now. I have mpegts stream with klv-metadata coming from udpsrc.

To test i use a klv video file and i send to stream

ffprobe testvideoklv.ts

Input #0, mpegts, from 'testvideoklv.ts':
Duration: 01:52:21.56, start: 2.275000, bitrate: 693 kb/s Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg, progressive), 704x576, 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:1[0x101]: Data: klv (KLVA / 0x41564C4B)

Next i send stream with gstreamer with this pipe

gst-launch-1.0 -v filesrc location=testvideoklv.ts ! tsparse set-timestamps=true ! udpsink host=127.0.0.1 port=2002

If i use ffprobe to analise stream i see video and metadata

Program 1 Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt470bg, progressive), 704x576, 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:1[0x101]: Data: klv (KLVA / 0x41564C4B)

I tried this pipes to transcode video from h264 to h265

gst-launch-1.0 -e udpsrc address=127.0.0.1 port=2002 ! tsparse set-timestamps=true ! tsdemux name=demux demux. ! queue ! decodebin ! videoconvert ! videorate ! videoscale ! x265enc ! mpegtsmux name=mux demux. ! queue ! meta/x-klv ! mux. mux. ! udpsink host=127.0.0.1 port=5005

gst-launch-1.0 udpsrc address=127.0.0.1 port=2002 ! tsdemux name=demux mpegtsmux name=mux demux. ! queue ! h264parse ! avdec_h264 ! videoconvert ! x265enc ! mux. demux. ! queue ! meta/x-klv ! mux. mux. ! udpsink host=127.0.0.1 port=5005

Could you tell me what is wrong in the last two pipes??

I wanted a pipe equivalent to that of ffmpeg but with gstreamer

ffmpeg -re -i udp://127.0.0.1:2002 -map 0:v c:v libx265 -map 0:d c:d copy -f mpegts udp://127.0.0.1:5005?pkt_size=188

THANKS

Transcode to video mpegts from h264 to h265

0

There are 0 answers