提示:安卓、RK3288、虚拟摄像头
文章目录
前言
提示:由于项目技术要求,需要在RK3288开发板安卓5.1上实现虚拟摄像头,同时能够实现自定义播放视频内容,例如本地视频文件,rtsp视频流等。
自从接到项目后,经过二个星期的技术攻关,完美实现,现总结实现过程内容,
以作备忘之用与技术积累、同时让有需求朋友可以参考少走坑坑洼洼。
本实现过程内容涉及的技术范畴比较广:ubuntu 14.0.4、安卓5.1源代码、安卓系统相机、
v4l2loopback(虚拟摄像头)、rk3288 firefly开发板、ffmepg、android studio2020.3.1等等。为了少走弯路,我尽量在内容里把细节关键点内容会加上。
由于技术项目的保密性,应用场景我就不说了,网友们可以自已参考应用场景,这里主要是实现过程的记录。
关键性代码,如果有需要,可以私聊我。
一、v4l2loopback是什么?
v4l2loopback是一个在Linux下轻松实现虚拟摄像头的开源模块。
github地址:GitHub - umlaeute/v4l2loopback: v4l2-loopback devicev4l2-loopback device . Contribute to umlaeute/v4l2loopback development by creating an account on GitHub.https://github.com/umlaeute/v4l2loopback注:在Linux下与安卓系统下使用方法与编译方法都是不一样的。后面章节会介绍到。
本项目v4l2loopback版本是最新版本。
二、ffmepg是什么?
FFmpeg是一款集音视频编解码、录制、播放、格式转换等功能为一体的多媒体开发套件,它为开发者提供了丰富的音视频处理的调用接口。FFmpeg提供丰富的命令行方式,本项目部分功能都是在其下实现的。在这里首先感谢本项目组彪哥的支持,因为彪哥之前项目使用过ffmpeg实现过转流。
本项目FFmpeg使用版本是4.1.4 。
三、Ubuntu 环境准备
项目里的ffmepg、v4l2loopback、还有安卓源代码需要ubuntu环境进行编译,在这个项目我们选择ubuntu 14.04 LTS 64位作为编译环境,VMware® Workstation10.0.0 build-1295980是我们虚拟机版本号,到网上下载好ubuntu 14.04 LTS 64位, 就可以安装了。虚拟机硬件参数设置如下:
顺便提一下,我的硬盘是固态硬盘,因为我试过,如果用机械硬盘的话,编译安卓源代码的话,慢得要哭。为了赶进度,我们重新购了一台新的笔记本电脑。
安装好后,执行以下工作内容:
(1)开启root密码:
sudo passwd root
注:输入root密码。确认退出,以后所有编译工作都是在root用户进行,最好不要开通root登录界面工作,因为我试过,开通后,用root登录进不了系统(为了省事,就没有折腾,重装算了)。
(2)、更新sources.list
vi /etc/apt/sources.list // 打开文件。输入以下内容。Ubuntu缺省的配置的源并不是国内的服务器,下载更新软件都比较慢,所以要换成aliyun的。
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
(3)、sudo apt-get update
(4)、sudo apt-get install alien
(5)、sudo apt-get install software-properties-common python-software-properties
(6)、sudo add-apt-repository ppa:webupd8team/java
(7)、sudo apt-cache search jdk //可以查找当前有哪个版本的jdk,我安装的是openjdk-7-jdk
(8)、sudo apt-get install openjdk-7-jdk
(9)、sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev
(10)、sudo apt-get install libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl
(11)、sudo apt-get install libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils
(12)、sudo apt-get install xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev
(13)、sudo apt-get install lib32readline-gplv2-dev gcc-multilib libswitch-perl
(14)、sudo apt-get install libssl1.0.0 libssl-dev
请稍等、待续...2022-08-10 Open