返回顶部
首页 > 资讯 > 后端开发 > Python >javaCV开发详解之收流器实现
  • 273
分享到

javaCV开发详解之收流器实现

2024-04-02 19:04:59 273人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

本章基于javaCV实现收流器功能和录制功能 补充:基于本功能可以实现远程流媒体服务器实时视频录制到本地 一、开发所依赖的包 javacv.jar,javacpp.jar,FFmpe

本章基于javaCV实现收流器功能和录制功能

补充:基于本功能可以实现远程流媒体服务器实时视频录制到本地

一、开发所依赖的包

javacv.jar,javacpp.jar,FFmpeg.jar,ffmpeg-系统平台.jar,OpenCV.jar,opencv-系统平台.jar。 其中ffmpeg-系统平台.jar,opencv-系统平台.jar中的系统平台根据开发环境或者测试部署环境自行更改为对应的jar包,比如windows7 64位系统替换为ffmpeg-x86-x64.jar

本章使用windows环境开发,基于javaCV的基础支撑包以及ffmpeg-3.1.2-1.2.jar、ffmpeg-3.1.2-1.2-windows-x86.jar、ffmpeg-3.1.2-1.2-windows-x86_64.jar;

二、代码实现

本功能采用按帧实现收流器录制功能



public static void frameRecord(String inputFile, String outputFile, int audiochannel)
throws Exception, org.bytedeco.javacv.FrameRecorder.Exception {
	boolean isStart=true;//该变量建议设置为全局控制变量,用于控制录制结束
	// 获取视频源
	FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(inputFile);
	// 流媒体输出地址,分辨率(长,高),是否录制音频(0:不录制/1:录制)
	FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(outputFile, 1280, 720, audioChannel);
	// 开始取视频源
	recordByFrame(grabber, recorder, isStart);
}

private static void recordByFrame(FFmpegFrameGrabber grabber, FFmpegFrameRecorder recorder, Boolean status)
		throws Exception, org.bytedeco.javacv.FrameRecorder.Exception {
	try {//建议在线程中使用该方法
		grabber.start();
		recorder.start();
		Frame frame = null;
		while (status&& (frame = grabber.grabFrame()) != null) {
			recorder.record(frame);
		}
		recorder.stop();
		grabber.stop();
	} finally {
		if (grabber != null) {
			grabber.stop();
		}
	}
}

3、测试收流器录制功能

inputFile设置为服务器播放地址,outputFile设置为本地地址,这里演示.mp4,也可以是flv等其他后缀名


public static void main(String[] args)
		throws FrameRecorder.Exception, FrameGrabber.Exception, InterruptedException {
	 String inputFile = "rtsp://admin:admin@192.168.2.236:37779/cam/realmonitor?channel=1&subtype=0";
	 // Decodes-encodes
	 String outputFile = "recorde.mp4";
	 frameRecord(inputFile, outputFile,1);
}

以上就是javaCV开发详解之收流器实现的详细内容,更多关于javaCV收流器的资料请关注编程网其它相关文章!

--结束END--

本文标题: javaCV开发详解之收流器实现

