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