动态公网IP 和 SRS-CarlZeng

动态公网IP(Dynamic Public IP)是指由互联网服务提供商(ISP)分配给用户的动态IP地址,该地址是公共的,可以在公共互联网上访问。
与静态公网IP不同,动态公网IP是临时分配的,并且在一段时间后可能会更改。这意味着每次重新连接到互联网时,用户可能会被分配一个新的动态公网IP地址。

动态公网IP通常用于个人用户或小型企业,因为它们相对便宜,而且不需要用户进行任何配置或管理。但是,由于其不稳定性和易变性,动态公网IP可能不适合需要稳定和持久的互联网连接的大型企业或组织。

联通的adsl用户可以打10010 叫客服打开“动态公网IP” + 路由器桥接。(缘由:需要动态公网ip做监控或者访问服务

开启动态公网IP+路由器桥接以后, 路由器上拨号即可得到一个公网IP.

OpenWRT 路由器 设置端口映射, 即可将局域网内主机的端口 映射到公网IP的特定上。

题外话(弯路):(Padavan的系统,在端口映射是使用单独的工具(socat耗内存)来实现端口数据转发,OpenWrt的iptables更可靠,扎实稳定)

下面以mac电脑,架设SRS服务器 来:分享流媒体至互联网。

1. 安装SRS步骤

(安装Docker.dmg后, 运行下面的指令)

SRS文档:https://ossrs.net/lts/zh-cn/docs/v4/doc/getting-started
首先要先把安装好的Docker启动,屏幕右上角会出现鲸鱼背楼的图标,确保其正在运行。
Steps to run docker:

  1. cd /Users/abc/WebstormProjects/srs/srs/trunk
  2. 运行:
    1
    docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4 ./objs/srs -c conf/docker.conf 
  3. 推流(循环读取音视频文件,进行推送)
    1
    ffmpeg -re -stream_loop -1 -i './...' -c copy -f flv rtmp://localhost/live/livestream
    备注:-stream_loop 中 -1 表示无限循环;0表示 不循环;适合于小文件

4. 播放观看

http://localhost:8080/players/srs_player.html

5. 外网映射

注意: 映射的时候不能使用8080端口, 建议使用60000以上的端口 (因isp防火墙已封锁这些特殊的端口)
建议使用frp,具体的配置方法可参考https://freefrp.net/docs
或后续的相关文字 ,运行命令:./frpc -c frpc.ini

2. 推流方案

使用obs推流

下载并安装 obs-studio-29.0.2-macos-arm64.dmg

Obs 打开后右下角的设置 >直播 >服务选择自定义服务器为rtmp://localhost/live/, 推流码为1(可以是任意数字和字母,可理解为房间号)
添加内容(音频,视频)后,点击开始直播。

———播放部分———

最终得到的 播放地址为: http://localhost:60080/live/1.flv
工具可选用VLC或者网页形式http://localhost:8080/players/srs_player.html

经验:

使用ffmpeg3流远程m3u8媒体时,经常会容易断流或电脑休眠后会断流, 这时我们最好使用 obs 转播来源为window capture的方案。

20230419 Update

问题:那如果我仅仅需要修改镜像文件中的某个特定的html,我要怎么做? 如果您只需要修改镜像文件中的某个特定的 HTML 文件,可以通过以下步骤来实现: 1. 下载 SRS 镜像文件并创建容器。
docker run -it -p 1935:1935 -p 1985:1985 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4

2. 进入容器,并找到您需要修改的 HTML 文件所在的路径。

docker exec -it /bin/bash
cd /usr/local/srs/objs/nginx/html/

3. 使用文本编辑器修改 HTML 文件。

vi index.html
保存修改并退出容器。

4. 使用 docker commit 命令将修改后的容器保存为新的镜像。

docker commit

5. [optional]将新的镜像推送到 Docker 镜像仓库中(如果需要)。

docker push

6. 在部署 SRS 服务时,使用新的镜像标签来启动容器。

docker run -it -p 1935:1935 -p 1985:1985 -p 8080:8080 需要注意的是,这种方式只适用于修改镜像中的某个特定的文件。如果您需要对 SRS 的配置文件或者其他文件进行修改,建议使用 Dockerfile 来自定义 SRS 镜像。 ————————————————————————

使用vMix推流

vMix: Live Video Streaming Software

vMix
https://www.vmix.com
vMix is a live streaming and live production software video mixer and switcher for Windows. Easily Produce, Record and Live Stream professional looking …

VS OBS, it sounds like vMix is better

状态:待测试

错误及解决方案

问题:vi index.html. 提示错误:bash: vi: command not found。 我要怎么办?
如果在容器中执行 vi 命令时提示 command not found 错误,说明容器中没有安装 vi 编辑器。

您可以尝试使用其他文本编辑器来修改 HTML 文件,例如 nano 或者 emacs。这些编辑器通常已经包含在大多数 Linux 发行版中,也可以通过 apt-get 命令进行安装。

例如,您可以使用以下命令来安装 nano 编辑器:

apt-get update && apt-get install -y nano
然后,使用 nano 命令来编辑 HTML 文件:

nano /usr/local/srs/objs/nginx/html/index.html
编辑完毕后,使用 CTRL + X 快捷键保存修改并退出编辑器。