当前位置: 首页 > news >正文

盐城市网站重庆个人网站建设

盐城市网站,重庆个人网站建设,试述建设一个网站的具体步骤,淘宝数据网站开发MediaMTX简介 在web页面中直接播放rtsp视频流#xff0c;重点推荐#xff1a;mediamtx#xff0c;不仅仅是rtsp-CSDN博客 mediamtx github MediaMTX(以前的rtsp-simple-server)是一个现成的和零依赖的实时媒体服务器和媒体代理#xff0c;允许发布#xff0c;读取…MediaMTX简介 在web页面中直接播放rtsp视频流重点推荐mediamtx不仅仅是rtsp-CSDN博客 mediamtx github MediaMTX(以前的rtsp-simple-server)是一个现成的和零依赖的实时媒体服务器和媒体代理允许发布读取代理和记录视频和音频流。它被设想为一个“媒体路由器”将媒体流从一端路由到另一端。使用go语言开发的 特性 向服务器发布直播流从服务器端读取直播流流自动从一种协议转换为另一种协议在不同的路径上同时服务多个流记录流到磁盘认证用户;使用内部或外部身份验证重定向阅读器到其他RTSP服务器(负载平衡)通过API查询和控制服务器在不断开现有客户端连接的情况下重新加载配置(热重新加载)读取普罗米修斯兼容的指标在客户端连接、断开、读取或发布流时运行钩子(外部命令)兼容Linux, Windows和macOS不需要任何依赖或解释器它是一个单一的可执行文件 一、启动及配置 1、下载 mediamtx有各个环境下编译好的可执行文件直接下载对应的版本即可不用再交叉编译 https://githubfast.com/bluenviron/mediamtx/releases/tag/v1.4.2 包中只有mediamtx执行文件和mediamtx.yml配置文件 2、配置 mediamtx.yml配置文件中配置了各个流媒体配置各个流服务的端口如下 rtmp server端口1935rtsp server端口8554hls server端口8888webrtc server端口8889SRT server端口8890API端口9997 3、启动 mediamtx会默认匹配下面配置文件如果是部署在的其他目录下启动时需要手动指定配置文件路径 /usr/html/rtsp-simple-server.yml/usr/html/mediamtx.yml/usr/local/etc/mediamtx.yml/usr/etc/mediamtx.yml/etc/mediamtx/mediamtx.yml /usr/mediamtx/mediamtx /usr/mediamtx/mediamtx.yml 二、在web中播放webrtc 在web中不能直接播放rtsp流需要通过mediamtx流媒体服务器转换成rtmp或hls或webrtc流 经查阅mediamtx使用说明可知mediamtx可直接在web中通过在网页中嵌入iframe就可直接播放webrtc视频流 和 HLS视频流而且还支持多路转流也就是可以在web中播放多路rtsp视频流。 HLS视频流会有时延webrtc几乎是实时的在RK3568上经测试同时播放2路webrtc视频流还算流畅但是到4路就有点卡顿了top查看cpu占用率4个cpu基本已满负荷 1、单路播放 webrtc1.html iframe中的src地址需要根据推流的路径修改 !DOCTYPE html html headtitleWebRTC Video Stream Example/titlestyle#video-frame {width: 640px;height: 480px;border: 1px solid black;}/style /head bodydiviframe idwebrtc-frame srchttp://192.168.7.216:8889/video width1280 height720 scrollingno frameborder0 allowfullscreen/iframebutton idfullscreen-buttonToggle Fullscreen/button /divscriptvar iframeElement document.getElementById(webrtc-frame);function enterFullscreen() {if (iframeElement.requestFullscreen) {iframeElement.requestFullscreen();} else if (iframeElement.mozRequestFullScreen) {iframeElement.mozRequestFullScreen();} else if (iframeElement.webkitRequestFullscreen) {iframeElement.webkitRequestFullscreen();} else if (iframeElement.msRequestFullscreen) {iframeElement.msRequestFullscreen();}}function exitFullscreen() {if (document.exitFullscreen) {document.exitFullscreen();} else if (document.mozCancelFullScreen) {document.mozCancelFullScreen();} else if (document.webkitExitFullscreen) {document.webkitExitFullscreen();} else if (document.msExitFullscreen) {document.msExitFullscreen();}}document.getElementById(fullscreen-button).addEventListener(click, function() {if (isFullScreen()) {exitFullscreen();} else {enterFullscreen();}});function isFullScreen() {return document.fullscreenElement ||document.mozFullScreenElement ||document.webkitFullscreenElement ||document.msFullscreenElement;}/script /body /html 屏幕显示 pc端访问 2、多路播放 webrtc2.html iframe中的src地址需要根据推流的路径修改 !DOCTYPE html html headtitleWebRTC Video Stream Example/titlestyle.video-grid {display: grid;grid-template-columns: 1fr 1fr;grid-template-rows: 1fr 1fr;gap: 10px;height: 100vh; /* 让视频占据整个可视区域的高度 */}.video-item {width: 100%;height: 100%;border: 1px solid black;}/style /head bodydiv classvideo-gridiframe classvideo-item srchttp://192.168.7.216:8889/video193 scrollingno frameborder0 allowfullscreen/iframeiframe classvideo-item srchttp://192.168.7.216:8889/video194 scrollingno frameborder0 allowfullscreen/iframeiframe classvideo-item srchttp://192.168.7.216:8889/streamOnInit scrollingno frameborder0 allowfullscreen/iframeiframe classvideo-item srchttp://192.168.7.216:8889/streamOnDemand scrollingno frameborder0 allowfullscreen/iframe/div /body /html 屏幕播放 pc端访问 三、推流方式 1、命令行手动转流 在启动mediamtx后在后台通过ffmpeg命令行进行推流然后访问webrtc流地址播放视频 rtsp端口8554 webrtc端口8889 1、rtsp转webrtc ffmpeg -i rtsp://admin:wanweitech001192.168.7.193/Streaming/Channels/101 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/video url地址http://192.168.7.216:8889/video 2、本地mp4文件转webrtc ffmpeg -re -i /root/camera.mp4 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/video url地址http://192.168.7.216:8889/video 2、内置命令转流 通过mediaMtx流媒体内置命令配置将rtsp流使用ffmpeg进行转码推流到mediaMtx流媒体其实就是将手动转流命令添加到配置文件中然后指定其路径让服务器启动时 或是 拉流时 自动执行命令进行转流 ############################################### # Path settings# Settings in paths are applied to specific paths, and the map key # is the name of the path. # Any setting in pathDefaults can be overridden here. # Its possible to use regular expressions by using a tilde as prefix, # for example ~^(test1|test2)$ will match both test1 and test2, # for example ~^prefix will match all paths that start with prefix. paths:dhl:#source: rtsp://admin:wanweitech001192.168.7.193/Streaming/Channels/101source: rtsp://admin:wanweitech001192.168.7.193:554/h265/ch1/main/av_streampc:source: rtsp://192.168.6.52:8554/pcstreamOnInit:runOnInit: ffmpeg -i rtsp://admin:wanweitech001192.168.7.193/Streaming/Channels/101 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/streamOnInitstreamOnDemand:runOnDemand: ffmpeg -i rtsp://admin:wanweitech001192.168.7.193/Streaming/Channels/101 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/streamOnDemand# Settings under path all_others are applied to all paths that# do not match another entry.all_others: 3、api控制 服务器可以通过其API进行查询和控制这必须通过在配置中设置 API 参数来启用 3.1 配置文件 在 mediamtx.yml 配置文件中需要开启api功能端口默认为9997如下 3.2 api接口 详细的api接口定义详见 API文档MediaMTX API 下面是测试了用到的几个api。是使用的ApiPost7演示调用api 查看当前的所有配置http://localhost:9997/v3/config/paths/list查看当前的视频流http://localhost:9997/v3/config/paths/list修改配置http://localhost:9997/v3/config/global/patch添加一个现有的视频流http://localhost:9997/v3/config/paths/add/{name}删除一个视频流http://localhost:9997/v3/config/paths/delete/{name} 1修改配置 http://192.168.7.216:9997/v3/config/global/patch 全局配置有很多详细介绍可以查看作者的API文档说明。 2添加流 http://192.168.7.216:9997/v3/config/paths/add/apistream 添加一个现有的视频流添加后访问 192.168.7.216:8889/apistream body { source: rtsp://admin:wanweitech001192.168.7.193/Streaming/Channels/101 } 在web中播放 3删除视频流 http://192.168.7.216:9997/v3/config/paths/delete/apistream 四、记录码流到磁盘 要将可用流保存到磁盘需要在配置文件中设置 record 和 recordPath 参数 ################################################ Default path settings - Recording# Record streams to disk.record: yes# Path of recording segments.# Extension is added automatically.# Available variables are %path (path name), %Y %m %d %H %M %S %f %s (time in strftime format)recordPath: /usr/database/recordings/%path/%Y-%m-%d_%H-%M-%S-%f# Format of recorded segments.# Available formats are fmp4 (fragmented MP4) and mpegts (MPEG-TS).recordFormat: fmp4# fMP4 segments are concatenation of small MP4 files (parts), each with this duration.# MPEG-TS segments are concatenation of 188-bytes packets, flushed to disk with this period.# When a system failure occurs, the last part gets lost.# Therefore, the part duration is equal to the RPO (recovery point objective).recordPartDuration: 100ms# Minimum duration of each segment.recordSegmentDuration: 1h# Delete segments after this timespan.# Set to 0s to disable automatic deletion.recordDeleteAfter: 24h 配置的大概意思就是mp4 segment是由一个个的part连接组成recordPartDuration 配置的是一个part的时长recordSegmentDuration配置的是一个segment的时长也就是一个视频的时长recordDeleteAfter用于配置自动删除超过多长时间的视频 五、H265视频码流播放测试 网络摄像头可以输出265编码格式的视频流H265相比H264有更高的压缩率相同的视频质量下可使用更低的比特率来实现更小的文件大小或带宽占用。但是H265比H264的编码算法也更加复杂在解码播放时会占用更多资源解码速度也会更慢一些 想要在web中能播放H.265码流的视频需要具备2个条件 流媒体服务器支持H.265推流和拉流浏览器支持播放H.265码流的视频也就是浏览器可调用 H.265/HEVC 硬件解码器 1、mediamtx对H.265推流拉流支持情况 支持H265码流的RTSP推流 WebRTC不支持H265拉流HLS支持H265拉流 也就是说 HLS 是支持H265 RTSP -- HLS转流的WebRTC还不支持H265 RTSP -- WebRTC转流网上给的方案 是通过ffmpeg将265编码的视频流转成264编码的然后输出264编码的webrtc视频流。但是经测试ffmpeg在RK3568平台上调用 硬件编解码 时会报错调用不了硬件编解码 直接调用软件编解码导致非常卡顿帧率很低 调用硬件编解码 ffmpeg -i rtsp://admin:wanweitech001192.168.7.193/Streaming/Channels/101 -vcodec h264_rkmpp -b:v 1024k -vf scale1280:720 -bf 0 -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/video 调用软件编解码 ffmpeg -i rtsp://admin:wanweitech001192.168.7.193/Streaming/Channels/101 -vcodec libx264 -b:v 1024k -vf scale1280:720 -bf 0 -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/video 2、浏览器对#H.265码流播放支持情况 一方面由于H.265 是一种相对较新的视频编码标准还有就是H265标准的专利授权问题一些老版本的浏览器是不支持H.265视频播放的Chrom原生就是不支持的需要107版本以上浏览器。开启HEVC的支持可参考 链接。在Chrome浏览器地址栏输入about:gpu或 chrome://gpu 可查看对H265的支持情况 下面对几个浏览器做了下测试 浏览器 是否支持 86.0.4240.196版本360安全浏览器win7 可以播放 109.0.5414.120版本Chrome浏览器win7 不能播放 109.0.1518.12 版本Edge浏览器win7 不能播放 119.0.6045.200版本Chrome浏览器win10 可以播放 chromium-ozone-wayland_88.0.4324.150_aarch64 不能播放 在设备中播放时直接报错设备中的chromium不支持H.265码流解码 在360安全浏览器中播放 3、播放H.265码流视频方法 虽然 Chrome 浏览器没有原生支持 H.265但仍然有几种选择来播放 H.265 视频 使用第三方媒体播放器插件可以尝试安装支持 H.265 的媒体播放器插件如 VLC 播放器、PotPlayer、Media Player Classic 等。这些播放器通常可以直接播放 H.265 视频。转码为支持的编码格式如果你有 H.265 视频文件并且需要在 Chrome 浏览器中播放你可以考虑将视频文件转码为 Chrome 支持的编码格式如 H.264。可以使用视频转码工具如 FFmpeg、HandBrake进行转码。注意转码带来的一些缺点可能包括视频质量损失、文件大小增加以及转码过程可能需要较长时间。使用 WebAssembly 解码器WebAssembly 是一种可以在浏览器中运行高性能、本地代码的底层技术。有一些开源的 H.265 解码器如 libde265.js 和 x265.js利用 WebAssembly 技术可以在 Chrome 浏览器中播放 H.265 视频。但这需要在你的网站中进行开发和集成。 总之目前 Chrome 浏览器原生不支持直接播放 H.265 视频但可以通过安装插件、转码视频或使用 WebAssembly 技术来实现在 Chrome 浏览器中播放 H.265 视频的需求
http://www.w-s-a.com/news/725850/

