zoukankan      html  css  js  c++  java
  • JavaCV读取流设置超时

    JavaCV中FrameGrabber类可以连接直播流地址, 进行解码, 获取Frame帧信息, 常用方式如下

    FrameGrabber grabber = new FrameGrabber("rtsp:/192.168.0.0");

    grabber.start();

    while(true) {
      Frame frame = grabber.grabImage(); 

      // ...
    }


    实际上内部调用的是ffmpeg的avformat_open_input()方法去解析网络流,而ffmpeg的avformat_open_input()默认是阻塞的。

    当遇到解析错误的网络流时,会导致该函数长时间不返回。为此可以设置ffmpeg的-stimeout 的参数,要注意 -stimeout的单位是us 微秒(1秒=1*1000*1000微秒)。

    用法(设置在解析的 url 之前):

    1.javaCV

    FrameGrabber grabber = new FrameGrabber("rtsp:/192.168.0.0");
    // 增加超时参数 grabber.setOption("stimoout", "5*1000*1000");
    grabber.start; while(true) { Frame frame = grabber.grabImage(); // ... }

      

    2.ffmpeg命令行

    ffmpeg -stimeout 5000000  -i rtsp://admin:admin@192.168.7.102:554/h264...........
    

      

  • 相关阅读:
    SVG平移和缩放(鼠标滚轮)的实现
    CSS之容器水平垂直居中
    CSS之flex布局
    CSS之鼠标悬停——内容变深/变浅
    CSS之clip-path绘制多边形
    axios
    .Net 反射
    Redis
    .Net Core GRPC报错
    Python 京东云无线宝消息推送
  • 原文地址:https://www.cnblogs.com/weihuang6620/p/12089893.html
Copyright © 2011-2022 走看看