我试图从使用RTSP通过HTTP安讯士网络摄像机到流。 我能得到正常的RTSP流的工作,但我无法找到如何实际设置隧道模式为流的任何资料或文件。 它在源代码中设置control_transport到RTSP_MODE_TUNNEL支持。 我的问题很简单,我怎么做到这一点下面的代码?
int ret = avformat_open_input(&pFormatCtx, [@"rtsp://ip/axis-media/media.amp" UTF8String], NULL, NULL);
我试过如下:
pFormatCtx = avformat_alloc_context();
pFormatCtx->priv_data = malloc(sizeof(RTSPState));
RTSPState *rt = pFormatCtx->priv_data;
rt->control_transport = RTSP_MODE_TUNNEL;
int ret = avformat_open_input(&pFormatCtx, [@"rtsp://ip/axis-media/media.amp" UTF8String], NULL, NULL);
但简单地忽略它,我(它仍然保持使用RTP)。 我想这藏汉
int ret = avformat_open_input(&pFormatCtx, [@"rtsp://ip/axis-media/media.amp" UTF8String], NULL, NULL);
RTSPState *rt = pFormatCtx->priv_data;
rt->control_transport = RTSP_MODE_TUNNEL;
我将如何解决这个问题? 我想这是很简单的东西,因为ENUM是存在的。
工作液
AVDictionary *opts = 0;
int ret = av_dict_set(&opts, "rtsp_transport", "http", 0);
ret = avformat_open_input(&pFormatCtx, [@"rtsp://ip:80/axis-media/media.amp" UTF8String], NULL, &opts);
av_dict_free(&opts);