悄摸直播 —— JavaCV实现本机摄像头画面远程直播

播流器

一、功能说明

从rtmp服务器中获取视频流数据 + 展示直播画面

二、代码实现

/**
* 播流器
* @param inputPath rtmp服务器地址
* @throws Exception
* @throws org.bytedeco.javacv.FrameRecorder.Exception
*/
public static void pullStream(String inputPath) throws Exception, org.bytedeco.javacv.FrameRecorder.Exception {
//创建+设置采集器
FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(inputPath);
grabber.setOption("rtsp_transport", "tcp");
grabber.setImageWidth(960);
grabber.setImageHeight(540); //开启采集器
grabber.start(); //直播播放窗口
CanvasFrame canvasFrame = new CanvasFrame("悄摸直播——来自"+inputPath);
canvasFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
canvasFrame.setAlwaysOnTop(true);
OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat(); //播流
while (true){
Frame frame = grabber.grabImage(); //拉流
opencv_core.Mat mat = converter.convertToMat(frame);
canvasFrame.showImage(frame); //播放
}
}

三、测试播流器

public static void main(String[] args) throws Exception, org.bytedeco.javacv.FrameRecorder.Exception {
//rtmp服务器地址
String inputPath = "rtmp://192.168.1.48/live/stream";
pullStream(inputPath);
}

如果出现“悄摸直播——来自XXX”的swing窗口,并能正常播放直播画面,则播流器成功。

最新文章

  1. SWT使用注意点
  2. iOS多线程开发
  3. mysql中profile的使用
  4. 标准库中的-stack
  5. DDD:Command模式的好处
  6. memcached的LRU删除机制
  7. Python-Day15 JavaScript/DOM
  8. C#控制定位Word光标移动到任意行或者最后一行,取得光标位置等操作
  9. Java OCR tesseract 图像智能字符识别技术 Java实现
  10. 阿里云ONS而微软Azure Service Bus体系结构和功能比较
  11. 《Hadoop权威》学习笔记四:Hadoop的I/O
  12. Scala课程01
  13. Tsinsen-A1491 家族【并查集】
  14. js一些重点知识总结(一)
  15. Hibernate4+EhCache配置二级缓存
  16. Ubuntu上搭建SVN
  17. 如何让 Git 使用 HTTP 代理服务器
  18. python chr()和ord()的含义和使用方法
  19. 使用idea搭建SSM框架
  20. 性能测试三:jmeter进阶之图形插件

热门文章

  1. java什么是跨平台性?原理是什么?
  2. [转]swagger2 入门教程
  3. seo优化:302跳转变为301跳转
  4. poj2632 累死了
  5. H3C 配置NAPT
  6. linux 使用 /proc 文件系统
  7. H3C 三种生成树协议的端口状态对比
  8. 深度解读 - TDD详细(测试驱动开发)
  9. EF 配置多个数据库
  10. docker ps 显示指定的列