MP4 file from MPEG-2 PS

AniketH nymano86 at aol.com
Tue Jan 5 07:35:20 UTC 2021


Hi,
I'm having difficulty to generate an MP4 file from an RTP stream. I've
written a customised plugin which depayloads MPEG2 PS stream from RTP
packets. Further I'm using mpegpsdemux to get video and then trying to
decode and save it. When I save the dump directly from demuxer, I get a
playable video but without any picture. So I though I need to decode it
properly but the video generated is corrupted. Following is my pipeline:

gst-launch-1.0 -e udpsrc address=x.x.x.x port=xxxx
caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)MP2P"
! rtpbin name=recv_rtp ! rtpmp2pdepay ! mpegpsdemux name=demux
demux.video_e0 ! mpegvideoparse ! mpeg2dec ! videoconvert ! deinterlace !
videoconvert' ! video/x-raw ! openh264enc ! h264parse !
video/x-h264,stream-format=avc ! mp4mux ! filesink location=./stream.mp4

I can confim that data is resolved and sent ahead by the demuxer. The
decoder seems to be receiving continuous frames. *Attaching an instance of
decoder logs:*
0:00:00.257842190   950 0x7f9410003450 LOG                 mpeg2dec
gstmpeg2dec.c:1071:gst_mpeg2dec_handle_frame:<mpeg2dec0> calling parse
0:00:00.258341745   950 0x7f9410003450 DEBUG               mpeg2dec
gstmpeg2dec.c:1073:gst_mpeg2dec_handle_frame:<mpeg2dec0> parse state 0
0:00:00.258468858   950 0x7f9410003450 LOG                 mpeg2dec
gstmpeg2dec.c:1055:gst_mpeg2dec_handle_frame:<mpeg2dec0> received frame 2,
timestamp 99:99:99.999999999, duration 0:00:00.033366666
0:00:00.258476930   950 0x7f9410003450 LOG                 mpeg2dec
gstmpeg2dec.c:1066:gst_mpeg2dec_handle_frame:<mpeg2dec0> calling
mpeg2_buffer
0:00:00.258484196   950 0x7f9410003450 LOG                 mpeg2dec
gstmpeg2dec.c:1068:gst_mpeg2dec_handle_frame:<mpeg2dec0> calling
mpeg2_buffer done
0:00:00.258490844   950 0x7f9410003450 LOG                 mpeg2dec
gstmpeg2dec.c:1071:gst_mpeg2dec_handle_frame:<mpeg2dec0> calling parse
0:00:00.258524666   950 0x7f9410003450 DEBUG               mpeg2dec
gstmpeg2dec.c:1073:gst_mpeg2dec_handle_frame:<mpeg2dec0> parse state 7
0:00:00.258534724   950 0x7f9410003450 DEBUG               mpeg2dec
gstmpeg2dec.c:1117:gst_mpeg2dec_handle_frame:<mpeg2dec0>
display_fbuf:0x5575285ac520, discard_fbuf:0x5575285ac520
0:00:00.258542263   950 0x7f9410003450 DEBUG               mpeg2dec
gstmpeg2dec.c:972:handle_slice:<mpeg2dec0> fbuf:0x5575285ac520
display_picture:0x5575285ac42c current_picture:0x5575285ac42c fbuf->id:1
0:00:00.258551938   950 0x7f9410003450 DEBUG               mpeg2dec
gstmpeg2dec.c:984:handle_slice:<mpeg2dec0> picture flags: 11, type: 3,
keyframe: 0
0:00:00.258560531   950 0x7f9410003450 DEBUG               mpeg2dec
gstmpeg2dec.c:1002:handle_slice:<mpeg2dec0> dropping buffer, discont state 2
0:00:00.258590778   950 0x7f9410003450 LOG                 mpeg2dec
gstmpeg2dec.c:588:gst_mpeg2dec_discard_buffer:<mpeg2dec0> Discarded local
info for frame 1
0:00:00.258599607   950 0x7f9410003450 LOG                 mpeg2dec
gstmpeg2dec.c:1071:gst_mpeg2dec_handle_frame:<mpeg2dec0> calling parse
0:00:00.258608193   950 0x7f9410003450 DEBUG               mpeg2dec
gstmpeg2dec.c:1073:gst_mpeg2dec_handle_frame:<mpeg2dec0> parse state 4
0:00:00.258616729   950 0x7f9410003450 DEBUG               mpeg2dec
gstmpeg2dec.c:900:handle_picture:<mpeg2dec0> handle picture type B
0:00:00.258624862   950 0x7f9410003450 DEBUG               mpeg2dec
gstmpeg2dec.c:902:handle_picture:<mpeg2dec0> picture     , frame 2
0:00:00.258635986   950 0x7f9410003450 DEBUG               mpeg2dec
gstmpeg2dec.c:930:handle_picture:<mpeg2dec0> picture:      tff                   
fields:2 ts:99:99:99.999999999
0:00:00.258648428   950 0x7f9410003450 DEBUG               mpeg2dec
gstmpeg2dec.c:941:handle_picture:<mpeg2dec0> set_buf: 0x7f93ffb300a0
0x7f93ffb846a0 0x7f93ffb99820, frame 2
0:00:00.258656861   950 0x7f9410003450 LOG                 mpeg2dec
gstmpeg2dec.c:560:gst_mpeg2dec_save_buffer:<mpeg2dec0> Saving local info for
frame 2

*openh264enc seems to be stuck:*
0:00:00.028496971   964 0x55ed3e99a130 DEBUG            openh264enc
gstopenh264enc.cpp:646:gst_openh264enc_start:<openh264enc0> start
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
0:00:00.607504431   964 0x7fdbe0003450 DEBUG            openh264enc
gstopenh264enc.cpp:694:gst_openh264enc_set_format:<openh264enc0>
gst_e26d4_enc_set_format called, caps: video/x-raw, format=(string)I420,
width=(int)720, height=(int)480, interlace-mode=(string)progressive,
multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)8/9, chroma-site=(string)mpeg2,
colorimetry=(string)bt601, framerate=(fraction)60000/1001
0:00:00.607546613   964 0x7fdbe0003450 DEBUG            openh264enc
gstopenh264enc.cpp:670:gst_openh264enc_stop:<openh264enc0> openh264_enc_stop
called




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list