君正T31x metartc集成测试

本文介绍了国内开源库metartc在嵌入式IPC中的应用,特别是在webrtc音视频通信中,如何通过webrtc实现局域网内直连和NAT穿越,以及在君正T31x开发板上的编译和运行过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. metartc介绍

        metartc为国内杨大侠部分开源的一款用于嵌入式领域webrtc库,它与谷歌官方webrtc相比,编译到君正平台的可执行文件仅有5M即可实现webrtc的通信。

2. 为什么要在ipc中使用webrtc

1. 在ipc(IPCamera)领域中,以下方式各有其局限性:

        rtsp:只能局域网中查看监控视频,无法满足用户远程互联网观看监控视频的需求。

        rtmp:需要推流到云服务器然后在前端拉流播放。这种方式将会占用大量的云服务器资源进行中转,造成大量资源浪费。

        tutkP2P:已经可以实现端对端直接通信,可以节省大量云服务器资源,然而当NAT穿越(俗称打洞)失败时,却不可避免的造成连接失败。

2. webrtc为音视频领域的皇冠,webrtc的实现为:

        当用户端和ipc端为同一局域网中时,将不需要NAT穿越,直接通过局域网内的ip进行直连,不额外占用云服务器资源。

        当用户端和ipc端为不在同一局域网中但可以穿越时,将会通过Stun服务器获取到ipc的公网ip地址,进行端到端连接,不占用额外的云服务器资源。

        当用户端与ipc端穿越失败时,则通过Turn服务器进行中继转发,兜底连接,提高连接成功率。

3. metartc编译

        1. OS版本: Ubuntu 20.04 LTS   开发板:君正T31x

        2. 官方网址: https://gitee.com/metartc/metaRTC/releases/tag/v5.0-b1 不一定能跑通,建议下载我整理后的资源,资源在文章最开始的地方。

        4. 先解压metartc5_jz.zip,可以看到bin/lib_debug中已经有编译好的libmetartccore5.a了,如果不想重复编译也可以直接使用。

        5. 通过君正官方提供的sdk找到mips-gcc540-glibc222-32bit-r3.3.0.tar.gz的压缩包,将其解压到/opt目录中。

sudo tar -zxvf mips-gcc540-glibc222-32bit-r3.3.0.tar.gz -C /opt

        6. 执行libmetartccore5的编译脚本

cd libmetartccore5
sudo sh cmake_mips32.sh

        7.运行完后,在libmetartccore5/build目录中会有一个libmetartccore5.a文件,将其copy到bin/lib_debug中。

cp build/libmetartccore5.a ../bin/lib_debug/

        8. 编译metaipc5可执行文件

cd ../metaipc5_jz/
sudo sh cmake_mips32.sh

  4. 开发板运行metaipc5

        1. SecureCRT登录开发板,串口连接Ubuntu,开发板连接电源。

        2. SecureCRT进入Ubuntu挂载目录,copy metartc5和yang_config.ini到开发板~/metaipc目录中。

cd /mnt/metartc5_jz/metaipc5_jz/build
cp metaipc5 ~/metaipc/
cd /mnt/metartc5_jz/bin/app_debug/
cp yang_config.ini ~/metaipc/

        3. SecureCRT运行metaipc5

cp yang_config.ini ~/metaipc/
./metaipc5

        4. 下载chrome_linux64_stable_98.0.4758.102 这个版本的chrome,这个版本是2022-02-14更新的chrome,最新版chrome跟metaipc5不兼容,需要下载旧版chrome。

        4. ubuntu中进入metap2p5_html文件夹,chrome打开p2pdemo_zb.html文件。修改ip地址为开发板ip地址,点击“播放视频”按钮,下方video标签将会展示出视频。

5. 总结

        1. 目前实现的是基于开源版v5.0-b0 版本做的简单修改,官方的好几个版本都多少缺点东西,我这里给整理了一下。目前是局域网连接的webrtc,后续尝试走stun和turn试一下NAT穿越的效果。

### MetarTC 相关技术文档和项目 MetarTC 是一个专注于嵌入式和物联网领域的实时通信(RTC)库,旨在为第三代互联网(元宇宙)提供 RTC 能力。它实现了 WebRTC 协议,并支持多种音视频传输协议如 SRT 和 RTMP[^2]。以下是与 MetarTC 相关的技术文档和项目: #### 1. 官方文档与教程 MetarTC 提供了丰富的官方文档和教程,帮助开发者快速上手。其中包括: - **编译指南**:MetarTC 在 B 站上有完整的编译教程和视频[^2],解决了传统 WebRTC 编译复杂的问题。 - **集成文档**:提供了适用于 Android、Linux 和 Windows 的第三方类库二进制文件下载链接[^3],简化了开发者的集成流程。 #### 2. 云桌面解决方案 MetarTC 云桌面是一个基于 MetarTC 的产品,支持浏览器和客户端(Windows/Linux/嵌入式),并兼容 H264/H265 编码格式。此外,它还支持 Nvidia 和 Intel 的 GPU 编码,并集成了 WebRTC/RTMP 协议[^1]。这种方案可以轻松集成到其他产品和项目中。 #### 3. T31x 平台集成测试资源 针对 T31x 嵌入式平台,MetarTC 提供了专门的集成测试资源文件。这些资源文件包含必要的配置和测试脚本,能够显著简化 RTC 模块的集成流程[^4]。具体项目地址为 [https://gitcode.com/open-source-toolkit/d84fa](https://gitcode.com/open-source-toolkit/d84fa)[^5]。 #### 4. 国人社区与支持 MetarTC 拥有活跃的国人社区,开发者可以通过提交 issue 来提出功能需求或建议。社区会根据开发者的反馈更新迭代 MetarTC[^2]。此外,MetarTC 推荐使用 SRS(Simple Real-time Server)作为服务端,这是一款由国人开发的开源流媒体服务器[^2]。 #### 5. 技术对比与优势 相比于传统的 WebRTC,MetarTC 具有以下优势: - **体积小**:MetarTC 大多使用 C 语言开发,适合嵌入式设备,而 WebRTC 使用 C++ 开发,体积较大[^2]。 - **易于二次开发**:MetarTC 的代码量较小,二次开发难度低,且提供了完整的中文文档和支持。 - **更开放**:MetarTC 更加本土化,开发者可以根据需求定制功能[^2]。 ```python # 示例代码:MetarTC 集成测试脚本(简化版) def test_metartc_integration(): try: # 加载 MetarTC 库 import metartc # 初始化 RTC 模块 rtc = metartc.RTC() rtc.initialize() # 配置编码器 encoder = rtc.get_encoder("H264") encoder.set_parameter("bitrate", 2000) # 测试音视频传输 if rtc.test_audio() and rtc.test_video(): print("MetarTC 集成测试成功!") else: print("MetarTC 集成测试失败!") except Exception as e: print(f"错误: {e}") test_metartc_integration() ``` ###
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王方帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值