qaz6908768 2020-02-11 16:40 采纳率: 0%
浏览 447

C# ffmpeg 调用avformat_open_input报错

如题,相关代码如下:
string str = "rtsp://192.168.1.108:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1";
var format_ctx = ffmpeg.avformat_alloc_context();
int ret = ffmpeg.avformat_open_input(&format_ctx, str, null, null);
if (ret != 0)
{
Console.WriteLine("fail to open url:" + url + "return value:" + ret);
return -1;
}
return 0;
结果报错图片说明
有点懵逼,不知道错误出在哪里。。。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-25 23:15
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在使用ffmpeg时,有时会遇到诸如Parameter #2: Invalid combination of types for 'String' (String parameters and return type must be paired with LPStr, LPTStr, BStr, TBStr, VBByRefStr or AnsiBStr)这样的错误。这通常发生在尝试将字符串作为参数传递给ffmpeg函数时。

    解决这个问题的方法是确保所有参数都具有相同的类型,并且它们可以一起被转换为相同的值。例如,在你的代码中,你可以尝试以下方法:

    string str = "rtsp://192.168.1.108:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1";
    var format_ctx = ffmpeg.avformat_alloc_context();
    
    int ret = ffmpeg.avformat_open_input(&format_ctx, str, null, null);
    if (ret != 0)
    {
        Console.WriteLine("fail to open url:" + url + "return value:" + ret);
        return -1;
    }
    
    return 0;
    

    在这个示例中,我们首先创建了一个字符串变量str,然后将其赋值给ffmpeg函数中的str参数。这样做的目的是确保所有的参数都是相同类型的,并且它们可以一起被转换为相同的值。希望这个解决方案可以帮助你解决问题!

    评论

报告相同问题?