行业知识
javacv FFmpegFrameGrabber 阻塞问题解决方法
2026-10-26 01:01:00
来源:互联网转载
org.bytedeco javacv 1.5.7
修改org.bytedeco.javacv.FFmpegFrameGrabber.java源码
()//1、在createDefault方法后添加 以下代码 /** * 读流超时时间 : 20秒 */ private static final int FRAME_READ_TIMEOUT = 20 * 1000; // 增加监听 private final AtomicLong lastFrameTime = new AtomicLong(System.currentTimeMillis()); private boolean interrupt_grab = false; public boolean isInterrupt_grab() { return interrupt_grab; } private final org.bytedeco.ffmpeg.avformat.AVIOInterruptCB.Callback_Pointer cp = new org.bytedeco.ffmpeg.avformat.AVIOInterruptCB.Callback_Pointer() { @Override public int call(Pointer pointer) { // 0:continue, 1:exit if (lastFrameTime.get() + FRAME_READ_TIMEOUT // 4 在使用FFmpegFrameGrabber读取帧时, isInterrupt_grab()进行退出循环while (true) {frame = grabber.grab();if (grabber.isInterrupt_grab()) {log.info("grabber Interrupt_read");break;}if (frame.image != null) {log.info("处理逻辑......");} } ()
上一篇:重庆本地服务器云主机价格表
下一篇:服务器显卡怎么插?