cesium 融合视频

0 如果是文件,那相当的简单

和untiy 一样,可以添加材质后,将image 直接给材质赋值上,其中abcd 是四个点,这四个点要经过计算

js 复制代码
<video id="video" style="display:none" controls loop autoplay>
	<source src="/static/video/zm.mp4" type="video/mp4">
</video>
//这个和unity 添加材质一样相当的简单
// 添加监控画面
    var videoEl = document.getElementById('video')
    var pArr = [a,b,c,d];
    var instance =new Cesium.GeometryInstance({
                  geometry:new Cesium.WallGeometry({
                    positions:Cesium.Cartesian3.fromDegreesArrayHeights(pArr),
                    minimumHeights:[100,100],
                  })
                });
                var material = Cesium.Material.fromType("Image");
                material.uniforms.image = videoEl;
                
                var tileset = viewer.scene.primitives.add(new Cesium.Primitive({
                  id:'video',
                  geometryInstances:instance,
                  appearance: new Cesium.MaterialAppearance({
                    closed:false,
                    material:material,
                  }),
                  show:false,
                }))

1 使用ffmepg nodejs 来转码

方案主要可基于ffmpeg的转码,使用 flv.js的 RTSP 播放方案(flv.js 是 Bilibili 开源的一款 HTML5 浏览器。依赖于 Media Source Extension 进行视频播放,视频通过 HTTP-FLV 或 WebSocket-FLV 协议传输,视频格式需要为 FLV 格式)。在视频融合的案例里面,一定要选择多路的websocket方案,因为http协议最多提供6路链接。

服务器端可以采用 express + express-ws 来进行编写, HTTP 请求发送到指定的地址时,启动 ffmpeg 串流程序,将 RTSP 流封装成 FLV 格式的视频流,推送到指定的 WebSocket 响应流中。

js 复制代码
let app = express();
app.use(express.static(__dirname));
expressWebSocket(app, null, {
    perMessageDeflate: true
});
app.ws("/rtsp", rtspRequestHandle)
app.listen(8888);

// 处理方法
function rtspRequestHandle(ws, req) {
    const stream = webSocketStream(ws, {
        binary: true,
        browserBufferTimeout: 1000000
    }, {
        browserBufferTimeout: 1000000
    });
    let url = req.query.url;

    try {
        ffmpeg(url)
            .addInputOption("-rtsp_transport", "tcp", "-buffer_size", "102400")
            .on("start", function () {
                console.log(url, "Stream started.");
            })
            .on("codecData", function () {
                console.log(url, "Stream codecData.")
            })
            .on("error", function (err) {
                console.log(url, "An error occured: ", err.message);
            })
            .on("end", function () {
                console.log(url, "Stream end!");
            })
            .outputFormat("flv").videoCodec("copy").noAudio().pipe(stream);
    } catch (error) {
        console.log(error);
    }
}

2 浏览器端采用flv.js进行播放:

这一部分在我的其他文章里可以看到

js 复制代码
<video id="player" width="480" controls autoplay></video>
if (flvjs.isSupported()) {
    let video = document.getElementById("player");
    if (video) {
      this.player = flvjs.createPlayer({
        type: "flv",
        isLive: true,
        url: `ws://localhost:8888/rtsp?url=rtsp://127.0.0.1:8555/demo`
      });
      this.player.attachMediaElement(video);
      this.player.load();
      this.player.play();
    }
}

方法改进

使用ffmpeg 来转码的方案并不专业,路数也有限,我公司提供真正专业的流媒体转码服务器

js 复制代码
viewer.entities.add({
  polygon: {
    hierarchy: new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray([......])),
    classificationType: Cesium.ClassificationType.BOTH,
    material: video
  }
});

使用媒体服务器,可以提供上百路的监控视频融合,使用c++ 语言进行编写,使用矫正,投影变换等算法进行视频的拼接融合,同时也提供unity 和 UE 的视频融合插件,以及融合以后进行视频算法分析。

相关推荐
m0_726365836 小时前
Ai漫剧系统 几分钟,让AI 把一篇小说变成了一部漫剧成片:从剧本到视频的全流程系统实现
人工智能·语言模型·ai作画·音视频
非凡ghost10 小时前
可拓浏览器:给手机浏览器装上“外挂“!2W+拓展+AI搜索,玩出无限可能!
windows·智能手机·音视频·firefox
美狐美颜SDK开放平台11 小时前
多场景美颜SDK解决方案:直播APP(iOS/安卓)开发接入详解
android·人工智能·ios·音视频·美颜sdk·第三方美颜sdk·短视频美颜sdk
ai产品老杨13 小时前
深度解析:基于国产化异构计算的 AI 视频管理平台架构——从 GB28181 接入到 NPU 边缘推流的解耦实践
人工智能·架构·音视频
watson_pillow13 小时前
音视频相关基础知识储备入门-字幕
音视频
程序员JerrySUN14 小时前
Jetson边缘嵌入式实战课程第二讲:JetPack 和 SDK Manager 是什么
c语言·开发语言·网络·udp·音视频
weixin_66816 小时前
NVIDIA VSSVideo Search and Summarization视频搜索与摘要蓝图详尽使用说明与技术报告版本
人工智能·音视频
jiayong2317 小时前
国内外视频/图像大模型与智能体工具平台竞品对比
ai·音视频·agent
视频技术分享18 小时前
技术赋能生态革新:音视频产业开启千亿增长新周期 视频会议成核心增长亮点
音视频
reasonsummer18 小时前
【教学类-160-14】20260425 AI视频培训-练习014“豆包AI视频《月下枯蔷(哥特风)》+豆包图片风格:油画”
人工智能·音视频·豆包