织梦CMS - 轻松建站从此开始!

罗索

用Live555 中的openRTSP 保存H264文件

jackyhwei 发布于 2011-06-27 16:03 点击:次 
用Live555 中的openRTSP 保存H264文件很简单.但是发现器保存的h264文件并不能直接被vcl 播放.同一个rtsp源 用vcl保存的h264文件就可以直接被播放.经过研究 发现是 openRTSP没有把SDP 中已经包括的SPS &PPS数据保存到文件中
TAG:

用Live555 中的openRTSP 保存H264文件很简单

但是发现器保存的h264文件并不能直接被vcl 播放

同一个rtsp源 用vcl保存的h264文件就可以直接被播放

经过研究 发现是 openRTSP没有把SDP 中已经包括的SPS &PPS数据保存到文件中

vcl保存的h264文件的前2个00 00 00 01 数据 也就是 SPS &PPS 复制到 openRTSP保存的文件最前头就可以播放了

修改方法

  1. else if (strcmp(subsession->mediumName(), "video") == 0 && 
  2.     (strcmp(subsession->codecName(), "H264") == 0)) { 
  3.   // For H.264 video stream, we use a special sink that insert start_codes: 
  4.   unsigned int num=0; 
  5.   SPropRecord * sps=parseSPropParameterSets(subsession->fmtp_spropparametersets(),num); 
  6.   fileSink = H264VideoFileSink::createNew(*env, outFileName, 
  7.                      fileSinkBufferSize, oneFilePerFrame); 
  8.   struct timeval tv={0,0}; 
  9.   unsigned char start_code[4] = {0x00, 0x00, 0x00, 0x01}; 
  10.   fileSink-> addData(start_code, 4, tv); 
  11.   fileSink->addData(sps[0].sPropBytes,sps[0].sPropLength,tv); 
  12.   fileSink-> addData(start_code, 4, tv); 
  13.   fileSink->addData(sps[1].sPropBytes,sps[1].sPropLength,tv); 
  14.   delete[] sps; 
  15. else { 

 

(zblue78)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201106/14630.html]
本文出处:blog.csdn.net/zblue78 作者:zblue78
顶一下
(1)
33.3%
踩一下
(2)
66.7%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容