wjdawn08 2024-08-19 18:47 采纳率: 0%
浏览 4

求Native C++ RTSP wifi热点连接场景的简单库

现在项目有个需求,就是把Android录屏数据实时发送给另外一个Linux设备显示,就是串流传屏。要求延迟50ms内。
要求用RTSP协议Android推流和Linux拉流,不需要复杂的服务器。
在网上找了很多,有用live555,有用ZLMediaKit 我不需要这么复杂,因为Android支持mediacodec,已经把录屏数据编码成H265格式了。并且我接收端最多三个,一般就一个。

求一个简单的Native C++ RTSP的库。各位大拿有没有合适的?

谢谢。

  • 写回答

1条回答 默认 最新

  • 一直免费一直爽 2024-08-19 18:48
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    你可以尝试使用Live555库,它是一个开源的流媒体库,支持RTSP协议。虽然你可能觉得它有点复杂,但它是一个完整的解决方案,可以满足你的需求。以下是如何在项目中使用Live555库的简要说明:

    1. 首先,从GitHub上克隆Live555库的源代码:
    git clone https://github.com/ live555/live555.git
    
    1. 进入live555目录,编译并安装库:
    cd live555
    ./genMakefiles linux
    make
    sudo make install
    
    1. 在你的C++项目中,包含Live555库的头文件,并链接到库:
    #include "liveMedia.hh"
    #include "BasicUsageEnvironment.hh"
    #include "RTSPClient.hh"
    
    1. 使用Live555库创建一个RTSP客户端,连接到Android设备的RTSP服务器,接收H265编码的视频流:
    #include "liveMedia.hh"
    #include "BasicUsageEnvironment.hh"
    #include "RTSPClient.hh"
    
    int main(int argc, char* argv[]) {
      if (argc != 2) {
        fprintf(stderr, "Usage: %s <rtsp-url>
    ", argv[0]);
        return 1;
      }
    
      char const* rtspURL = argv[1];
    
      TaskScheduler* scheduler = BasicTaskScheduler::createNew();
      UsageEnvironment* env = BasicUsageEnvironment::createNew(*scheduler);
    
      RTSPClient* rtspClient = RTSPClient::createNew(*env, rtspURL);
      if (rtspClient == NULL) {
        *env << "Failed to create a RTSP client for URL \"" << rtspURL << "\": " << env->getResultMsg() << "
    ";
        exit(1);
      }
    
      MediaSession* session = MediaSession::createNew(*env, rtspClient, "video", "receivedVideoPayload");
      if (session == NULL) {
        *env << "Failed to create a MediaSession for URL \"" << rtspURL << "\": " << env->getResultMsg() << "
    ";
        exit(1);
      }
    
      // 在这里添加你的代码,处理接收到的视频帧数据
    
      *env << "Playing the stream... (Ctrl-C to exit)
    ";
      env->taskScheduler().doEventLoop(); // does not return
    
      return 0;
    }
    

    这个示例代码创建了一个RTSP客户端,连接到指定的RTSP URL(即Android设备的RTSP服务器地址),并创建一个MediaSession对象来接收视频流。你可以在// 在这里添加你的代码,处理接收到的视频帧数据这一行下面添加你的代码,处理接收到的视频帧数据。

    希望这个简单的示例能帮助你入门Live555库。如果你需要更多的帮助,请随时提问。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月19日

悬赏问题

  • ¥15 CCF-CSP 2023 第三题 解压缩(50%)
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现
  • ¥15 图像分割、图像边缘提取
  • ¥15 sqlserver执行存储过程报错
  • ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
  • ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
  • ¥100 matlab2009 32位一直初始化
  • ¥15 Expected type 'str | PathLike[str]…… bytes' instead
  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数