<div dir="ltr"><div>Hi, I'm trying to create video+audio file of RTP/TCP session from pcap dump. I found some bugs in pcapparse and irtspparse, fix them, and now I have valid RTP frames after <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>/opt/gstreamer/gst-uninstalled.py gst-launch-1.0 -v filesrc location=cam_full.pcap ! pcapparse src-ip=ip_here  src-port=554 dst-ip=192.168.220.151 dst-port=50056 ! irtspparse channel_id=0 ! filesink location=rtp_ch0.dump</div></blockquote><div>output file size is 900+KB.</div><div>Next, I try:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>/opt/gstreamer/gst-uninstalled.py gst-launch-1.0 -v filesrc location=cam_full.pcap ! pcapparse src-ip=ip_here  src-port=554 dst-ip=192.168.220.15 dst-port=50056 ! irtspparse channel_id=0 !  application/x-rtp, media=video, clock-rate=90000, encoding-name=H264, payload=99 ! rtph264depay ! filesink location=rtp_ch0_h264.dump</div></blockquote><div>And now output file size is only 30KB.</div><div>I know that dump and data are valid because I have hand-written node.js script that sucessfuly depacketize same dump, and whichI want to replace with gst-based solution.</div><div>I enable debug log and found that only NAL type == 1 is actually dumped, but the dump also contains type 24 and 28. Here's the part of the log:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><br>0:00:01.056172015  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1059:gst_rtp_h264_depay_process:<rtph264depay0> [00m receiving 31 bytes<br>0:00:01.056176391  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1079:gst_rtp_h264_depay_process:<rtph264depay0> [00m NRI 3, Type 24 <br>0:00:01.056179870  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1104:gst_rtp_h264_depay_process:<rtph264depay0> [00m payload_len: 30<br>0:00:01.056228868  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:892:gst_rtp_h264_depay_handle_nal:<rtph264depay0> [00m handle NAL type 7<br>0:00:01.056232383  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:899:gst_rtp_h264_depay_handle_nal:<rtph264depay0> [00m !rtph264depay->byte_stream: 1<br>0:00:01.056269150  [335m17080 [00m      0x1f030a0  [33;01mLOG     [00m  [00m        rtph264depay gstrtph264depay.c:577:gst_rtp_h264_add_sps_pps:<rtph264depay0> [00m Adding new SPS 0<br>0:00:01.056436232  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:892:gst_rtp_h264_depay_handle_nal:<rtph264depay0> [00m handle NAL type 8<br>0:00:01.056442685  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:899:gst_rtp_h264_depay_handle_nal:<rtph264depay0> [00m !rtph264depay->byte_stream: 1<br>0:00:01.056502592  [335m17080 [00m      0x1f030a0  [33;01mLOG     [00m  [00m        rtph264depay gstrtph264depay.c:617:gst_rtp_h264_add_sps_pps:<rtph264depay0> [00m Adding new PPS 0:0<br>0:00:01.057621853  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1059:gst_rtp_h264_depay_process:<rtph264depay0> [00m receiving 1408 bytes<br>0:00:01.057629134  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1079:gst_rtp_h264_depay_process:<rtph264depay0> [00m NRI 3, Type 28 <br>0:00:01.057635203  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1184:gst_rtp_h264_depay_process:<rtph264depay0> [00m S 1, E 0, wait_start: 1<br>0:00:01.057639819  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1202:gst_rtp_h264_depay_process:<rtph264depay0> [00m wait_start = FALSE<br>0:00:01.057690575  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1224:gst_rtp_h264_depay_process:<rtph264depay0> [00m queueing 1411 bytes<br>0:00:01.057704657  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1248:gst_rtp_h264_depay_process:<rtph264depay0> [00m finish: 0<br>0:00:01.059906676  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1059:gst_rtp_h264_depay_process:<rtph264depay0> [00m receiving 1408 bytes<br>0:00:01.059915590  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1079:gst_rtp_h264_depay_process:<rtph264depay0> [00m NRI 3, Type 28 <br>0:00:01.059921731  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1184:gst_rtp_h264_depay_process:<rtph264depay0> [00m S 0, E 0, wait_start: 1<br>0:00:01.059926528  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1299:gst_rtp_h264_depay_process:<rtph264depay0> [00m waiting for start<br>0:00:01.060617957  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1059:gst_rtp_h264_depay_process:<rtph264depay0> [00m receiving 1408 bytes<br>0:00:01.060623572  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1079:gst_rtp_h264_depay_process:<rtph264depay0> [00m NRI 3, Type 28 <br>0:00:01.060628972  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1184:gst_rtp_h264_depay_process:<rtph264depay0> [00m S 0, E 0, wait_start: 1<br>0:00:01.060633569  [335m17080 [00m      0x1f030a0  [37mDEBUG   [00m  [00m        rtph264depay gstrtph264depay.c:1299:gst_rtp_h264_depay_process:<rtph264depay0> [00m waiting for start</div></blockquote><div>For now, I don't know how depacketization works, but it seems that for type 28 there's always wait_start=TRUE, and type 24 just skipped by return in gst_rtp_h264_depay_handle_nal().</div><div>Any ideas?<br></div></div>