如题,相关代码如下:
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;
结果报错
有点懵逼,不知道错误出在哪里。。。
C# ffmpeg 调用avformat_open_input报错
- 写回答
- 好问题 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参数。这样做的目的是确保所有的参数都是相同类型的,并且它们可以一起被转换为相同的值。希望这个解决方案可以帮助你解决问题!解决 无用评论 打赏 举报