本文链接: https://lsjlt.com/news/124259.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • javaCV开发详解之收流器实现
    本章基于javaCV实现收流器功能和录制功能 补充:基于本功能可以实现远程流媒体服务器实时视频录制到本地 一、开发所依赖的包 javacv.jar,javacpp.jar,ffmpe...
    99+
    2024-04-02
  • javaCV开发详解之推流器和录制器的实现
    功能 实现边播放边录制/推流,停止预览即停止录制/推流 开发所依赖的包 javacv.jar,javacpp.jar,ffmpeg.jar,ffmpeg-系统平台.jar,openc...
    99+
    2024-04-02
  • javacv开发详解之调用本机摄像头视频
    目录前言依赖配置说明1.使用maven添加依赖2.使用gradle添加依赖3.使用本地jar包方式为什么不需要安装opencv?获取摄像头视频前言 javacv开发包是用于支持jav...
    99+
    2024-04-02
  • Java 流处理之收集器详解
    Java 流(Stream)处理操作完成之后,我们可以收集这个流中的元素,使之汇聚成一个最终结果。这个结果可以是一个对象,也可以是一个集合,甚至可以是一个基本类型数据。 以记录&nb...
    99+
    2024-04-02
  • Springboot详解RocketMQ实现消息发送与接收流程
    springboot+rockermq 实现简单的消息发送与接收 普通消息的发送方式有3种:单向发送、同步发送和异步发送。 下面来介绍下 springboot+rockermq 整合...
    99+
    2024-04-02
  • JavaCV实战之调用摄像头基础详解
    目录关于《JavaCV的摄像头实战》系列本篇概览环境和版本信息源码下载基本套路分析基本框架编码部署媒体服务器关于《JavaCV的摄像头实战》系列 《JavaCV的摄像头实战》顾名思义...
    99+
    2024-04-02
  • Android开发笔记之:Splash的实现详解
    什么是SplashSplash也就是应用程序启动之前先启动一个画面,上面简单的介绍应用程序的厂商,厂商的LOGO,名称和版本等信息,多为一张图片,显示几秒钟后会自动消息,然后显...
    99+
    2022-06-06
    android开发 Android
  • .NET6开发之实现缓存过程详解
    目录需求目标原理与思路实现使用原生ResponseCaching实现缓存使用Marvin.Cache.Headers实现更多缓存功能一点扩展总结参考资料需求 有的时候为了减少客户端请...
    99+
    2024-04-02
  • ReactRefs转发实现流程详解
    目录Refs转发概述转发refs到DOM组件组件库维护者的注意事项在高阶组件中转发refs在 DevTools 中显示自定义名称Refs转发 概述 将ref自动地通过组件传递到子组件...
    99+
    2022-12-03
    React Refs转发 React Refs作用
  • 使用javaCV怎么实现一个推流器和录制器
    这篇文章给大家介绍使用javaCV怎么实现一个推流器和录制器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。功能实现边播放边录制/推流,停止预览即停止录制/推流开发所依赖的包javacv.jar,javacpp.jar,...
    99+
    2023-06-14
  • JavaGUI图形界面开发实现小型计算器流程详解
    目录一、设计目标二、界面设计三、功能实现四、全部代码五、功能测试六、小结一、设计目标 (1)主要功能:实现简单的加、减、乘、除等双目运算,和开平方、百分数等单目运算 (2)辅助功能:...
    99+
    2022-11-13
    Java GUI 图形界面 计算器 Java 计算器
  • C#开发WinForm之DataGridView开发详解
    DataGridView是C# WinForm中常用的控件之一,用于显示和编辑数据。本文将详细介绍DataGridView的开发过程...
    99+
    2023-08-15
    C#
  • Android开发之电话拨号器实例详解
    本文实例分析了Android开发之电话拨号器的用法。分享给大家供大家参考,具体如下: 1、新建一个名为javacallPhone的安卓项目,并在cn.csdn.hr.activ...
    99+
    2022-06-06
    电话 android开发 Android
  • React18之update流程从零实现详解
    目录引言对比Mount阶段beginWork流程复用fiberNodeuseFiber删除旧的和新建fiberNodecompleteWork流程commitWork流程更新upda...
    99+
    2023-01-10
    React18 update流程 React update
  • Android 开发订单流程view实例详解
     Android 开发订单流程view实例详解 先看看最终效果图: 怎么样,效果还是很不错的吧?群里有人说切四张图的、recycleview的、各种的都有啊,但是最...
    99+
    2022-06-06
    view Android
  • Python实现B站UP主小助手详解开发流程
    功能点 显示日期时间显示树莓派当前局域网IP显示当前UP主粉丝数显示B站未读消息显示B站视频总计播放数显示视频总计获赞数显示总计获得充电次数显示直播间人气值显示直播间弹幕将直播间弹幕...
    99+
    2024-04-02
  • SpringBoot开发详解之Controller接收参数及参数校验
    目录Controller 中注解使用传输参数的几种Method获取参数的几种常用注解使用对象直接获取参数使用@Valid对参数进行校验总结Controller 中注解使用 接受参数的...
    99+
    2024-04-02
  • Android开发之Activity详解
    【Activity】   一个Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,例如拨号、拍照、发送email、看地图。每一个activity...
    99+
    2022-06-06
    activity android开发 Android
  • Android开发之AppWidget详解
    Android通知系统是它的一大特色,而其中,AppWidget是其中一个亮点。在开发应用的中,很多时候可以为其添加一个AppWidget显示在桌面中,及时方便的与用户进行 交互。这...
    99+
    2024-04-02
  • Android Mms之:接收信息流程(图文详解)
    信息的接收工作是由底层来完成的,当有一个 新的信息时底层完成接收后会以Intent的方式来通知上层应用,信息的相关内容也包含在Intent当中,Android所支持的信息Int...
    99+
    2022-06-06
    信息流 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作