- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi everyone,
Please help me this problem:
I'm developing a application that capture computer desktop and streaming video to Iphone using HTTP Live Streaming. My app capture the desktop and encode the series of image using Intel IPP version 7.0.6.060 and then use the videomuxer to generate a MPEG2-ts stream file (.ts file). I also developed a simple Video file segmenter to segment a big .ts file to serveral small .ts file (see the attachment: out_-1.ts, out_-2.ts). My problem is here, when i do segmentation the big .ts file, then only the first small .ts file (out_-1.ts) can be play by VLC, the others file cannot be play. I used the ffprobe (can download here: http://ffmpeg.zeranoe.com/builds/) to analysis and received results: "decode slice header error. non existing PPS referenced". It looks like the encoder makes SPS/PPS only one time at the beginning of a stream.
here is my configuration for H.264 encoder:
m_EncoderParam.num_slices = 1;
m_EncoderParam.B_frame_rate = 0;
m_EncoderParam.treat_B_as_reference = 0;
m_EncoderParam.num_ref_frames = 2;
m_EncoderParam.num_ref_to_start_code_B_slice = 0;
m_EncoderParam.num_slices = 1;
m_EncoderParam.key_frame_controls.method = 1;
m_EncoderParam.key_frame_controls.interval = 10;
m_EncoderParam.key_frame_controls.idr_interval = 0;
m_EncoderParam.profile_idc = UMC::H264_PROFILE_HIGH;
m_EncoderParam.level_idc = 0;
m_EncoderParam.info.framerate = 15;
m_EncoderParam.chroma_format_idc = 1;
m_EncoderParam.bit_depth_chroma = 8;
m_EncoderParam.bit_depth_luma = 8;
m_EncoderParam.aux_format_idc = 0;
m_EncoderParam.bit_depth_aux = 8;
m_EncoderParam.alpha_incr_flag = 0;
m_EncoderParam.alpha_opaque_value = 0;
m_EncoderParam.alpha_transparent_value = 0;
m_EncoderParam.rate_controls.method = (UMC::H264_Rate_Control_Method)2;
m_EncoderParam.rate_controls.quantB = 30;
m_EncoderParam.rate_controls.quantI = 30;
m_EncoderParam.rate_controls.quantP = 30;
m_EncoderParam.info.clip_info.width = 960;
m_EncoderParam.info.clip_info.height = 640;
m_EncoderParam.info.bitrate = 1000000;
m_EncoderParam.mv_search_method = 2;
m_EncoderParam.me_split_mode = 0;
m_EncoderParam.me_search_x = 8;
m_EncoderParam.me_search_y = 8;
m_EncoderParam.use_weighted_pred = 0;
m_EncoderParam.use_weighted_bipred = 0;
m_EncoderParam.use_implicit_weighted_bipred = 0;
m_EncoderParam.direct_pred_mode = 1;
m_EncoderParam.use_direct_inference = 1;
m_EncoderParam.deblocking_filter_idc = 0;
m_EncoderParam.deblocking_filter_alpha = 0;
m_EncoderParam.deblocking_filter_beta = 0;
m_EncoderParam.transform_8x8_mode_flag = true;
m_EncoderParam.use_default_scaling_matrix = 0;
m_EncoderParam.qpprime_y_zero_transform_bypass_flag = 0;
m_EncoderParam.entropy_coding_mode = 1;
m_EncoderParam.cabac_init_idc = 2;
m_EncoderParam.coding_type = 0;
m_EncoderParam.m_QualitySpeed = 1;
m_EncoderParam.quant_opt_level = 0;
m_EncoderParam.numThreads = 1;
Thanks in advance!
Please help me this problem:
I'm developing a application that capture computer desktop and streaming video to Iphone using HTTP Live Streaming. My app capture the desktop and encode the series of image using Intel IPP version 7.0.6.060 and then use the videomuxer to generate a MPEG2-ts stream file (.ts file). I also developed a simple Video file segmenter to segment a big .ts file to serveral small .ts file (see the attachment: out_-1.ts, out_-2.ts). My problem is here, when i do segmentation the big .ts file, then only the first small .ts file (out_-1.ts) can be play by VLC, the others file cannot be play. I used the ffprobe (can download here: http://ffmpeg.zeranoe.com/builds/) to analysis and received results: "decode slice header error. non existing PPS referenced". It looks like the encoder makes SPS/PPS only one time at the beginning of a stream.
here is my configuration for H.264 encoder:
m_EncoderParam.num_slices = 1;
m_EncoderParam.B_frame_rate = 0;
m_EncoderParam.treat_B_as_reference = 0;
m_EncoderParam.num_ref_frames = 2;
m_EncoderParam.num_ref_to_start_code_B_slice = 0;
m_EncoderParam.num_slices = 1;
m_EncoderParam.key_frame_controls.method = 1;
m_EncoderParam.key_frame_controls.interval = 10;
m_EncoderParam.key_frame_controls.idr_interval = 0;
m_EncoderParam.profile_idc = UMC::H264_PROFILE_HIGH;
m_EncoderParam.level_idc = 0;
m_EncoderParam.info.framerate = 15;
m_EncoderParam.chroma_format_idc = 1;
m_EncoderParam.bit_depth_chroma = 8;
m_EncoderParam.bit_depth_luma = 8;
m_EncoderParam.aux_format_idc = 0;
m_EncoderParam.bit_depth_aux = 8;
m_EncoderParam.alpha_incr_flag = 0;
m_EncoderParam.alpha_opaque_value = 0;
m_EncoderParam.alpha_transparent_value = 0;
m_EncoderParam.rate_controls.method = (UMC::H264_Rate_Control_Method)2;
m_EncoderParam.rate_controls.quantB = 30;
m_EncoderParam.rate_controls.quantI = 30;
m_EncoderParam.rate_controls.quantP = 30;
m_EncoderParam.info.clip_info.width = 960;
m_EncoderParam.info.clip_info.height = 640;
m_EncoderParam.info.bitrate = 1000000;
m_EncoderParam.mv_search_method = 2;
m_EncoderParam.me_split_mode = 0;
m_EncoderParam.me_search_x = 8;
m_EncoderParam.me_search_y = 8;
m_EncoderParam.use_weighted_pred = 0;
m_EncoderParam.use_weighted_bipred = 0;
m_EncoderParam.use_implicit_weighted_bipred = 0;
m_EncoderParam.direct_pred_mode = 1;
m_EncoderParam.use_direct_inference = 1;
m_EncoderParam.deblocking_filter_idc = 0;
m_EncoderParam.deblocking_filter_alpha = 0;
m_EncoderParam.deblocking_filter_beta = 0;
m_EncoderParam.transform_8x8_mode_flag = true;
m_EncoderParam.use_default_scaling_matrix = 0;
m_EncoderParam.qpprime_y_zero_transform_bypass_flag = 0;
m_EncoderParam.entropy_coding_mode = 1;
m_EncoderParam.cabac_init_idc = 2;
m_EncoderParam.coding_type = 0;
m_EncoderParam.m_QualitySpeed = 1;
m_EncoderParam.quant_opt_level = 0;
m_EncoderParam.numThreads = 1;
Thanks in advance!
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Any suggestions for my problem?
Thanks
Any suggestions for my problem?
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Sounds like the problem is in segmenter. I would say that first frame in each segment should be IDR frame containing SPS, PPS. Try adding that in Your segmenter.
Can You post code?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
The segmenter work fine with X264 FFMPEG, so the problem is not in segmenter. I can't post code, but you can reference to: http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/
The segmenter work fine with X264 FFMPEG, so the problem is not in segmenter. I can't post code, but you can reference to: http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page