咸杜恢葡下载的librestreaming源码包缺失gradle目录,无法直接在Android Studio中打开,需将其他应用项目的gradle目录整体复制过来,并编辑gradle/gradle-wrapper.properties文件,将distributionUrl配置更改为以下内容,指定使用6.7.1版本的Gradle:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
二、更新工具库的存储位置
打开librestreaming项目的build.gradle文件,将原有的两个配置:
jcenter()
google()
替换为以下配置:
// 添加阿里云仓库地址,便于国内开发者下载相关插件
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google'}
maven { url 'https://maven.aliyun.com/repository/gradle-plugin'}
maven { url 'https://maven.aliyun.com/repository/public'}
google()
mavenCentral()
由于jcenter仓库已不再维护,因此更改为引用国内的仓库。
三、调整模块的build.gradle
打开sample/build.gradle文件,首先注释掉“renderscriptTargetApi 20”这一行,然后将两处“JavaVersion.VERSION_1_7”改为“JavaVersion.VERSION_1_8”,以适应相应的Gradle版本。
如果不做这些更改,Gradle构建过程中会出现错误:“Failed to calculate the value of task ':librestreaming:compileDebugJavaWithJavac' property 'options.generatedSourceOutputDirectory'.”
四、将Support库迁移至AndroidX
librestreaming项目引用了Support v27库,但Android已停止支持Support库,转而使用AndroidX库,因此需要将Support库迁移到AndroidX。在Android Studio Dolphin的主界面依次选择顶部菜单“Refactor”→“Migrate to AndroidX”,可以将应用项目的Support库迁移到AndroidX。
完成上述三项修改后,重新编译App并安装到实际设备上,启动后的推流配置界面如下图所示:
[此处为图片1]
可以看出,在开始推流前,需先输入流媒体服务器的推流地址。根据《FFmpeg开发实战:从零基础到短视频上线》一书中“10.2.2 FFmpeg向网络推流”的介绍,在计算机上启动MediaMTX,并通过命令“ipconfig /all”查找计算机在WiFi网络中的IP地址。
确保手机和计算机连接相同的WiFi网络,然后在librestreaming的应用配置界面填写完整的MediaMTX推流地址,例如“rtmp://192.168.*.*:1935/stream”,随后点击START按钮,进入推流预览界面如下图所示:
[此处为图片2]
点击左上角的START按钮开始推流,点击SWAP按钮切换前后摄像头,点击FLASH按钮开启或关闭闪光灯。点击START按钮开始推流,librestreaming将摄像头捕获的视频数据推送至MediaMTX。
之后,在计算机上打开VLC media player,依次选择菜单:媒体→打开网络流,在弹出窗口的URL栏中输入对应的MediaMTX拉流地址“rtmp://192.168.*.*:1935/stream”如下图所示:
[此处为图片3]
确认输入无误后,点击右下角的播放按钮,此时VLC media player将自动播放来自该拉流地址的视频画面如下图所示:
[此处为图片4]
通过比较librestreaming的推流预览界面和VLC media player的拉流播放界面,可以确认手机摄像头捕捉的视频信号已成功传输给计算机。
更多关于FFmpeg开发的知识,请参考《FFmpeg开发实战:从零基础到短视频上线》一书。


雷达卡


京公网安备 11010802022788号







