商城网站有免费建设的吗,网站建设补充报价单,惠州网站建设咨询,苏州做网站公司电话前言
用户对网络做了限制#xff0c;只能访问指定的网址#xff0c;和没网没啥区别#xff0c;导致无法连接外网#xff0c;无法获取安装包#xff0c;还有一些编译需要的开源工具
用户需要用平台查看库房的海康摄像头实时监控#xff0c;只能在库房里一台纯净的ubantu…前言
用户对网络做了限制只能访问指定的网址和没网没啥区别导致无法连接外网无法获取安装包还有一些编译需要的开源工具
用户需要用平台查看库房的海康摄像头实时监控只能在库房里一台纯净的ubantu电脑上离线部署一套流媒体服务给平台通过FFmpeg将海康rtsp流转为rtmp流推流给srs服务srs在转发这个流为三种格式供平台查看
rtmp://127.0.0.1/live/livestream http://127.0.0.1:8080/live/livestream.m3u8 http://127.0.0.1:8080/live/livestream.flv
如果有网直接用命令就行了
sudo apt-get update
sudo apt-get install -y build-essential git zlib1g-dev libssl-dev
git clone https://github.com/ossrs/srs.git
。。。。。。
可惜没网很恶心没弄过一头雾水怎么装是个问题下载好安装包了编译又编译不了少了一堆编译需要的包
尝试了很多方法最终都因没有网而放弃
后面终于尝试了用虚拟机里安装一个和现场库房电脑相同版本的ubuntu20.04试下每一步缺少少了什么包根据提示缺少的包下载下来然后在用sudo dpkg -i *.deb安装在进行下一步直到完成最终部署完成了
花了一周的时间从了解什么是流媒体然离线部署到电脑最终调通时间赶查资料后一步步完了
下面讲解下怎么完成的记录下来供需要的人看吧
1. 什么是FFmpeg 和 SRS区别是什么
FFmpeg 和 SRSSimple-RTMP-Server都是流媒体处理和传输中常用的工具但它们之间有一些重要的区别
1.1 FFmpeg
功能FFmpeg 是一个开源的多媒体框架可以用于处理音频、视频和其他多媒体数据。它支持大量的音视频编解码器以及格式转换。用途FFmpeg 可以用于录制、转换、编辑和流式传输音视频数据。它可以处理从简单的转码到复杂的视频处理任务。特点FFmpeg 提供了强大的命令行工具可以通过命令行接口执行各种音视频处理任务。它支持多种输入和输出格式并且可以在不同平台上运行。
1.2 SRSSimple-RTMP-Server
功能SRS 是一个开源的流媒体服务器软件专门用于实时音视频的传输和流式处理。它支持 RTMP、HLS 和 HTTP-FLV 等流媒体传输协议。用途SRS 主要用于搭建流媒体服务器用于实时音视频直播、点播等场景。它提供了优化的流媒体传输性能和功能。特点SRS 支持多种流媒体协议提供了配置简单、易于部署的特点。它适用于搭建小到中等规模的流媒体服务。
区别总结
FFmpeg 是一个多媒体处理框架用于处理音视频数据的编解码、转换和处理。SRS 是一个流媒体服务器软件用于搭建实时音视频传输服务。FFmpeg 更多用于处理音视频文件而 SRS 更多用于流式传输和直播服务。FFmpeg 是一个工具集SRS 是一个专门用于流媒体传输的服务器软件。
综上所述FFmpeg 和 SRS 在功能和用途上有所不同可以根据具体需求选择使用其中的一个或两者配合使用。
2. 部署前准备工作
因为没有网只能下载离线包在解压编译安装而纯净的ubuntu电脑上是没有编译环境的需要安装才行
接下来讲解怎么安装必备的基础编译环境包
先下载ffmpeg的压缩包下载地址https://ffmpeg.org/download.html
下载完后拿到有网纯净的ubuntu20.04 电脑上解压后进入ffmpeg目录下执行 ./configure
./configure 会检测你的系统环境包括操作系统类型、可用的编译器、库和工具等。这确保了软件能够在不同的系统上正确编译和运行 我执行了之后就提示了缺少gcc编译器那我获取下载一个gcc的deb包在安装就行了 下载软件包使用 apt-get 命令结合 -d 参数下载软件包。例如如果你想下载 nginx 软件包到指定位置可以执行以下命令 apt-get download -d nginx -oDir::Cache/home/your_username/apt-packages download告诉 apt-get 下载软件包。-d指示 apt-get 仅下载软件包而不安装。-oDir::Cache/home/your_username/apt-packages指定下载到的目录。请将 your_username 替换为你的实际用户名。
我在指定目录下创建一个gcc文件夹存放下载的gcc的deb包
apt-get download -d gcc -oDir::Cache/home/test/Desktop/my/offlinePack-deb/gcc 然后安装gcc提示gcc-9 没有安装我们重复上面的步骤下载即可 下载完了继续执行有提示少了某些库 重复以上步骤即可把所有底层需要的库都下载下来直到能安装GCC 最后下载了完这些就可以了 执行dpkg安装即可 安装完gcc之后继续执行./configure又提示少东西 重复上述步骤即可。。。。。
这是我下载完需要的东西 我写了一个脚本用于一键安装到时打包到离线的电脑上即可安装 3. FFmpeg部署
编译环境准备完成后在执行configure就不会报少东西了 然后在执行make编译ffmpeg5-10分钟需要一段时间等待即可 然后安装即可 4. srs部署
解压srs, 进入srs的trunk目录执行./configure 在执行make编译 编译完成后我不执行make install了不安装在电脑默认路径上我直接用现在的路径即可
这样就算部署完成了。
5.运行SRS
可以在srs/trunk/conf目录下可以看到很多配置文件关于音频视频的我也不怎么懂反正很丰富想了解的可以去查怎么用我用默认的方式就行了 进入srs才trunk目录然后用默认的方式运行srs服务
./objs/srs -c conf/srs.conf
在用命令tail -n 30 -f ./objs/srs.log 查看运行日志 6.运行FFmpeg
因为我已经make install 安装在系统默认位置了所以无论在什么位置都可以执行命令运行ffmpeg
我执行命令运行
ffmpeg -rtsp_transport tcp -i rtsp://admin:admin123192.168.1.65:554/Streaming/Channels/101 -c copy -f flv rtmp://127.0.0.1/live/livestream
这个命令是使用 ffmpeg 工具来从一个 RTSPReal-Time Streaming Protocol流摄像头、网络摄像机等中捕获视频并将其转发到一个 RTMPReal-Time Messaging Protocol服务器上进行实时流传输。下面是对命令中各部分的解释 ffmpeg: 这是一个流行的多媒体处理工具可以用来处理音频、视频等多媒体数据。 -rtsp_transport tcp: 这个选项指定了使用 TCP 作为 RTSP 传输协议。RTSP 通常可以使用 TCP 或 UDP 进行传输。 -i rtsp://admin:admin123192.168.1.65:554/Streaming/Channels/101: 这里是输入参数指定了要捕获的 海康摄像头RTSP 流的 URL。在这个例子中用户名为 admin密码为 admin123IP 地址为 192.168.1.65端口为 554并且流路径为 /Streaming/Channels/101。 -c copy: 这个选项指定了视频编解码器和音频编解码器的选择。在这里copy 表示不对音视频流进行重新编码只是复制输入的音视频流。 -f flv: 这个选项指定了输出格式为 FLVFlash Video。 rtmp://127.0.0.1/live/livestream: 这是输出的 RTMP 服务器地址和流名称。在这里rtmp://127.0.0.1/live 是 RTMP 服务器地址livestream 是流名称。
因此整个命令的作用是将从指定的 RTSP URL 获取的视频流通过 TCP 传输到本地并将其转发到指定的 RTMP 服务器上的 livestream 流中 运行后可以看到输入的流信息输出的流信息
7. 视频展示
推流给RSR服务后SRS会将流转发为三个流格式访问哪个都行
rtmp://127.0.0.1/live/livestream http://127.0.0.1:8080/live/livestream.m3u8 http://127.0.0.1:8080/live/livestream.flv
然后用终端用命令ffplay 播放视频验证即可ffplay是安装ffmpeg里自带的
ffplay rtmp://127.0.0.1/live/livestream ffplay http://127.0.0.1:8080/live/livestream.m3u8 ffplay http://127.0.0.1:8080/live/livestream.flv
或者用srs服务器里的播放器播放地址栏搜索127.0.0.1:8080即可查看srs服务信息 如果发现没有视频输出只有音频就要检查海康摄像头的视频输出配置对不对了
总结
难点在于离线的安装过程要是有网的话so easy!