javaCV系列文章:

' i# f% S' a# J9 X! w- g) wjavacv开发详解之1:调用本机摄像头视频

4 r' C, [4 ?' M7 Y; }javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV); P! z: b" t5 y# D

javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)

$ C9 w! ]' w( W; x8 k& LjavaCV开发详解之4:转流器实现(也可作为本地收流器、推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp流媒体服务器(基于javaCV-FFMPEG)% o  m! _; M! `8 O

javaCV开发详解之5:录制音频(录制麦克风)到本地文件/流媒体服务器(基于javax.sound、javaCV-FFMPEG)/ T; q& a- }. Y7 _

javaCV开发详解之6:本地音频(话筒设备)和视频(摄像头)抓取、混合并推送(录制)到服务器(本地)8 f+ Z; o7 @! W- L7 D3 g. J: U

javaCV开发详解之7:让音频转换更加简单,实现通用音频编码格式转换、重采样等音频参数的转换功能(以pcm16le编码的wav转mp3为例). |& Y" L5 N4 k8 Q7 e9 O! W5 Q! U' R

javaCV开发详解之8:转封装在rtsp转rtmp流中的应用(无须转码,更低的资源消耗,更好的性能,更低延迟)$ A0 A6 _  Q& C* ?! B  q4 A, @+ J  u

前言:javacv开发包是用于支持java多媒体开发的一套开发包,可以适用于本地多媒体(音视频)调用以及音视频,图片等文件后期操作(图片修改,音视频解码剪辑等等功能),这里只使用最简单的本地摄像头调用来演示一下javacv的基础功能8 Q8 y2 I* [* @

须知:0 B' ]( Z% d% _8 H. j' y& k2 o

javacv系列文章默认音视频处理使用ffmpeg,图像处理使用opencv,摄像头抓取使用opencv

+ X; w4 o9 E, Cjavacv官方github维护地址:https://github.com/bytedeco/javacv5 W: f- B" l' H8 F8 @5 Q9 O: U

1、使用最新的javacv1.4.4; S" ~5 z# ~. }) f" z$ ?

(注意:从其他地方下载的依赖包请积极开心的替换为官方jar包和博主提供jar包;如果使用其他jar包版本而导致出错,不要急着找博主问为啥会报错,先把jar包替换了再试试看)8 d# }9 a! f- \+ Z0 d' \/ U

(1)使用maven添加依赖

3 h+ {. w, L" V& Z& k1 k1 B) `$ p5 C

6 ]8 P8 O& k4 J3 l. C  org.bytedeco' e# f+ u( O8 ~0 Y% O8 e* c4 P

javacv-platform

! o6 t5 V( H$ F2 C4 y& N( l4 _  1.4.4/ u1 h2 S& a. A7 z- Q% l/ g5 X2 `

$ K3 w" ?1 b4 C" T

$ t" }& h7 C3 _4 I+ t  L2 j6 |: j9 m3 u$ X( n3 i8 y

(2)使用gradle添加依赖

( l! P) W& ^2 V$ Fdependencies {% u! V- b  E9 N7 {1 F

compile group: 'org.bytedeco', name: 'javacv-platform', version: '1.4.4'' P3 B. K7 m1 |5 q; m- c, b

}+ G4 @* J3 T/ q6 [9 L' ~

(3)使用本地jar包方式) A, f' w4 p, p

最新版实在太大,需要下载全量包的请到官方github.com/bytedeco/javacv下载* W" K( C  l0 r0 @3 u

javaCV1.3.3版本下载(全量包,文件名:javacv-platform-1.3.3-bin.zip,大小:212M):http://download.csdn.net/download/eguid_1/10146035

1 x9 ?2 p+ f4 x; C! C  ~jar包使用须知:

$ ^: X8 a4 m% T! T4 _/ owindows x64平台用到的opencv依赖:opencv.jar;oepncv-windows-x86_64.jar(其他平台替换为对应的jar包即可)。5 X" i. K$ ^" z* _( [

补充:" b- B: C' X" X) j/ L

1、如果是苹果mac系统,把oepncv-windows-x86_64.jar替换成这个包opencv-macosx-x86_64.jar8 ~0 R% u0 L, F, O1 ^

2、linux平台替换成这个包:opencv-linux-x86_64.jar

: P( ]7 O4 B5 j+ y- G3、安卓平台替换成opencv-android-arm.jar 或者opencv-android-x86.jar

3 G- X0 t1 W) e2 @maven和gradle方式如果想要减小依赖包大小,则需要手动进行排除不需要的平台依赖即可

/ O) n& @$ h; Z+ a6 c2、为什么不需要安装opencv?

- g/ |. R/ ~. V4 [: w. o( x从javacv0.8开始,已经不需要本地安装opencv,直接通过引用opencv对应的系统平台的引用包即可。

& g, G2 C% J& {# ^+ M0 z(比如oepncv-windows-x86_64.jar就是典型的64位windows环境依赖包)

* S1 T2 }0 _1 d9 x! Z, c( [. b

0 D% b2 q6 T- c1 v$ ?! [1 `4 Y9 I6 k- r: |

3、java通过javacv获取windows的摄像头视频

7 x! f5 H7 j' M/ Z6 H最终调用的摄像头实时视频图像界面:

! A3 H! l) N5 C8 x* S预览本机摄像头视频图像的简单实现:6 Q7 ?! J. T; J) r( Q, Q

9 o* `1 p$ a1 B$ S* @! K2 s  U- g; H% l

/**. U" |- |1 C% t, g6 x, U; _9 Y0 Q# A

* 文件名:javavcCameraTest.java

6 t  ^* C1 e9 o- y) U * 描述:调用windows平台的摄像头窗口视频( ^, U8 f. q( W

* 修改时间:2016年6月13日

9 @* h* u2 P& {0 @ * 修改内容:9 @2 ~* g# L, @1 a0 q

*/; f2 C7 |; p) D, T5 b! t( h  Z$ ~

package cc.eguid.javacv;

4 ]% m: p6 G) p( u, \" a: |$ wimport javax.swing.JFrame;

( B7 [3 n7 \7 I/ timport org.bytedeco.javacv.CanvasFrame;

# Y# [! c. S8 z8 bimport org.bytedeco.javacv.OpenCVFrameConverter;3 E+ E$ |; O4 b; q6 z2 E

import org.bytedeco.javacv.FrameGrabber.Exception;

* m& m6 e3 j( b2 ~, a. zimport org.bytedeco.javacv.OpenCVFrameGrabber;) H, p- c& t0 Q* t

/**

7 U+ o3 W* Z  V) i' j * 调用本地摄像头窗口视频

6 S$ l( s% W4 L! q3 o * @author eguid

. Z6 H, ]' ~3 ?. T5 V0 | * @version 2016年6月13日

6 b  a/ O% V8 ^! ? * @see javavcCameraTest( _( h: H3 `5 F. |5 Y* _

* @since javacv1.2

! l# _; _- r2 u6 |9 y */

% B) O+ w" r$ K, F. t" }2 E4 gpublic class JavavcCameraTest5 w1 g; v& O8 R: S

