调用Mertc的接口

概述
metaRTC5.0版本 API进行了重构,本篇文章将介绍webrtc传输调用流程和例子。

metaRTC5.0版本提供了C++和纯C两种接口。

ICE设置
iceCandidateType参数可以在配置文件yang_config.ini中配置,也可以在程序中赋值。
iceCandidateType=0 //0:host 1:stun 2:turn

[rtc]
enableDatachannel=0
iceServerIP=10.42.0.1
iceUsingLocalIp=0
iceLocalIP=192.168.1.102
iceCandidateType=0 //0:hots 1:stun 2:turn
iceStunPort=3478
iceServerIP=10.42.0.171
iceUserName=metartc
icePassword=metartc

int32_t err = Yang_Ok;
char* localSdp=NULL;
char* remoteSdp=NULL;
yangbool enableWhipWhep = yangtrue; 
YangRtcDirection direction = YangSendonly;//YangSendrecv,YangSendonly,YangRecvonly
YangPeerConnection *peer = (YangPeerConnection*)yang_calloc(sizeof(YangPeerConnection),1);
yang_create_peerConnection(peer);
peer->addAudioTrack(&peer->peer,Yang_AED_OPUS);
peer->addVideoTrack(&peer->peer,Yang_VED_H264);
peer->addTransceiver(&peer->peer,direction);
//sfu server
if(enableWhipWhep)
     err = peer->connectWhipWhepServer(&peer->peer,url);
else
     err = peer->connectSfuServer(&peer->peer);
//p2p
peer->createDataChannel(&peer->peer);//add datachannel
if((err=peer->createOffer(&peer->peer, &localSdp))!=Yang_Ok){
    yang_error("createOffer fail!");
    goto cleanup;
}
if((err=peer->setLocalDescription(&peer->peer, localSdp))!=Yang_Ok){
    yang_error("setLocalDescription fail!");
    goto cleanup;
}
......
//get remote peer sdp
if((err=peer->setRemoteDescription(&peer->peer,remoteSdp))!=Yang_Ok){
    yang_error("setRemoteDescription fail!");
    goto cleanup;
}

//deviser
//根据官网的sample写的demo如下,但它是建立在我们本身就有音视频的编码和采集模块,只作传输时使用。


YangContext* m_context=new YangContext();
    m_context->init();

int32_t err = Yang_Ok;

yangbool enableWhipWhep = yangtrue; 
YangRtcDirection direction = YangSendrecv;//YangSendrecv,YangSendonly,YangRecvonly
YangPeerConnection * peer = NULL;
peer = (YangPeerConnection*)yang_calloc(sizeof(YangPeerConnection),1);
//将参数传入  
	memcpy(&peer->peer.streamconfig.rtcCallback,&m_context->rtcCallback,sizeof(YangRtcCallback));  
	peer->peer.avinfo=&m_context->avinfo;  
    
    strcpy(peer->peer.avinfo->rtc.iceLocalIP, "192.168.100.240");
    strcpy(peer->peer.avinfo->rtc.rtcServerIP, "192.168.100.240");
    yang_create_peerConnection(peer);
    peer->init(&peer->peer);
    peer->addAudioTrack(&peer->peer, Yang_AED_OPUS);
    peer->addVideoTrack(&peer->peer, Yang_VED_H264);
    peer->addTransceiver(&peer->peer, YangRtcDirection::YangSendonly);
    // err = peer->connectSfuServer(&peer->peer);
    
    char *localSdp = (char *)calloc(12 * 1000, 1);
    peer->createOffer(&peer->peer, &localSdp);
    cout << "localSdp : " << localSdp << endl;
    peer->connectWhipWhepServer(&peer->peer,"http://192.168.100.240:1985/rtc/v1/whip/?app=live&stream=livestream");

    while (1)
    {
        sleep(9);
    }
    return 0;

//以上是伪代码
//deviser

libmetartccore2工程为C版webrtc实现
libmetartc2为C++版采集编解码等实现
纯C接口(pure C API)YangPeerConnection
头文件:include/yangrtc/YangPeerConnection.h
C++接口(C++ API)YangPeerConnection2
头文件:include/yangrtc/YangPeerConnection2.h
MetaRTC5.0 API
https://github.com/metartc/metaRTC/wiki/metaRTC5.0-API
Sample
https://github.com/metartc/metaRTC/wiki/metaRTC5.0-API-Sample
MetaRTC7 API
https://github.com/metartc/metaRTC/wiki/metaRTC7–API
7的Sample在首页
https://github.com/metartc/metaRTC
MetaRTC 连接信息回调函数
https://blog.csdn.net/m0_56595685/article/details/130165785
瑞芯微IPC
https://blog.csdn.net/m0_56595685/article/details/130910602?spm=1001.2014.3001.5502
讲解meta rtc push stream开源项目之一
https://zhuanlan.zhihu.com/p/512222819
gb2312
瑞芯微3588 V:接口采集 A:alsa
博通 V:v4l2 A:alsa
采集是v4l2,编码调用接口

支持:GB2811

1.浏览metartc官网WIKI,确认是否支持32位
2.配置metartc7/5环境,编译metapush7和metaplay7,并测试推拉流
3.编译demo调用metartc7 api,排查错误
4.看metartcplay7的代码结构,数据传递等

相关推荐

  1. 调用Mertc接口

    2024-05-11 08:02:02       33 阅读
  2. 调用GPT3接口一些参数

    2024-05-11 08:02:02       40 阅读
  3. Web Service接口HttpURLConnection调用

    2024-05-11 08:02:02       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 08:02:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 08:02:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 08:02:02       82 阅读
  4. Python语言-面向对象

    2024-05-11 08:02:02       91 阅读

热门阅读

  1. C数据结构:栈和队列应用场景

    2024-05-11 08:02:02       35 阅读
  2. ModbusTCP【C#】

    2024-05-11 08:02:02       30 阅读
  3. windows 集成docker以及镜像管理

    2024-05-11 08:02:02       37 阅读
  4. C++ QT设计模式:访问者模式

    2024-05-11 08:02:02       29 阅读
  5. Php 线程

    2024-05-11 08:02:02       30 阅读
  6. iOS面试题链接汇总

    2024-05-11 08:02:02       29 阅读
  7. es终止快照恢复进程的方法

    2024-05-11 08:02:02       30 阅读
  8. 设计模式:访问者模式

    2024-05-11 08:02:02       33 阅读
  9. HTML批量文件上传3—Servlet批量文件处理FileUpLoad

    2024-05-11 08:02:02       36 阅读
  10. 【Linux】如何查看Linux命令的使用方法

    2024-05-11 08:02:02       37 阅读
  11. SpringBoot MockMvc

    2024-05-11 08:02:02       30 阅读