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

网上开的公司网站打不开手机网站域名哪里注册

网上开的公司网站打不开,手机网站域名哪里注册,飞机免费代理ip,网站建设地图素材之前写的使用FFmpeg Nginx HLS流媒体播放方案#xff0c;适合对实时性要求不高的需求#xff0c;存在延迟#xff0c;FFmpeg需要将视频流存储到本地文件#xff0c;而本次方案FFmpeg不需要将视频流存储到本地文件#xff0c;而是直接将转换后的视频流#xff08;如MJPE…之前写的使用FFmpeg Nginx HLS流媒体播放方案适合对实时性要求不高的需求存在延迟FFmpeg需要将视频流存储到本地文件而本次方案FFmpeg不需要将视频流存储到本地文件而是直接将转换后的视频流如MJPEG格式通过标准输出stdout传递给WebSocket服务器WebSocket服务器再将数据实时推送到前端。这种方式是实时流传输适合需要低延迟的场景。 以下是详细的实现逻辑 1. FFmpeg 直接输出到 WebSocket 服务器 FFmpeg 通过命令行参数将 RTSP 流转换为 MJPEG 格式并将输出直接发送到标准输出stdout而不是保存到文件。WebSocket 服务器通过 Node.js 的 child_process 模块捕获 FFmpeg 的输出并将其转发给连接的客户端。 FFmpeg 命令 ffmpeg -i rtsp://your_rtsp_stream_url -f mjpeg -qscale:v 2 --i rtsp://your_rtsp_stream_url输入 RTSP 流地址。-f mjpeg输出格式为 MJPEG。-qscale:v 2设置视频质量值越小质量越高。-将输出发送到标准输出stdout而不是文件。 2. WebSocket 服务器捕获 FFmpeg 输出 WebSocket 服务器通过 Node.js 启动 FFmpeg 进程并监听其 stdout 数据流。每当 FFmpeg 输出一帧数据时WebSocket 服务器就将这帧数据发送给所有连接的客户端。 WebSocket 服务器代码 (server.js) const { spawn } require(child_process); const WebSocket require(ws);// 创建 WebSocket 服务器 const wss new WebSocket.Server({ port: 8080 });wss.on(connection, (ws) {console.log(Client connected);// 启动 FFmpeg 进程const ffmpeg spawn(ffmpeg, [-rtsp_transport, tcp, // 使用 TCP 传输 RTSP 流如果 UDP 不稳定-i, rtsp://admin:password192.168.1.60:554/Streaming/Channels/101/, // RTSP 流地址-f, mpegts, // 输出格式为 MPEG-TS-codec:v, mpeg1video, // 使用 MPEG-1 编码-s, 640x360, // 分辨率-b:v, 800k, // 视频比特率-bf, 0, // 禁用 B 帧-an, // 禁用音频pipe:1 // 输出到标准输出]);// 将 FFmpeg 的输出发送到 WebSocket 客户端ffmpeg.stdout.on(data, (data) {if (ws.readyState ws.OPEN) {ws.send(data); // 发送二进制数据}});// 处理 FFmpeg 的错误输出ffmpeg.stderr.on(data, (data) {console.error(FFmpeg error: ${data});});// 处理 FFmpeg 进程退出ffmpeg.on(close, (code) {console.log(FFmpeg process exited with code ${code});});// 客户端断开连接时关闭 FFmpeg 进程ws.on(close, () {console.log(Client disconnected);ffmpeg.kill(); // 杀死 FFmpeg 进程}); });console.log(WebSocket server is running on ws://localhost:8080);3. 前端使用 JsMpeg 播放视频流 前端通过 JsMpeg 库连接到 WebSocket 服务器并实时解码和播放 MJPEG 视频流。 前端代码 (index.html) !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleVideo Streaming/titlescript srchttps://cdn.jsdelivr.net/npm/jsmpeg/jsmpeg.min.js/script /head bodycanvas idvideo-canvas/canvasscript// 创建 JsMpeg 播放器const canvas document.getElementById(video-canvas);const player new JSMpeg.Player(ws://localhost:8080, {canvas: canvas});/script /body /html4. 运行流程 FFmpeg 从 RTSP 流中读取视频数据。将视频数据转换为 MJPEG 格式。将转换后的数据通过标准输出stdout发送。 WebSocket 服务器 启动 FFmpeg 进程并捕获其 stdout 数据。将捕获到的数据通过 WebSocket 发送给前端。 前端 使用 JsMpeg 连接到 WebSocket 服务器。接收并解码 MJPEG 数据实时显示在 canvas 中。 5. 优点 实时性视频流直接从 FFmpeg 推送到前端延迟较低。无需存储视频流不需要保存到本地文件节省磁盘空间。简单易用只需运行 FFmpeg 和 WebSocket 服务器即可。 6. 注意事项 FFmpeg 性能如果 RTSP 流的分辨率较高FFmpeg 的转换可能会占用较多 CPU 资源。可以通过调整 -qscale:v 参数来优化性能。网络带宽MJPEG 格式的视频流数据量较大确保网络带宽足够。WebSocket 连接数如果有多个客户端连接WebSocket 服务器需要处理更多的数据转发可能会增加服务器负载。 7. 总结 通过这种方式FFmpeg 直接将 RTSP 流转换为 MJPEG 格式并输出到 WebSocket 服务器WebSocket 服务器再将数据实时推送到前端前端使用 JsMpeg 进行播放。整个过程无需存储视频文件适合实时视频流传输的场景。
http://www.hkea.cn/news/14591934/

相关文章:

  • 胶南市城乡建设局网站开发一个手机app成本费用
  • 网站内链是什么 怎么做做推广必须知道的网站吗
  • 自己做的网站如何上线2345网址导航手机上网导航下载
  • 东游科技网站建设appstore官网入口
  • wordpress集成微博登录网站系统优化
  • 网站建设技术服务协议青海住房和城乡建设厅网站
  • 中国建设监理协会网站投稿网站手机端 怎么做
  • 江门网站建设外包外贸营销词
  • 网站建设需要集齐哪5份资料品牌建设的预期成果
  • 静海网站建设公司怎么设计自己logo图片
  • 网站后台编辑器内容不显示国内室内设计师排名
  • 养猪网站建设规划书三亚网上商城
  • 做百度推广需要网站吗淄博做淘宝网站
  • 建设户外腰包网站万网虚拟主机做网站教程
  • wordpress面页模板下长沙优化排名
  • 珠海网站设计培训班如何做设计师个人网站
  • 案例 网站商业计划书ppt免费模板下载
  • 成都学校网站建设企业广州建筑公司实力排名
  • 企业网站建设开发服务微网站建设使用程序
  • 自己做的网站怎么接入微信宁晋做网站
  • 怎么做网站跟域名建德网站优化公司
  • 网站做子页跳转到首页ps做网站原形
  • 扬州品牌网站设计给网站添加关键词
  • 网站所有权查询淄博网站设计公司
  • 阳泉营销型网站建设费用哈尔滨小程序制作公司
  • 高端网站建设创新上海网站建设联系电
  • 网站 linux 服务器配置wordpress源码导读
  • 网站建设的实训周万网域名查询ip
  • 网站如何建设推广seo整站排名
  • 两支队伍建设专题网站温州设计公司排名