c - 您如何构建Pion mediadevices webrtc示例?

标签 c go webrtc raspberry-pi-zero

我正在检查Pion Mediadevices并尝试从Windows计算机交叉编译webrtc示例以获取树莓派零。但是,当我尝试构建示例时,我从Windows命令提示符中得到了以下错误:

    # github.com/pion/mediadevices/pkg/codec/mmal
..\..\pkg\codec\mmal\params.go:30:9: undefined: newEncoder
# github.com/pion/mediadevices/pkg/driver/microphone
..\..\pkg\driver\microphone\microphone.go:27:10: undefined: malgo.AllocatedContext
..\..\pkg\driver\microphone\microphone.go:34:2: undefined: malgo.DeviceInfo
..\..\pkg\driver\microphone\microphone.go:40:13: undefined: malgo.InitContext
..\..\pkg\driver\microphone\microphone.go:40:36: undefined: malgo.ContextConfig
..\..\pkg\driver\microphone\microphone.go:78:25: undefined: malgo.DeviceInfo
另外,因为该程序用于pi零,所以我将import部分编辑为具有“github.com/pion/mediadevices/pkg/codec/mmal”,并注释掉了x264导入。
构建此示例的正确方法是什么?
编辑:经过进一步调查,我发现上面的错误信息:
 ..\..\pkg\codec\mmal\params.go:30:9: undefined: newEncoder
关联到对函数newEncoder的调用,该调用在与params.go相同的文件夹中的单独的go文件mmal.go中声明。这两个文件在导入之前的顶部都带有package mmal,它们所包含的文件夹也称为mmal。是否有任何问题导致该函数无法在params.go上查看?

最佳答案

mediadevices当前使用cgo允许我们访问摄像头/麦克风和编解码器。可以在cgo中进行交叉编译,但是您很可能需要自己将mmal编解码器作为静态库进行交叉编译,但这需要访问源代码。
不幸的是,mmal不是开源库。因此,剩下的唯一选择是在树莓派上编译该库,因为应该已经在您的系统上安装了mmal。
注意:我是mediadevices作者author。

关于c - 您如何构建Pion mediadevices webrtc示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65115970/

相关文章:

c - 通过指针传递引用

c - Linux c 中的 execl 函数

c++ - 在纯 DOS 模式下写入文件?

在应用程序的每个模块中对错误(常量错误)进行分组的好方法

javascript - 使用基于 sip.js 的 webrtc 应用程序和 asterisk 11.11.0 时,chrome 没有音频。与 Firefox 和 Opera 配合良好

c - 这是什么语法?

go - 将文件系统添加到现有 http api Web 服务器的最佳方法

go - 如何打印整个 url.URL 结构?

javascript - 为什么使用不同电脑时 "WebRTC Screen sharing"不流?

webrtc - 为什么存在端口 9 的 TCP WebRTC 候选者,但浏览器没有监听该端口?