javaCV开发详解补充篇:基于avfoundation的苹果Mac和ios获取屏幕画面及录屏/截屏以及摄像头画面和音频采样获取实现

javaCV系列文章:

javacv开发详解之1:调用本机摄像头视频

javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)

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

javaCV开发详解之4:转流器实现(也可作为本地收流器、推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp流媒体服务器(基于javaCV-FFMPEG)

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

javaCV开发详解之6:本地音频(话筒设备)和视频(摄像头)抓取、混合并推送(录制)到服务器(本地)

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

javaCV开发详解之8:转封装在rtsp转rtmp流中的应用(无须转码,更低的资源消耗,更好的性能,更低延迟)

javaCV开发详解之9:基于gdigrab的windows屏幕画面抓取/采集(基于javacv的屏幕截屏、录屏功能)

javaCV开发详解之10:基于dshow调用windows摄像头视频和音频,想要获取屏幕画面首选gdigrab

补充篇:

javaCV开发详解补充篇:基于avfoundation的苹果Mac和ios获取屏幕画面及录屏/截屏以及摄像头画面和音频采样获取实现

音视频编解码问题:javaCV如何快速进行音频预处理和解复用编解码(基于javaCV-FFMPEG)

音视频编解码问题:16/24/32位位音频byte[]转换为小端序short[],int[],以byte[]转short[]为例

实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)

java原生实现屏幕设备遍历和屏幕采集(捕获)等功能

javacv文字识别系列:

javaCV文字识别之1:基于google的tesserac ocr识别图片中的文字,跨平台支持英文中文简体繁体等各种字符识别

javaCV文字识别之2:视频文字识别和视频提取字幕文字字符

javacpp-ffmpeg系列:

javacpp-FFmpeg系列之1:视频拉流解码成YUVJ420P,并保存为jpg图片

javacpp-FFmpeg系列之2:通用拉流解码器,支持视频拉流解码并转换为YUV、BGR24或RGB24等图像像素数据

javacpp-FFmpeg系列之3: 图像数据转换(BGR与BufferdImage互转,RGB与BufferdImage互转)

javacpp-FFmpeg系列补充:FFmpeg解决avformat_find_stream_info检索时间过长问题

javacpp-opencv系列:

一、javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作

二、javaCV图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制

三、javacv图像处理3:使用opencv原生方法遍历摄像头设备及调用(方便多摄像头遍历及调用,相比javacv更快的摄像头读取速度和效率,方便读取后的图像处理)

四、javacv图像处理系列:国内车辆牌照检测识别系统(万份测试准确率99.7%以上)

 

一、前言

在javaCV开发详解之9和10两篇中通过gdigrab获取windows屏幕画面,可以用来实现高帧率、任意范围的屏幕录制截屏等功能以及通过dshow获取windows下的摄像头和音频,虽然dshow因为兼容性问题目前并不支持获取屏幕画面,但是好在gdigrab效果很好,可以满足需要,本章主要补充苹果Mac和ios下基于avfoundation的屏幕获取,来实现录屏、截屏等功能。

 

本章有且只参考了ffmpeg官方文档关于avfoundation的使用指南:https://ffmpeg.org/ffmpeg-devices.html#avfoundation

Macos版本的ffmpeg下载地址:https://evermeet.cx/ffmpeg/

 

二、实现功能

1、屏幕画面获取、录屏、截屏

2、摄像头画面获取

3、音频获取

 

三、如何获取avfoundation支持设备及设备序号

1、通过ffmpeg命令行

具体命令参考fmpeg官方文档关于avfoundation的使用指南:https://ffmpeg.org/ffmpeg-devices.html#avfoundation

ffmpeg -f avfoundation -list_devices true -i ""

命令行返回结果中的设备列表:

 AVFoundation video devices:

[0] FaceTime HD Camera

[1] Capture screen 0

AVFoundation audio devices:

[0] Built-in Microphone

其中[]中的就是设备序号,在下面的代码中需要使用到该设备序号。

完整阅读本章地址:https://blog.csdn.net/eguid_1/article/details/105839113

posted @ 2020-05-13 09:21  eguid  阅读(742)  评论(0编辑  收藏  举报