gpt4 book ai didi

c# - FFMPeg Windows C# H264

转载 作者:太空宇宙 更新时间:2023-11-03 19:32:29 29 4
gpt4 key购买 nike

我正在尝试使用 SharpFFMpeg

http://sourceforge.net/projects/sharpffmpeg/

我在网上某处找到了 avcodec-52.dll 和 avformat-52.dll...

当我使用 SharpFFMpeg 并调用 av_init_packet 时

我收到这样的 PInvoke 错误

检测到 PInvokeStackImbalance消息:对 PInvoke 函数“WpfApplicationFFMpegTest!FFmpegSharp.Interop.FFmpeg::av_init_packet”的调用使堆栈失衡。这可能是因为托管 PInvoke 签名与非托管目标签名不匹配。检查 PInvoke 签名的调用约定和参数是否与目标非托管签名匹配。

简而言之,我正在尝试解码 H264 并显示来自相机的传入流...

只是想知道是否有人能够在 C# 中成功地做到这一点?

谢谢

最佳答案

Benjamin 想说的是,您应该尝试打开 SharpFFmpeg 源并更改 AVFormat.cs 中的行

[DllImport("avformat.dll"), SuppressUnmanagedCodeSecurity]
public static extern void av_init_packet(IntPtr pAVPacket);

进入

[DllImport("avformat.dll", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
public static extern void av_init_packet(IntPtr pAVPacket);

并重新编译 SharpFFmpeg 项目。我没有测试它,因为我没有 DLL。

当这有帮助时(av_init_packet 在异常消息中消失),尝试在每个 PInvoke 方法上添加 CallingConvention.Cdecl

关于c# - FFMPeg Windows C# H264,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160589/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com