IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 基于SRS服务器实现Android-Web端视频通话(1):SRS服务器启用HTTPS -> 正文阅读

[移动开发]基于SRS服务器实现Android-Web端视频通话(1):SRS服务器启用HTTPS

基于SRS服务器实现Android-Web端视频通话(1):SRS服务器启用HTTPS

安装环境:
Linux version 5.8.0-63-generic (buildd@lgw01-amd64-035) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #71~20.04.1-Ubuntu SMP Thu Jul 15 17:46:08 UTC 2021

源码,如果github访问速度过慢,可以到镜像地址。下载文件操作不做阐述。

注意:如果要使用WebRTC,则需要使用SRS4.0版本。

官方文档,还是很全的。
由于网页想要调用摄像头和麦克风需要使用HTTPS或者localhost,所以要实现Android-Web端互通,则需要启用HTTPS。SRS是支持HTTP、HTTPS流互转的,可以Android端请求HTTP(如果使用HTTPS,没有有效证书的话,可以忽略证书请求)、Web端HTTPS。

编译完后先来看下conf目录,用于启动服务使用的配置文件。

root@ubuntu:/home/shencoder/srs/trunk/conf# ls
bandwidth.conf            exec.conf                 http.hls.conf                push.flv.conf
clion.conf                ffmpeg.transcode.conf     http.hooks.callback.conf     push.mpegts.over.udp.conf
clion-ingest.conf         forward.master.conf       http.mp3.live.conf           push.rtsp.conf
compatible.conf           forward.slave.conf        http.server.conf             realtime.conf
console.conf              full.conf                 https.flv.live.conf          regression-test.conf
dash.conf                 go-oryx-edge2.conf        https.hls.conf               rtc2rtmp.conf
demo.19350.conf           go-oryx-edge.conf         https.hooks.callback.conf    rtc.conf
demo.conf                 hds.conf                  https.rtc.conf               rtmp.conf
docker.conf               hls.conf                  http.ts.live.conf            security.deny.publish.conf
dvr.mp4.conf              hls.realtime.conf         ingest.conf                  server.crt
dvr.path.conf             http.aac.live.conf        ingest.rtsp.conf             server.key
dvr.segment.conf          http.api.raw.conf         origin.cluster.edge.conf     srs.conf
dvr.session.conf          http.flv.live.conf        origin.cluster.serverA.conf  srt2rtc.conf
edge2.conf                http.flv.live.edge1.conf  origin.cluster.serverB.conf  srt.conf
edge.conf                 http.flv.live.edge2.conf  origin.cluster.serverC.conf  transcode2hls.audio.only.conf
edge.token.traverse.conf  http.heartbeat.conf       origin.conf                  transform.edge.conf

dvr.xxx.conf:录像相关
https.xxx.conf:https相关
rtcxxx.conf:WebRTC相关

我们也可以自定义配置文件来满足我们的需求。

比如说我们要满足一个https、WebRTC、RTMP、录像的功能,大概就是这样(https.rtc2rtmp.dvr.conf):

listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;

http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
    https {
        enabled on;
        listen 8088;
        key ./conf/server.key;
        cert ./conf/server.crt;
    }
}

http_api {
    enabled         on;
    listen          1985;
    https {
        enabled on;
        listen 1990;
        key ./conf/server.key;
        cert ./conf/server.crt;
    }
}
stats {
    network         0;
}
rtc_server {
    enabled on;
    # Listen at udp://8000
    listen 8000;
    #
    # The $CANDIDATE means fetch from env, if not configed, use * as default.
    #
    # The * means retrieving server IP automatically, from all network interfaces,
    # @see https://github.com/ossrs/srs/wiki/v4_CN_RTCWiki#config-candidate
    candidate $CANDIDATE;
}

vhost __defaultVhost__ {
    rtc {
        enabled     on;
        rtc_to_rtmp on;
    }
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
    }
    dvr {
        enabled      on;
        dvr_path     ./objs/nginx/html/[app]/[stream].[timestamp].flv;
        dvr_plan     session;
    }
}

上面这种方式是系统自带的,要注意的是web端https页面不能调用http请求,推拉流也要是https的地址,注意端口。

还有另外一个操作,相当于是转发,查看具体操作流程

有一个问题就是部分Chrome浏览器无法正常使用WebRTC,黑屏,使用Edge就可以。还望知道的老铁告诉原因。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:33:43  更:2021-08-31 15:34:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/31 15:08:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码