Hi,

 

I have implemented the H264VideoStreamer subclass and am able to
successfully unicast stream to a single VLC client. For this I had modified
the live sdp generation code to exclude the fmtp:... line from the returned
describe response for H264. In this case I am able to play the streamed
content using MPlayer or VLC client.

 

If I pass the profile level id "profile_level_id" and 

"sprop_parameter_sets_str" parameters to 

"H264VideoRTPSink::createNew()" as suggested and ensure that the sdp
returned contains the correct 

fmtp: line -"a=fmtp:97
packetization-mode=1;profile-level-id=000042;sprop-parameter-sets=Z0Ligqwewo
3FkkBaHsuG,aMOOOOKCrA=="

 

then my vlc client is not able to play the stream.(I am also unable to play
using MPlayer)

 

I have extracted the profile level id and sps and pps and using h264analyzer
tool.

Also I have base64 encoded the sps and pps as stated in the rfc-3984.

 

I suspect that the vlc client is able to play the h264 stream when it
extracts the decoder parameters from the rtp stream itself (in band; we are
transmitting NAL units 7 and 8 (sps and pps) also over RTP). But if we try
to provide the profile id and sprop_parameters over sdp (while also
streaming the NAL packets 7 and 8 over rtp as before) then even a single
requesting client is unable to play the stream. Maybe the presence of the
fmtp: line stops the client from looking for this information within the
stream. But the fmtp: line provided by us is not intelligible enough to the
client to successfully play the stream.

 

As our actual requirement is to unicast stream to multiple clients
(reuseFirstSource is set to True) and also stream multicast we need to
communicate using the sdp, the in band mechanism is not sufficient and also
not reliable.

 

I have attached our sdp and NAL frame (contains NAL units 7 and 8) alongwith
the mail. We may be missing some needed information in sdp or we might be
communicating it in the wrong format or I might be totally mistaken:-).
Could you tell us the correct sdp fmtp line to generate or any pointers to
missing or incorrect information in our sdp?

      I have attached ethereal extracted sdp description and NAL packet
extracted from h264 analyzer.Please check the attached text file.

Regards

Soumya

LGSI

 

OPTIONS rtsp://172.24.2.192:8554/h264ESVideoTest RTSP/1.0
CSeq: 1
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)

RTSP/1.0 200 OK
CSeq: 1
Date: Sun, Feb 01 2004 12:28:47 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE

DESCRIBE rtsp://172.24.2.192:8554/h264ESVideoTest RTSP/1.0
CSeq: 2
Accept: application/sdp
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)

RTSP/1.0 200 OK
CSeq: 2
Date: Sun, Feb 01 2004 12:28:47 GMT
Content-Base: rtsp://172.24.2.192:8554/h264ESVideoTest/
Content-Type: application/sdp
Content-Length: 464

v=0
o=- 1075638501409761 1 IN IP4 172.24.2.192
s=LIVE555 Streaming Media v
i=h264ESVideoTest
t=0 0
a=tool:LIVE555 Streaming Media v2008.02.08
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:LIVE555 Streaming Media v
a=x-qt-text-inf:h264ESVideoTest
m=video 0 RTP/AVP 97
c=IN IP4 0.0.0.0
a=rtpmap:97 H264/90000
a=fmtp:97 
packetization-mode=1;profile-level-id=000042;sprop-parameter-sets=Z0Ligqwewo3FkkBaHsuG,aMOOOOKCrA==
a=control:track1
SETUP rtsp://172.24.2.192:8554/h264ESVideoTest/track1 RTSP/1.0
CSeq: 3
Transport: RTP/AVP;unicast;client_port=1300-1301
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)

RTSP/1.0 200 OK
CSeq: 3
Date: Sun, Feb 01 2004 12:28:47 GMT
Transport: 
RTP/AVP;unicast;destination=172.24.3.51;source=172.24.2.192;client_port=1300-1301;server_port=6970-6971
Session: 1

PLAY rtsp://172.24.2.192:8554/h264ESVideoTest/ RTSP/1.0
CSeq: 4
Session: 1
Range: npt=0.000-
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)

RTSP/1.0 200 OK
CSeq: 4
Date: Sun, Feb 01 2004 12:28:47 GMT
Range: npt=0.000-
Session: 1
RTP-Info: 
url=rtsp://172.24.2.192:8554/h264ESVideoTest/track1;seq=36633;rtptime=3233632592

!! Found NAL at offset 4 (0x0004), size 10 (0x000A)
==================== NAL ====================
 forbidden_zero_bit : 0
 nal_ref_idc : 3
 nal_unit_type : 7 ( Sequence parameter set )
