那天去逛商场看到有个营业厅,本想进去问问有没有存话费送话费的活动,结果被忽悠办了一个19.9升千兆宽带加送一个路由器的业务。

网络环境验证

听他们说现在家庭宽带都是有公网IPV6地址的,立马用电脑试了下确实有IPV6地址。
赶紧随便写了几行代码,测了下外网的机器能不能通过家里的ipv6地址访问到家里的http接口,结果发现访问不到。

搜了下资料说可能是被家庭光猫给墙了,需要用超级管理员登录光猫后台把防火墙给关了。

移动光猫账号: CMCCAdmin 密码:aDm8H%MdA

登录了一下发现我家的光猫压根就没有关闭防火墙这功能,好吧~那看来只好使出必杀器。

用家用路由器来拨号上网。

修改前后拓扑变化情况如下:

换成路由器拨号以后再用外网的机器试一下:

curl http://[2409:8a62:e36:b7c0:6780:3696:f68c:58a7]:12345/healthz

外网能通过家庭ipv6地址能请求到了,网络环境准备就绪。再用手机随便打开一个测试网站测试一下网速:

平均600+Mbps,没有达到千兆宽带的1000Mbps,先凑合着用吧。(后面再换个速率更高的光猫试试)


家用宽带直播

接下来就来试试这几年比较火热的直播技术。
先来了解一下一个简单的直播流程各处理节点流程:

  1. 先由视频采集设备进行信息采集(音视频采集)
  2. 采集之后再使用程序(如FFmpeg)将采集的信息进行转换,推送给直播源服务(转码、推流)
  3. 为了加速用户端对直播的查看效率,一般会再使用cdn服务进行拉流,此文中没有此步骤(CDN缓存加速)
  4. 用户端使用对应的客户端进行查看直播视频(拉流)

资源规划

先规划一下网络资源:

摄像机IP(tp-link)

  • ipv4地址:192.168.31.169

FFmpeg+LAL

  • ipv4地址:192.168.31.165
  • ipv6地址:2409:8a62:e36:b7c0:64be:e0be:be0f:8beb

测试客户端

  • 某外网服务器,有ipv6地址

音视频采集

音视频采集部分用家用摄像头。
正好618的时候刚买了一个支持rtsp协议的tplink摄像头。

获取到摄像头的ip后,进入摄像头的管理后台,设置好用户名密码后,再看一下rtsp的端口,如这里的554端口。

接着再根据tplink官网的信息(接入—通过RTSP拉取摄像机监控画面的方法),拼接出摄像头对应的rtsp请求地址。
以ip为192.168.31.169,rtsp端口为554为例,则rtsp地址为:

rtsp://admin:123456@192.168.31.169:554/stream1

为了验证,也可以先找个支持rtsp的播放器先试一下,如以VLC media player为例,在要播放的网络地址中以上信息,可以看到效果则证明没有问题。

源站搭建(LAL)

音视频采集到了后,就可以准备向源站推数据了。
为了后期的探究方便,这里也使用一款开源的源站-LAL。

其github地址如下:https://github.com/q191201771/lal

由于lal是一个开源的流媒体服务端,源码都有了想咋部署就咋部署。

这里为了方便,就还是使用最简单的docker方式来启动:

#拉取lal镜像
docker pull q191201771/lal
#docker中运行lal,并使用默认配置
docker run -it -p 1935:1935 -p 8089:8080 -p 4433:4433 -p 5544:5544 -p 8083:8083 -p 8084:8084 -p 30000-30100:30000-30100/udp q191201771/lal /lal/bin/lalserver -c /lal/conf/lalserver.conf.json

这样lal就启动好了

转码工具FFmpeg安装

直播源站server启动好了后,就可以推流了。这里使用到的仍然是开源的FFmpeg工具。

FFmpeg项目源码在github的访问地址为:https://github.com/FFmpeg/FFmpeg

由于FFmpeg是C写的,如果使用源码方式编译和安装的话稍微有点复杂。
这里为了快速体验仍然使用docker方式来使用FFmpeg。

docker run jrottenberg/ffmpeg

docker run -it --name app_ffmpeg -p 8081:8080 -v /home/app_ffmpeg/:/mnt/app/ --entrypoint=‘bash’ jrottenberg/ffmpeg

执行后能进入到容器内就代表启动FFmpeg成功了。

推流与拉流

一切准备就绪后,就可以开始来进行推流(主播)和拉流(观众)了。

推流

在FFmpeg容器内输入以下地址进行推流:

ffmpeg -re -stream_loop -1 -y -i rtsp://admin:123456@192.168.31.169:554/stream1 -c:v copy -rtsp_transport tcp -af arealtime -f rtsp rtsp://192.168.31.165:5544/live/tplink-cam1

参数说明:
"-re"表示以实时模式推流
"-i rtsp://admin:123456@192.168.31.169:554/stream1"表示输入为rtsp流
"-c:v copy"表示音频编码格式不变
"-f rtsp"表示输出格式为rtsp
"rtsp://192.168.31.165:5544/live/tplink-cam1"表示推流到该地址。

推流成功后也可进入lal的web界面查看一下:

浏览器访问:http://ip:8083/lal.html

拉流

lal支持多种拉流方式,如RTMP、RTSP、HTTP-FLV、HLS等应有尽有。

详细还可通过lal的官方文档中查看:lalserver 各协议推拉流url地址列表

VLC player拉流

上面推流成功后,先用VLC播放器试试能不能播放。
播放网络地址中填入:

rtsp://192.168.31.165:5544/live/tplink-cam1

播放画面如下:

播放正常

http拉流

再找一台有ipv6地址的服务器,用http拉一下流:

