使用ffmpeg进行rtp串流h.264时关于sdp的一些分析

阅读ffmpeg串流的手册FFmpeg Streaming Guide
当进行点对点串流
如果视频编码为H.264时,payload type 为 96

此时会自动输出一段SDP的代码,这时候如果直接播放

将会提示“不能接收RTP payload 类型为96 在没有sdp来描述它”
这时候如果将ffmpeg输出时打印的sdp信息保存为文件,再ffplay播放这个文件 则正常打开。

其它信息都好说,只有最后一行比较有难点
今天仔细阅读了/home/aliang/Source/ffmpeg-2.3.1/libavformat/sdp.c 这个文件
定位到static char *extradata2psets(AVCodecContext *c)

sprop-parameter-sets就是这个H.264视频编码中 SPS PPS的base64编码

SPS : 67 42 c0 1e 96 62 3 63 fc bc 20 0 0 3 0 20 0 0 6 1 e2 c5 c9
PPS : 68 cb 8c b2
编码后
SPS : Z0LAHpZiA2P8vCAAAAMAIAAABgHixck=
PPS : aMuMsg==

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 使用ffmpeg进行rtp串流h.264时关于sdp的一些分析

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据