{

% ^+ w; t( [2 c6 Dpublic static void main(String[] args) throws Exception, InterruptedException- m, \" V: t; b5 s5 l" ^% L

{' \2 B  m9 C' m+ h

OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);2 I5 e8 x$ |$ e) i

grabber.start();  //开始获取摄像头数据& o- ?" I- P: I/ V0 ~

CanvasFrame canvas = new CanvasFrame("摄像头");//新建一个窗口1 H( V' v6 Z0 e5 D4 b- c1 S

canvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);3 J4 U. Q. ?! H$ Y' G

canvas.setAlwaysOnTop(true);

% u3 d$ [, u" ^3 i% G

# z7 n7 k7 T0 Y9 j* H; A6 H  [' Y% s9 r" T1 f

while(true)) E2 B' X  F( b( j8 _. M$ s

{$ g4 t* m& O3 o2 t0 ^0 @1 x+ o0 N. Y

if(!canvas.isDisplayable())

2 |5 W! Y* K+ u7 p    {//窗口是否关闭) x8 k! I& I4 q, ^3 k, f/ X  w& W

grabber.stop();//停止抓取" ^! G' ^# T& Z3 }0 O7 f

System.exit(2);//退出% n1 Y/ J( s# W

}1 T/ `5 o5 L% v8 F0 }3 f2 L' Z

canvas.showImage(grabber.grab());//获取摄像头图像并放到窗口上显示, 这里的Frame frame=grabber.grab(); frame是一帧视频图像$ m0 X0 e) j- v5 W

Thread.sleep(50);//50毫秒刷新一次图像" R8 X# S" J! l0 [0 c

}/ [' L2 E. M! _; o, o

}

# h9 R/ I) a4 ^- C}8 o0 r9 `0 d) e# x

+ N6 h. f6 d) a8 d- Q. U

* L: b$ `1 G& }( R9 O是不是很简单,原本很复杂的流媒体操作,javaCV能够帮助我们快速实现。- k5 w8 D* [! e  J# h4 \

支持eguid原创

" M  R7 k, ]! I( F, _& _. E0 u下一章将会讲解如何把本地摄像头的视频录制成文件以及推送到流媒体服务器

: Z% U9 v% T8 {1 X+ O. ?1 T$ QjavaCV开发详解之2:推流器实现和摄像头录制视频功能(支持windows/linux/mac/Android/ios全平台)) e1 I8 ]" M  A

( [5 j$ T' u" j+ `- |Java吧 收集整理 java论坛 www.java8.com

