由于RootEncoder基于Kotlin编码,引入了最新的Android开发技术,因此需要使用较新的Android Studio才能成功导入运行。接下来以Android Studio Ladybug(小瓢虫版本)为例,介绍如何通过Android Studio编译运行RootEncoder的demo工程。
使用Android Studio导入RootEncoder工程之后,Gradle会报错“The project is using an incompatible version (AGP 8.13.0) of the Android Gradle plugin. Latest supported version is AGP 8.7.2”。这是因为RootEncoder工程用到的Gradle插件版本8.13.0太高了,需要降级降到8.7.2。于是打开RootEncoder/gradle/libs.versions.toml,把下面这行
agp = "8.13.0"
复制代码
改为下面这行,也就是把agp版本号从8.13.0降到8.7.2。
agp = "8.7.2"
复制代码
3、调整默认的JDK版本
在Android Studio主界面依次选择菜单:File→Settings→Build,Execution,Deployment→Build Tools→Gradle,把Gradle JDK栏的版本调整为JDK17。
因为Android Studio Ladybug自带的JDK版本为21,在编译时会报错:“Java compiler version 21 has deprecated support for compiling with source/target version 8.”。
四、运行RootEncoder的DEMO工程
再次点击直播按钮可停止推流,点击左下角的录制按钮可录制视频,点击右下角的切换按钮可切换前后摄像头。那么点击直播按钮开始推流,RootEncoder就把摄像头采集到的视频数据向MediaMTX推流。
然后电脑打开VLC media player,依次选择菜单:媒体→打开网络串流,在弹窗的URL栏输入对应的MediaMTX拉流地址“rtmp://192.168.*.*:1935/stream”如下图所示。
确认输入无误后,单击右下角的播放按钮,此时VLC media player就自动播放来自拉流地址的视频画面如下图所示。
对比RootEncoder的推流预览界面和VLC media player的拉流播放界面,可知手机摄像头采集到的视频信号正确传送给了电脑。
更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。