首页 > 其他分享 >FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流

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

时间:2024-06-22 12:10:30浏览次数:27  
标签:FFmpeg APP maven 直播 Streamer 模块 推流 RTMP

​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开发实战:从零基础到短视频上线》一书。

 

标签:FFmpeg,APP,maven,直播,Streamer,模块,推流,RTMP
From: https://www.cnblogs.com/aqi00/p/18239879

相关文章

  • uniapp(全端兼容) - 最新详细实现刻度尺组件效果,uni-app实现尺子打分及手指拖动刻度尺
    效果图在uniapp微信小程序/手机h5网页网站/安卓app/苹果app/支付宝小程序/nvue等(全平台完美兼容)开发中,实现uniApp各端都兼容的“刻度尺(横格尺|尺子)”手势左右两侧拖动、手指滑动刻度尺功能,水平刻度尺,支持自定义尺子颜色、大小、刻度、滑动时的步进值、最大和最小刻度值......
  • 零撸广告创业项目:撸包小游戏对接广告联盟app开发
    “撸包小游戏”APP是一款专注于小游戏的应用软件,它为用户提供了丰富多样的小游戏选择,并允许开发者通过广告变现的方式获取收益。以下是关于“撸包小游戏”APP的一些关键信息:广告变现:广告变现是“撸包小游戏”APP中开发者获取收益的重要方式之一。开发者通过在应用中展示广......
  • 尚玩助手app对接广告模式开发搭建
    尚玩助手APP对接广告模式的开发搭建主要涉及以下几个方面:需求分析:首先,需要明确尚玩助手APP的定位、目标用户群以及广告目标。这将有助于确定广告的内容和形式,以及广告投放的策略和位置1。平台选择:选择一个合适的广告联盟或广告平台进行合作。尚玩助手APP需要对接的广告平台应......
  • 阿基米德签证小程序(APP)管理系统源码安装步骤说明
      阿基米德所有系统支持Lunix/windows服务器环境,需要PHP7.1~8.3版本支持(推荐使用8.3),可运行于包括Apache和nginx在内的多种WEB服务器和模式(推荐使用nginx),支持Mysql5.0~8.0数据库(4G以上内存推荐使用8.0,不然就5.7),引擎用InnoDB。框架本身没有什么特别模块要求,具体的应用系统......
  • 【FAS】《Application of machine learning to face Anti-spoofing detection》
    文章目录原文相关工作方法静态Gabor小波和动态LBP的融合特征基于GAN的数据增强人脸活体检测方法半监督学习用于图像修复的人脸活体检测点评原文李莉.反欺骗人脸活体图像的机器学习方法研究[D].广东工业学,2020.DOI:10.27029/d.cnki.ggdgu.2020.001204.相关......
  • 解决uniapp h5 本地代理实现跨域访问及如何配置开发环境
    ......
  • uniapp中父组件调用子组件的方法
    1父组件<template>   <view>      <!--子组件-->      <recommen ref='xText'></recommen>    <view@click='onClick'>点击调用子组件方法</view>   </view></template><script>......
  • uniapp实现简单圆形色盘、取色器、拾色器
    一、简介        使用canvas实现的简单圆形色盘,可自定义相关大小,简单移植即可使用,多平台都可使用。二、示例图    可拖拽取色三、示例代码<template> <view> <viewclass="round_picker"> <canvasclass="canvas1"canvas-id="boardcanvas"> ......
  • flutter Warning: CocoaPods is installed but broken. Skipping pod install. You
    flutterWarning:CocoaPodsisinstalledbutbroken.Skippingpodinstall.YouappeartohaveCocoaPodsins确保你已经安装了CocoaPods并可以正常使用:1.flutterclean2.flutterpubget3.cdios4.podinstall5.退出vscode,并重新打开6.再次运行项目运行后如果......
  • iOS政策解读之一丨App提交审核前注意事项必知
    大家好,我是小编阿文。欢迎您关注我们,经常分享有关Android出海,iOS出海,App市场政策实时更新,互金市场投放策略,最新互金新闻资讯等文章,期待与您共航世界之海。iOS企业出海所面临的主要挑战之一,就是要精读App审核指南,根据出海的目标国家或地区,深刻理解并遵守App审核指南要求,这对于......