ffmpeg rtsp截取_(原)关于获取ffmpeg解析rtsp流sdp中带有sps,pps的情况

转载请注明出处:http://www.cnblogs.com/lihaiping/p/6612511.html

今天同事准备在android下使用ffmpeg来获取rtsp流,问我如何获取获取sps和pps的情况?

因为尽管使用ffmpeg做项目还算熟悉,但用ffmpeg作rtsp client我还真没用过,虽然知道ffmpeg支持rtsp,但一般rtsp client我还是选择自己实现。

使用ffmpeg做rtsp client的在这种情况下,如果rtsp的pps,sps在sdp中带有的话,我们应该从ffmpeg中的哪个字段中提取?

当我们打开一个文件或者流的时候,一般流程为:

//打开

err = avformat_open_input(&ic, is->filename, is->iformat, &format_opts);//探测

err =avformat_find_stream_info(ic, opts);//查找流

for (i = 0; i < ic->nb_streams; i++) {

AVStream*st = ic->streams[i];enum AVMediaType type = st->codec->codec_type;

st->discard =AVDISCARD_ALL;if (wanted_stream_spec[type] && st_index[type] == -1)if (avformat_match_stream_specifier(ic, st, wanted_stream_spec[type]) > 0)

st_index[type]=i;

}

我们使用了avformat_open_input函数,这个函数的第一个参数为AVFormatContext**p,而我们很多信息都是从这个结构体中获取出来的。

具体的字段为:

ic->streams[i]->codeccontex->extradata

具体的代码为rtpdec_h264.c文件

20180110225125313029.png

整个线索分析流程为:rtsp.c

sdp_read_header

----ff_sdp_parse

----sdp_parse_line

-----parse_fmtp

----parse_sdp_a_line------>parse_h264_sdp_line

--------ff_parse_fmtp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值