相关文章:

  • 如何创建一个网站卖东西郑州 网站建设公司
  • 石景山郑州阳网站建设南京网站搜索引擎优化
  • 一个网站需要哪些备案书店网站建设策划书总结
  • 网站建设的重点是什么注册网站空间
  • 网站公司企业宗旨我的网站 dedecms
  • 沧州网站优化做详情图的网站
  • 中国建设银行公积金网站wordpress表单 post
  • 找权重高的网站方法wordpress视频网站上传视频
  • 营销型网站架构师迁移wordpress500错误
  • 做网站还是博客由()承担
  • wordpress 导购站模板中国最新军事新闻直播83军
  • 公众号h5网站开发wordpress文章主图
  • ps怎么艺术字字体设计网站我想自己做网站
  • 北京做机柜空调的网站模板网站和插件
  • 手机购物网站模板wordpress添加分类文档
  • 网站开发知识网上怎么申请个人营业执照
  • 音乐网站建设费用营销策略都有哪些4p
  • 深圳制作网站怎么样wordpress 学习视频
  • 新公司注册网站传奇手游大型网站
  • 无极网站网站涉案多少人被抓网站的按钮怎么做
  • ds216j做网站做购物网站那个好
  • 做淘宝门头的网站阿里巴巴官网app
  • 安踏网站建设策划方案如何通过域名访问网站
  • 建设网站破解版seo查询 站长之家
  • 太原模板建站平台旅游企业网站建设工作的通知
  • 网站国外建设超级简历模板官网
  • 上海网站建设市场医药网站怎么做
  • 宁夏成城建设集团网站网店美工课本
  • 哪些网站的简历做的比较好政务服务 网站 建设方案
  • 如何建设个人网站凡科怎么样vps安装wordpress后怎样登录