• nodejs将rtsp视频流打上水印后通过websocket发送给前端


    网上有把rtsp流通过websocket发送到前端的方法,就是用rtspStream,具体代码如下:

    1. var stream = require('node-rtsp-stream')
    2. stream = new stream({
    3. name: 'name',
    4. streamUrl: 'rtsp://xxxxx',
    5. wsPort: 9999,
    6. })

    我们还需要给视频加上水印,比如我需要给视频进行画框,可以采用ffmpeg来进行画框

    ffmpeg的代码如下

    ffmpeg -i ${rtspUrl} -vf "drawbox=${watermarkX}:${watermarkY}:${watermarkWidth}:${watermarkHeight}:red@0.5" 

    你可以使用ffplay试播放一下

    ffplay -i ${rtspUrl} -vf "drawbox=${watermarkX}:${watermarkY}:${watermarkWidth}:${watermarkHeight}:red@0.5"

    但是如果将ffmpeg的这个代码推至留一个rtsp流中就会报错,而且报错没有报错信息,只有一些奇怪的东西报错上来(目前还不知道原因,如果知道了原因会补上)

    ffmpeg -i ${rtspUrl} -vf "drawbox=${watermarkX}:${watermarkY}:${watermarkWidth}:${watermarkHeight}:red@0.5" -f rtsp rtsp://localhost:8554/output

    stderr: Input #0, rtsp, from 'rtsp://admin:shuju12345@192.168.120.201:554/Streaming/Channels/101':
      Metadata:
        title           : Media Presentation   
      Duration: N/A, start: 0.040000, bitrate: N/A

    stderr:   Stream #0:0: Video: hevc (Main), yuv420p(tv), 1920x1080, 25 fps, 25 tbr, 90k tbn

    stderr: Stream mapping:
      Stream #0:0 -> #0:0 (hevc (native) -> mpeg4 (native))

    后来在网上找了很多办法,最后发现可以在rtspstream里面使用ffmpeg,不用再新建一条rtsp流,代码如下:

    1. stream = new stream({
    2. name: 'name',
    3. streamUrl: 'rtsp://xxx',
    4. wsPort: 9999,
    5. ffmpegOptions: { // options ffmpeg flags
    6. '-stats': '', // 没有必要值的选项使用空字符串
    7. '-vf': `drawbox=${watermarkX}:${watermarkY}:${watermarkWidth}:${watermarkHeight}:red@0.5`,
    8. '-s': '1920*1080', // 视频窗口大小 1920*1080 或 2560*1920
    9. '-r': 25, // 视频帧率
    10. }
    11. })

    这样就可以在传输的过程中直接绘制图形。

  • 相关阅读:
    Uniapp中的事件处理:uni.emit和uni.on/uni.once
    C++类与对象(lesson1)
    37页数字乡村振兴智慧农业整体规划建设方案
    游戏陪玩小程序怎么开发-游戏陪玩小程序功能
    时间序列预测 Graph-WaveNet:Graph WaveNet for Deep Spatial-Temporal Graph Modeling
    为什么心脏长在左边?
    从小白到程序员的攻略(适合自学编程的网站)
    1414;【17NOIP普及组】成绩(信奥一本通)
    【文件I/O】(二)文件IO
    c++11 map自定义key
  • 原文地址:https://blog.csdn.net/ArmadaDK/article/details/132622518