一个关于FFmpeg的avformat_open_input问题疑惑

path = @"rtsp://172.17.32.42:9100/DC000010000003E8$00/1?level=0?token=0";

url中包含了一个"$"符号

    AVDictionary *options = NULL;
    av_dict_set(&options, "stimeout", "500000", 0);
    int errCode = avformat_open_input(&formatCtx, [path cStringUsingEncoding: NSUTF8StringEncoding], NULL, &options);
    char buf[128];
    av_strerror(errCode, buf, 1024);
    NSLog(@"%s", [path cStringUsingEncoding: NSUTF8StringEncoding]);
    NSLog(@"%d(%s)", errCode, buf);

ffmpeg在avformat_open_input时返回错误-1094995529(Invalid data found when processing input)

将"$"符号换成"@"或者"_"即可返回0,原因暂时未知。

原因可能为:由于在url中特殊符号都有特殊意义或者被认为是不安全的字符,所以在拼接url时应当替换出url中的特殊字符。

你可能感兴趣的:(一个关于FFmpeg的avformat_open_input问题疑惑)