FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流

RTMP Streamer是一个安卓手机端的开源RTMP直播推流框架,可用于RTMP直播和RTSP直播,其升级版还支持SRT直播(腾讯视频云就采用SRT协议)。RTMP Streamer支持的视频编码包括H264、H265、AV1等等,支持的音频编码包括AAC、G711、OPUS等等,可谓功能强大的APP直播框架。

由于升级版的RTMP Streamer采取全Kotlin编码,对运行环境与开发者的技能要求都比较高,因此为了方便讲解,这里以标准版的RTMP Streamer为例,介绍如何使用RTMP Streamer开启手机的APP直播推流。

一、下载RTMP Streamer

由于最新版的RTMP Streamer被升级得面目全非,难以为国内开发者使用,并且RTMP Streamer升级之后,原本在Github上托管的旧代码也不翼而飞,不知是不是老外对我们封锁高科技。因此博主寻寻觅觅,花了好长时间才找到合适版本的RTMP Streamer源码,如果大家需要这套源码,可在京东自营购买《FFmpeg开发实战:从零基础到短视频上线》一书,联系作者获取RTMP Streamer源码。
博主找到的RTMP Streamer源码采用Java编写,非Kotlin编写,可使用小海豚版本的AS打开。所以需要先安装小海豚版本的AS,也就是Android Studio Dolphin,该版本AS的下载地址为 https://redirector.gvt1.com/edgedl/android/studio/install/2021.3.1.16/android-studio-2021.3.1.16-windows.exe

二、加载RTMP Streamer

下载的RTMP Streamer源码是个完整的AS项目,启动小海豚版本的Android Studio,依次选择菜单:File→Open,在弹出的文件对话框中选择解压后的RTMP Streamer源码目录。Android Studio就开始自动下载相关组件,并执行gradle同步等操作。为了加快RTMP Streamer项目的加载速度,可打开项目级别的build.gradle,在repositories节点内部补充以下配置:

复制代码
// 以下四行添加阿里云的仓库地址,方便国内开发者下载相关插件
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'}
// 以下添加华为的仓库地址
maven { url 'https://developer.huawei.com/repo/'}

增加以上配置的目的是引入国内的仓库地址,以便加快相关依赖包的下载速度。

等待RTMP Streamer项目成功加载完毕,查看Android Studio左侧的导航图,可见RTMP Streamer项目由下列五个模块组成:

app模块:这是RTMP Streamer的演示界面模块,也是APP工程的主入口。

encoder模块:这是RTMP Streamer给音频流和视频流分别编码的模块。

rtmp模块:这是RTMP Streamer处理RTMP协议通信的模块。

rtplibrary模块:这是处理RTP协议数据传输的公共库,rtmp模块和rtsp模块都调到了该库。

rtsp模块:这是RTMP Streamer处理RTSP协议通信的模块。

三、启动RTMP Streamer

Android Studio成功加载RTMP Streamer之后,即可在手机上安装RTMP Streamer的演示APP了。有关APP编译和安装的详细步骤参见《Android Studio开发实战:从零基础到App上线(第3版)》一书第2章的"2.1.1 App的运行环境",这里不再赘述。

RTMP Streamer的演示APP在手机上安装完毕,启动后的初始界面是下面这样的。

可见RTMP Streamer提供了丰富多样的直播形式,既可以通过手机摄像头直播,还能把手机上的视频文件分享直播,还能对手机的屏幕操作进行直播。具体的直播协议又包括RTMP和RTSP两种,可以满足绝大多数场景的直播需求,而且RTMP Streamer是个开源软件,提供了完整的APP直播录制全套代码,非常适合开发者学习和研究。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

相关推荐
代码煮茶君6 小时前
FFmpeg 音视频转码全攻略:参数详解与实战指南
ffmpeg·音视频
TEL189246224776 小时前
IT6227:USB-C(DP Alt 模式)及电源传输控制器 内置 4 通道 DP 1.4 转 HDMI 2.1 转换器
音视频·实时音视频·视频编解码
西***63476 小时前
从录制到直播,从单机到分布式:录播系统的核心技术与场景落地指南
音视频
Longyugxq6 小时前
Untiy的Webgl端网页端视频播放,又不想直接mp4格式等格式的。
unity·音视频·webgl
Leo July12 小时前
【AI】AI视频生成:技术跃迁、产业落地与合规实践全解析
人工智能·音视频
大大祥13 小时前
穿山甲广告sdk接入
android·kotlin·音视频·视频播放器·广告sdk
千里马学框架15 小时前
跟着google官方文档学习车载音频Car audio configuration
学习·configuration·音视频·aaos·安卓framework开发·audio·车机
souyuanzhanvip16 小时前
Dopamine v3.0.2 本地音频管理工具新版发布
音视频
线束线缆组件品替网16 小时前
Same Sky 标准化音频与电源线缆接口技术详解
人工智能·数码相机·电脑·音视频·硬件工程·材料工程
Koma_zhe17 小时前
【文本转语音工具VibeVoice】告别单调配音,VibeVoice+cpolar 让多角色音频创作随时随地搞定
linux·人工智能·ai·音视频·语音识别