======= SPS =======
 profile_idc : 66
 constraint_set0_flag : 1
 constraint_set1_flag : 0
 constraint_set2_flag : 0
 constraint_set3_flag : 0
 reserved_zero_4bits : 0
 level_idc : 30
 seq_parameter_set_id : 0
 chroma_format_idc : 0
 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 : 12
 pic_order_cnt_type : 0
   log2_max_pic_order_cnt_lsb_minus4 : 11
   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 : 44
 pic_height_in_map_units_minus1 : 29
 frame_mbs_only_flag : 1
 mb_adaptive_frame_field_flag : 0
 direct_8x8_inference_flag : 0
 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 : 0
=== VUI ===
 aspect_ratio_info_present_flag : 0
   aspect_ratio_idc : 0
  sar_width : 0
     sar_height : 0
 overscan_info_present_flag : 0
   overscan_appropriate_flag : 0
 video_signal_type_present_flag : 0
   video_format : 0
   video_full_range_flag : 0
   colour_description_present_flag : 0
     colour_primaries : 0
   transfer_characteristics : 0
   matrix_coefficients : 0
 chroma_loc_info_present_flag : 0
   chroma_sample_loc_type_top_field : 0
   chroma_sample_loc_type_bottom_field : 0
 timing_info_present_flag : 0
   num_units_in_tick : 0
   time_scale : 0
   fixed_frame_rate_flag : 0
 nal_hrd_parameters_present_flag : 0
 vcl_hrd_parameters_present_flag : 0
   low_delay_hrd_flag : 0
 pic_struct_present_flag : 0
 bitstream_restriction_flag : 0
   motion_vectors_over_pic_boundaries_flag : 0
   max_bytes_per_pic_denom : 0
   max_bits_per_mb_denom : 0
   log2_max_mv_length_horizontal : 0
   log2_max_mv_length_vertical : 0
   num_reorder_frames : 0
   max_dec_frame_buffering : 0
=== HRD ===
 cpb_cnt_minus1 : 0
 bit_rate_scale : 0
 cpb_size_scale : 0
 initial_cpb_removal_delay_length_minus1 : 0
 cpb_removal_delay_length_minus1 : 0
 dpb_output_delay_length_minus1 : 0
 time_offset_length : 0
!! Found NAL at offset 18 (0x0012), size 4 (0x0004)
==================== NAL ====================
 forbidden_zero_bit : 0
 nal_ref_idc : 3
 nal_unit_type : 8 ( Picture parameter set )
 ======= PPS =======
 pic_parameter_set_id : 0
 seq_parameter_set_id : 0
 entropy_coding_mode_flag : 0
 pic_order_present_flag : 0
 num_slice_groups_minus1 : 0
 slice_group_map_type : 0
 num_ref_idx_l0_active_minus1 : 0
 num_ref_idx_l1_active_minus1 : 0
 weighted_pred_flag : 0
 weighted_bipred_idc : 0
 pic_init_qp_minus26 : 0
 pic_init_qs_minus26 : 0
 chroma_qp_index_offset : 0
 deblocking_filter_control_present_flag : 0
 constrained_intra_pred_flag : 0
 redundant_pic_cnt_present_flag : 0
 transform_8x8_mode_flag : 1
 pic_scaling_matrix_present_flag : 0
 second_chroma_qp_index_offset : 16
!! Found NAL at offset 26 (0x001A), size 33587 (0x8333)
==================== NAL ====================
 forbidden_zero_bit : 0
 nal_ref_idc : 3
 nal_unit_type : 5 ( Coded slice of an IDR picture )
======= Slice Header =======
 first_mb_in_slice : 0
 slice_type : 7 ( I slice only )
 pic_parameter_set_id : 0
 frame_num : 0
 field_pic_flag : 0
 bottom_field_flag : 0
 idr_pic_id : 0
 pic_order_cnt_lsb : 0
 delta_pic_order_cnt_bottom : 0
 redundant_pic_cnt : 0
 direct_spatial_mv_pred_flag : 0
 num_ref_idx_active_override_flag : 0
 num_ref_idx_l0_active_minus1 : 0
 num_ref_idx_l1_active_minus1 : 0
 cabac_init_idc : 0
 slice_qp_delta : 2
 sp_for_switch_flag : 0
slice_qs_delta : 0
 disable_deblocking_filter_idc : 0
 slice_alpha_c0_offset_div2 : 0
 slice_beta_offset_div2 : 0
 slice_group_change_cycle : 0
=== Prediction Weight Table ===
 luma_log2_weight_denom : 0
 chroma_log2_weight_denom : 0
 luma_weight_l0_flag : 0
 chroma_weight_l0_flag : 0
 luma_weight_l1_flag : 0
 chroma_weight_l1_flag : 0
=== Ref Pic List Reordering ===
 ref_pic_list_reordering_flag_l0 : 0
 ref_pic_list_reordering_flag_l1 : 0
=== Decoded Ref Pic Marking ===
 no_output_of_prior_pics_flag : 0
 long_term_reference_flag : 0
 adaptive_ref_pic_marking_mode_flag : 0
                                                
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to