vlc没有收到pps和sps

转载 2012年03月25日 05:46:20
问题 packetizer_h264 packetizer warning: waiting for SPS/PPS

是因为解码器只是在第一次执行编码的时候,才编码出 SPS、PPS、和I_Frame; 
h264 packetizer has set so, that it sends sps/pps only first keyframe,
 I'm trying to figure what breaks if that is changed so sps/pps is written in every keyframe. 
[出自| http://trac.videolan.org/vlc/ticket/1384]

解决办法:

1、编码器编码出每个关键帧都加上SPS、PPS ,据说通常情况编码器编出的 SPS、PPS是一样的,所以这种方法耗费资源。

2、在服务器接收到客户端请求时,发送第一个package 加上 SPS、PPS。

具体如下:

  • 1、在 VideoOpenFileSource 添加一个变量 isFirstFrame;

  • 2、构造时初始化 isFirstFrame = true;
  • 3、在int VideoOpenFileSource::readFromBufferChain() 修改如下:

  •    1         if(isFirstFrame == true)
       2         {
       3                 memcpy(fTo, h264_header, sizeof(h264_header)); /* h264_header = pps +sps*/
       4                 offset = sizeof(h264_header);
       5                 framesize = BufferChain_get(fInput.video_bufs, fTo + offset);
       6                 offset += framesize;
       7                 isFirstFrame = false;
       8                 printf("this is the first fime\n");
       9                 sleep(1);
      10         }
      11         else
      12         {
      13                 framesize = BufferChain_get(fInput.video_bufs, fTo + offset);
      14                 offset += framesize;
      15         }
      1
[http://topic.csdn.net/u/20100801/17/ef35e664-92ff-4144-a35f-3984dcf11da3.html| 参考] 


========================================================================
sdp 关于pps和sps的疑问:
packetization-mode 主要是定义包的模式,单一 NALU单元模式(0);非交错(non-interleaved)封包模式(1);交错(interleaved)封包模式(2)
sprop-parameter-sets 等于H.264 的序列参数集和图像参数 NAL单元,base64转换;(即= sps+pps)
profile-level-id 这个参数用于指示 H.264 流的 profile 类型和级别。这知道这个是啥东东

参考 黑暗长老 www.cppblog.com/czanyou/
ffmpeg decode 关于pps sps问题:
stackoverflow.com/questions/3493742/problem-to-decode-h264-video-over-rtp-with-ffmpeg-libavcodec/3500432#3500432

转自 http://hi.baidu.com/yuan07804017/blog/item/a4f54e3ee4d3d0c99e3d624f.html

H264中的SPS、PPS提取与作用-2

vlc没有收到pps和sps 2010-10-08 16:16 问题 packetizer_h264 packetizer warning: waiting for SPS/PPS...

VLC播放器所需的SPS,PPS获取方法

通过直接观察VLC访问的sdp文件可以发现 [plain] view plain copy v=0   o=- 0 0 IN IP4 192.16...

VLC播放器所需的SPS,PPS获取方法

通过直接观察VLC访问的sdp文件可以发现 v=0 o=- 0 0 IN IP4 192.168.1.112 s=Stream-0 i=N/A c=IN IP4 192.168.1.104 t=0 0...

c+提取h264的sps pps

  • 2017年02月18日 23:34
  • 106KB
  • 下载

H264的sps和pps解析源码

  • 2014年07月07日 14:31
  • 9KB
  • 下载

H264帧的分析sps pps

帧格式 H264帧由NALU头和NALU主体组成。 NALU头由一个字节组成,它的语法如下:       +---------------+       |0|1|2|3|4|5|6|7|    ...

H264中SPS与PPS的获取

  • 2012年05月05日 23:39
  • 28KB
  • 下载

H264码流中SPS PPS详解

1 SPS和PPS从何处而来?2 SPS和PPS中的每个参数起什么左右?3 如何解析SDP中包含的H.264的SPS和PPS串? 1 客户端抓包     在做客户端视频解码时,一般都会使用Wiresh...

h264协议sps pps解析

  • 2016年09月02日 14:46
  • 9KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vlc没有收到pps和sps
举报原因:
原因补充:

(最多只允许输入30个字)