ffmpeg接收rtsp流异常问题

今天使用ffmpeg接收rtsp流转mat做人脸识别时碰到了一个问题,就是使用 avformat_open_input 打开rtsp url时一直出现段错误,但是vlc播放url可以正常播放。百度一下发现:
ffmpeg默认rtsp使用tcp形式,–改下格式就行了。真的坑啊。。
AVFormatContext *formatCtx = NULL;
formatCtx = avformat_alloc_context();

AVDictionary* options = NULL;
av_dict_set(&options, “rtsp_transport”, “udp”, 0);

avformat_open_input(&formatCtx, pszURLPath, NULL, &options) < 0)

后续发现真正的原因是:
pformatContext=avformat_alloc_context();
if((ret=avformat_open_input(&pformatContext,url.c_str(),NULL,&optionsDict))<0)
{
std::cout<<"could not open input stream: “<<url<<”\nerror: "<<av_make_error_string(errbuf,sizeof(errbuf),ret)<<std::endl;
return false;
}

调用avformat_open_input没有调用 avformat_alloc_context

ps: 有时候不调用这个alloc也不会出错。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值