curl -6 -g -O http://[2409:8a62:e36:b7c0:64be:e0be:be0f:8beb]:8089/live/tplink-cam1.ts

[root@localhost ~]# curl -6 -g -O http://[2409:8a62:e36:b7c0:64be:e0be:be0f:8beb]:8089/live/tplink-cam1.ts% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100 2523k    0 2523k    0     0  64277      0 --:--:--  0:00:40 --:--:-- 79032

外网拉流成功~

使用家庭宽带和摄像头,实现公网直播相关推荐

  1. 家庭宽带在有ipv6公网环境下,配置本地tomcat服务器+域名+ssl+ddns,实现ipv6建站、搭建简易的文件服务器、搭建webdav服务器等功能

    必备条件: 宽带运营商提供了ipv6 光猫拨号改为路由器拨号且路由器开启了ipv6 运营商未屏蔽ipv6的80/443端口(如果屏蔽了常用端口,那么可以尝试高一点的端口号.端口号范围:1 - 6553 ...

  2. 基于IPv6的家庭宽带个人私有云Web-http服务器的配置

    IPv6技术在国内陆陆续续推广了十几年了,一直都不温不火,其实技术是很成熟的,从零几年开始的教育网建设就可以看出,不过随着近两年 工信部发文<推进互联网协议第六版(IPv6)规模部署行动计划&g ...

  3. 如何访问部署在家里的服务器(家庭宽带能够申请公网IP)

    使用场景: 家庭影音库 个人电子图书馆 私人网盘 个人博客.网站 家用NAS 代码仓库 1.动态域名解析DDNS.动态公网IP地址概念 公网IP是有限的网络资源,宽带运营商一般只给用户分配动态的内网I ...

  4. 家庭宽带 动态公网IP,使用腾讯云DDNS实现实时更新DNS解析记录

    解决DDNS问题 动态公网IP 环境说明: 我是家庭宽带 只能申请到动态的公网ip,好处是不花钱,弊端是每次重启光猫,都会重新获取一个新的公网IP 为解决此办法,我尝试了很多个DDNS的方案. 包括但 ...

  5. 如何将安防摄像头接入互联网直播服务器

    转载请注明出处:https://blog.csdn.net/impingo 项目地址:https://github.com/im-pingo/pingos 项目官网:http://pingos.io ...

  6. 专线宽带和家庭宽带有什么区别呢?网络专线有哪些?

    众多周知,宽带分为专线宽带和家庭宽带两种,普通家庭接入的都是家庭宽带,而一些企业以及服务器等云服务商则通常用的是专业宽带. 什么是专线? 专线是指依托国内骨干网及宽带城域网资源,提供多种专线接入方式, ...

  7. 计算机网络里什么叫专线,专线和宽带的区别有哪些_专线网络和家庭宽带的具体区别介绍...

    随着互联网的高速发展,宽带走进了千家万网,现在每家每户基本上都牵了宽带了,但是很多人不知道的是宽带还有两种线路,它分为专线和家庭宽带两种,那么什么是专线网络?专线和家庭宽带又有哪些区别?下面智能手机网 ...

  8. 家庭宽带搭建ipv6私人网盘

    家庭宽带搭建ipv6私人网盘 起:本人穷,只能购买1核2G1M的云服务器,访问大一点的图片就很吃力,于是乎想着将家中1000M的宽带拿来做服务器网络,访问服务器理论上行100MB/s,下行30MB/s ...

  9. 网络:简述对家庭宽带和专线(企业宽带)的认识

    网络:简述对家庭宽带和专线(企业宽带)的认识 众所周知,宽带主要分为专线(企业宽带)和家庭宽带两种.一般来说,企业的服务器以及云服务提供商则通常用的是专线,而一般普通家庭接入的是家庭宽带. 一.专线 ...

最新文章

  1. 汇编指令mrs_汇编指令 - Mrs.kang - 博客园
  2. mysql 返回最大值列名_多列求最大值列和列名
  3. 模拟器中文输入法设置
  4. 编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略
  5. 《零基础看得懂的C语言入门教程 》——(七)C语言的循环分分钟上手
  6. 解决阿里云 ssh 远程连接短时间没操作就会断掉的问题
  7. ecs服务器换系统,ecs服务器更换操作系统
  8. 15 岁黑进系统,发挑衅邮件意外获 Offer,不惑之年捐出全部财产,Twitter CEO 太牛了!...
  9. 显控触摸屏与STC51单片机modbus通讯程序,包含触摸屏程序与c51代码
  10. FreeCAD源码分析:Part模块
  11. 用python写模拟鼠标脚本
  12. C语言程序设计专栏索引
  13. 元宇宙、区块链和潘家园
  14. hackintosh技巧
  15. vue axios实战,请求天气预报接口
  16. 云服务器显示异地登录,云服务器异地登录异常
  17. 常用的电脑显示器接口有哪几种?
  18. Excel中如何批量合并相同内容单元格
  19. android 颜色color.xml文件及部分中英文对照
  20. vue 使用fetch 出现问题解决以及 相应知识学习

热门文章

  1. python中的for-else用法
  2. 7.7 竞赛题目选讲
  3. C语言中exit(0)与exit(1)有什么区别
  4. KD随机振荡指标简介
  5. Linux:无法删除文件,不允许操作
  6. 用心学习,拒绝浮躁,学编程必读(转)
  7. 初识C++与Visual Studio(3)——解决方案资源管理器及常用项目属性介绍
  8. 社区团购:下沉市场风口再起,群雄逐鹿乾坤未定
  9. Android ART Hook 实现 - SandHook
  10. 小米盒子连接老式电脑显示器(VGA接口)