java录制视频_javacv开发详解之1:调用本机摄像头视频(建议使用javaCV最新版本)...相关推荐

  1. java 推流_JavaCV开发详解之2:截取推流服务器视频的某帧或本地视频的某帧

    引入依赖 org.bytedeco javacv 1.5.3 org.bytedeco javacv-platform 1.5.3 代码实现 package com.java.mmzsblog; im ...

  2. 基于Java的音频转发服务器_javaCV开发详解之5:录制音频(录制麦克风)到本地文件/流媒体服务器(基于javax.sound、javaCV-FFMPEG)...

    javaCV系列文章: 补充篇: 前言:本篇文章基于javaCV-FFMPEG,关于javaCV官方是没有文档或者api文档可以参考的,所以还有很多地方需要研究: 本章对于ffmpeg的需要有一定了解 ...

  3. JAVA使用摄像头录制_JavaCV开发详解之1:调用本机摄像头视频(建议使用javaCV最新版本)...

    引入依赖 org.bytedeco javacv 1.5.3 org.bytedeco javacv-platform 1.5.3 代码实现 package com.java.mmzsblog; im ...

  4. java基础与案例开发详解 pdf下载_Java基础与案例开发详解(张孝祥) pdf_IT教程网...

    资源名称:Java基础与案例开发详解(张孝祥) pdf 第1.2和3章介绍Java环境的安装配置,Java程序的开发过程和Java语言的基础语法. 第4章介绍数组和常用算法的相关知识. 第5章和6章介 ...

  5. Google VR全景图片与视频功能开发详解

    1. VR开发概述 时下关于"谷歌.Android与VR"的各种言论纷飞.VR群里有人在争论Android VR是不是一体机,是不是类似Android Wear.为VR打造的全新平 ...

  6. java 音频转码_javaCV开发详解之7:让音频转换更加简单,实现通用音频编码格式转换、重采样等音频参数的转换功能(以pcm16le编码的wav转mp3为例)...

    javaCV系列文章: 补充篇: 前言: 之前几章把javaCV-FFmpeg中的能够实现的基本功能大致梳理了一遍,本章在之前几章基础上实现一个通用的音频编码和参数转换器 实现功能: ①音频编码转换② ...

  7. ADI Blackfin DSP处理器-BF533的开发详解52:图像处理专题-CMOS摄像头采集图像(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 功能介绍 板卡上设计了一个摄像头接口,可以连接 ...

  8. JavaCV开发详解专栏文章目录(JavaCV速查手册)

    本章作为**JavaCV开发详解**专栏的目录. 为了方便大家分类查找,我们把分为两个目录: 第一个分类目录,根据文章技术类型进行分类. 第二个目录,按照博主更新顺序排列. 有些文章既是设备采集又实现 ...

  9. 图像视频滤镜算法详解系列

    序言 为什么要写滤镜相关的内容? 这个问题其实不用回答,大家活在互联网高度发达的社会,发照片,发视频就像吃饭穿衣睡觉一样,已经成为了我们生活中的一部分,在发照片,发视频前,有谁没有用过一些特效处理呢? ...

最新文章

  1. intellij打开工程在每个java文件上有个红色的无效符的解决办法
  2. mac搭建php审计环境,[php审计实战篇]Simple-Log v1.6 安装逻辑问题
  3. Java中12个原子操作类
  4. 使用GDAL对HDF数据进行geoloc校正
  5. mysql配置参数优化提示
  6. 微型计算机原理控制,微机原理与控制技术(试题).doc
  7. 软件系统设计-12-软件设计体系结构概述
  8. 将excel中的列转置成行
  9. Linux timeout命令
  10. 语法长难句之从句——名词性从句
  11. 安装win7时,出现“windows无法安装到这个磁盘,选中的磁盘采用GPT分区形式”的处理方式
  12. flex布局 justify-content 新属性值 space-evenly
  13. 软件测试工程师成长之路:掌握软件测试九大技术主题
  14. iframe标签使用
  15. Roll A Ball
  16. 笔记本电脑没有WiFi选项 解决办法
  17. ios avplayer播放完毕监听
  18. Windows安装本地组策略编辑器【gpedit.msc】
  19. 一分钟解决“仅限中国大陆地区播放” (转)
  20. mac电脑触控板快速选择(三指拖移、三指选择)

热门文章

  1. 201606120030-软一-周翊涵
  2. 从头开始学Linux
  3. vscode terminal点击i编辑,esc退出编辑无效
  4. 从neo4j-broswer中剥离graph图表
  5. 计算机应用基础统试题及答案,计算机应用基础统试题及答案
  6. 支付的那些事——领域模型篇
  7. 电脑需要安装安全管家吗?火绒安全值不值得推荐?
  8. Revit API 开发(12): Revit 文件存储结构
  9. 安装MongoDB出现service MongoDB failed to start,verify that you have sufficient privileges to start syste
  10. 赛舟-体验版 α测试调试方法