Hello!
I created my gst rtsp server but I have some problem with connecting it with particular client (axis camera station). i am using version 1.8.1 The client can work with ip camera. Here is the example of sdp in successful session: v=0 o=- 1466356337748047 1466356337748047 IN IP4 192.168.5.102 s=Media Presentation e=NONE c=IN IP4 0.0.0.0 b=AS:50000 t=0 0 a=control:rtsp://192.168.5.102/axis-media/media.amp?videocodec=h264&camera=1&resolution=640x480&fps=15 a=range:npt=0.000000- m=video 0 RTP/AVP 96 b=AS:50000 a=framerate:15.0 a=transform:1,0,0;0,1,0;0,0,1 a=control:rtsp://192.168.5.102/axis-media/media.amp/trackID=1?videocodec=h264&camera=1&resolution=640x480&fps=15 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=1; profile-level-id=420029; sprop-parameter-sets=Z0IAKeNQFAe2AtwEBAaQeJEV,aM48gA== SETUP rtsp://192.168.5.102/axis-media/media.amp/trackID=1?videocodec=h264&camera=1&resolution=640x480&fps=15 RTSP/1.0 User-Agent: AXIS Virtual Camera Authorization: Basic cm9vdDprcmFzbm9kYXI= Transport: RTP/AVP/TCP;unicast CSeq: 6 I tried to duplicate this behavior but it doesn't works for me. The pipeline that I use is: pipeline = gst_parse_launch("( videotestsrc is-live=true ! video/x-raw,width=640,height=480,framerate=15/1 ! " " x264enc bitrate=40000 bframes=0 cabac=false dct8x8=false b-adapt=false speed-preset=1 tune=0x00000004 byte-stream=true intra-refresh=true ! rtph264pay name=pay0 pt=96 sprop-parameter-sets=Z0IAKeNQFAe2AtwEBAaQeJEV\\,aM48gA\\=\\= )", &error); Sdp of my server is: v=0 o=- 1357203415215407603 1 IN IP4 192.168.5.117 s=Session streamed with GStreamer i=rtsp-server t=0 0 a=tool:GStreamer a=type:broadcast a=control:* a=range:npt=0- m=video 0 RTP/AVP 96 c=IN IP4 0.0.0.0 b=AS:2097 a=rtpmap:96 H264/90000 a=framerate:15 a=fmtp:96 packetization-mode=1;profile-level-id=42c016;sprop-parameter-sets=Z0LAFtkAoD2wEQAAAwABAAADAB6PFi5I,aMuMsg== a=control:rtsp://192.168.5.117/axis-media/media.amp/trackID=0 Everuthing is OK until PLAY request I wanted to adjust parameters of h264 to copy behaviour of camera. But client crashes. Here is the message of error log of client: 2016-07-03 13:31:14,096 DEBUG [(null)] [85_192.168.5.100/0] (null)((null)), (null) (null) <(null)> - <0> Received response for: RtspRequest PLAY, CSeq: 3, URI: rtsp://192.168.5.100:8080/axis-media/media.amp?camera=1&videocodec=h264&fps=15&resolution=640x480&compression=30&audio=0 2016-07-03 13:31:14,102 DEBUG [(null)] [85_192.168.5.100/0] (null)((null)), (null) (null) <(null)> - <0> Play response range: npt=now- 2016-07-03 13:31:14,210 FATAL [(null)] [85_192.168.5.100/0] (null)((null)), (null) (null) <(null)> - AppDomain.CurrentDomain.UnhandledException, IsTerminating: False, System.InvalidOperationException: Unsupported pic_order_cnt_type encountered I think the problem is with pipeline. I tried to set profile-level-id to rtph264pay but it doesn't have this parameter. I appreciate any help! |
You should set the profile, level and steam-format in the caps if a capsfilter. Then let x264 negotiate with the payloader, which should figure out the rest. > &error); _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Thank you for your answer!
I've tried this pipeline: videotestsrc is-live=true ! video/x-raw,width=640,height=480,framerate=15/1 ! x264enc bitrate=40000 bframes=0 cabac=false dct8x8=false b-adapt=false speed-preset=1 tune=0x00000004 byte-stream=true intra-refresh=true ! rtph264pay name=pay0 pt=96 sprop-parameter-sets=Z0IAKeNQFAe2AtwEBAaQeJEV\\,aM48gA\\=\\= But I got the same error: IsTerminating: False, System.InvalidOperationException: Unsupported pic_order_cnt_type encountered Here is delailed parameters of h264 which the client requieres: ======= SPS ======= profile_idc : 66 constraint_set0_flag : 0 constraint_set1_flag : 0 constraint_set2_flag : 0 constraint_set3_flag : 0 constraint_set4_flag : 0 constraint_set5_flag : 0 reserved_zero_2bits : 0 level_idc : 41 seq_parameter_set_id : 0 chroma_format_idc : 1 residual_colour_transform_flag : 0 bit_depth_luma_minus8 : 0 bit_depth_chroma_minus8 : 0 qpprime_y_zero_transform_bypass_flag : 0 seq_scaling_matrix_present_flag : 0 log2_max_frame_num_minus4 : 0 pic_order_cnt_type : 0 log2_max_pic_order_cnt_lsb_minus4 : 12 delta_pic_order_always_zero_flag : 0 offset_for_non_ref_pic : 0 offset_for_top_to_bottom_field : 0 num_ref_frames_in_pic_order_cnt_cycle : 0 num_ref_frames : 1 gaps_in_frame_num_value_allowed_flag : 0 pic_width_in_mbs_minus1 : 39 pic_height_in_map_units_minus1 : 29 frame_mbs_only_flag : 1 mb_adaptive_frame_field_flag : 0 direct_8x8_inference_flag : 1 frame_cropping_flag : 0 frame_crop_left_offset : 0 frame_crop_right_offset : 0 frame_crop_top_offset : 0 frame_crop_bottom_offset : 0 vui_parameters_present_flag : 1 I think that the main problem is to set pic_order_cnt_type = 0 How exactly can I set this parameter in pipeline? |
Free forum by Nabble | Edit this page |