首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流

编程知识
2024年08月10日 11:01
SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRT Streamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。

相比之下,另一款APP直播框架RTMP Streamer支持RTMP直播和RTSP直播,不支持SRT协议的直播。而本文讲述的SRT Streamer支持RTMP直播和SRT直播,不支持RTSP协议的直播。有关RTMP Streamer的说明参见之前的文章《使用RTMP Streamer开启APP直播推流》,下面介绍如何使用SRT Streamer开启手机的APP直播推流。

一、下载SRT Streamer

SRT Streamer采取全Kotlin编码,需要在Android Studio Jellyfish(小水母版本)上编译运行,并且依赖最新的JDK17,对运行环境与开发者的技能要求都比较高。博主花了好长时间才找到可用的SRT Streamer源码,如果大家需要这套源码,可在京东自营购买《FFmpeg开发实战:从零基础到短视频上线》一书,联系作者获取SRT Streamer源码。
博主找到的SRT Streamer源码采用Kotlin编写,非Java编写,需使用小水母版本的AS打开。所以需要先安装小水母版本的AS,也就是Android Studio Jellyfish,该版本AS的下载地址为 https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2023.3.1.18/android-studio-2023.3.1.18-windows.zip 。

二、加载SRT Streamer

下载的SRT Streamer源码是个完整的AS项目,启动小水母版本的Android Studio,依次选择菜单:File→Open,在弹出的文件对话框中选择解压后的SRT Streamer源码目录。Android Studio就开始自动下载相关组件,并执行gradle同步等操作。为了加快SRT 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/'}

增加以上配置的目的是引入国内的仓库地址,以便加快相关依赖包的下载速度。
等待SRT Streamer项目成功加载完毕,查看Android Studio左侧的导航图,可见SRT Streamer项目由下列五个模块组成:
core模块:这是SRT Streamer给音频流和视频流分别编码的模块。
demo-camera模块:这是SRT Streamer的摄像头直播演示模块,也是APP工程的主入口。
demo-screenrecorder模块:这是SRT Streamer的屏幕录像直播演示模块。
extension-rtmp模块:这是SRT Streamer处理RTMP协议通信的模块。
extension-srt模块:这是SRT Streamer处理SRT协议通信的模块。

三、启动SRT Streamer

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

注意首次使用SRT Streamer需要先配置SRT服务器信息,点击界面左上角的三点设置按钮,打开服务器设置页面如下所示。

这里要修改以下四个SRT服务器配置:

1、Endpoint区域的Type字段:点击后下拉选择SRT device,表示采用SRT协议推流。
2、SRT Server区域的IP字段:填流媒体服务器的IP。
3、SRT Server区域的Port字段:填流媒体服务器对SRT协议的开放端口。比如SRS默认的SRT端口号为10080,ZLMediaKit默认的SRT端口号为9000。
4、SRT Server区域的Stream ID字段:填“#!::r=live/test,m=publish”。
可见SRT Streamer提供了丰富多样的直播形式,既可以通过手机摄像头直播,还能对手机的屏幕操作进行直播。具体的直播协议又包括RTMP和SRT两种,可以满足绝大多数场景的直播需求,而且SRT Streamer是个开源软件,提供了完整的APP直播录制全套代码,非常适合开发者学习和研究。

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

From:https://www.cnblogs.com/aqi00/p/18328119
本文地址: http://shuzixingkong.net/article/960
0评论
提交 加载更多评论
其他文章 前端黑科技:使用 JavaScript 实现网页扫码功能
在数字化时代,二维码已经渗透到我们生活的方方面面。从移动支付到产品溯源,二维码凭借其便捷性和高效性,成为了信息传递的重要载体。而随着前端技术的不断发展,我们甚至可以使用 JavaScript 在网页端实现二维码扫描功能,为用户提供更加便捷的操作体验。 本文将带您深入了解如何使用 JavaScript
七夕——程序员独有的表白方式
七夕节,作为中国的传统情人节,虽然历来与诗词歌赋、浪漫约会紧密相连,但在当今的数字时代,程序员们也能以他们独有的方式,用代码和技术的力量来表达爱意。本文简要介绍了七种七夕节程序员常用的表白方式,包括编写定制程序、定制网页网站、二维码情书、游戏表白、数据分析情书、自动化提醒、代码表白;无论您是程序员还
CryptoHouse:由 ClickHouse 和 Goldsky 支持的免费区块链分析服务(ClickHouse 博客)
我们很高兴地宣布 CryptoHouse,在 crypto.clickhouse.com 上可访问,这是一个由 ClickHouse 提供支持的免费区块链分析服务。 https://crypto.clickhouse.com/ 现有的公共区块链分析服务通常需要定时、异步查询,而 ClickHouse
CryptoHouse:由 ClickHouse 和 Goldsky 支持的免费区块链分析服务(ClickHouse 博客) CryptoHouse:由 ClickHouse 和 Goldsky 支持的免费区块链分析服务(ClickHouse 博客) CryptoHouse:由 ClickHouse 和 Goldsky 支持的免费区块链分析服务(ClickHouse 博客)
Spring AI 更新:支持OpenAI的结构化输出,增强对JSON响应的支持
就在昨晚,Spring AI发了个比较重要的更新。由于最近OpenAI推出了结构化输出的功能,可确保 AI 生成的响应严格遵守预定义的 JSON 模式。此功能显着提高了人工智能生成内容在现实应用中的可靠性和可用性。Spring AI 紧随其后,现在也可以对OpenAI的结构化输出完美支持了。 下图展
Spring AI 更新:支持OpenAI的结构化输出,增强对JSON响应的支持
mongo变更流使用及windows下副本集五分钟搭建
mongodb的变更流解释: 变更流(Change Streams)允许应用程序访问实时数据变更,从而避免事先手动追踪 oplog 的复杂性和风险。应用程序可使用变更流来订阅针对单个集合、数据库或整个部署的所有数据变更,并立即对它们做出响应。由于变更流采用聚合框架,因此,应用程序还可对特定
mongo变更流使用及windows下副本集五分钟搭建 mongo变更流使用及windows下副本集五分钟搭建 mongo变更流使用及windows下副本集五分钟搭建
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
本文介绍了使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)。
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白) 使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白) 使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
关键点检测(2)——关键点检测发展历程
关键点检测是计算机视觉领域中 一项重要任务,旨在识别图像或视频中具有特定意义或信息的关键点。如人脸上的鼻子,眼睛,或是关节等。在神经网络中,用于关键点检测的卷积神经网络(Convolutional Neural Networks, CNNs)有许多出名的模型。从DeepPose开始,直到现在的先进方
关键点检测(2)——关键点检测发展历程 关键点检测(2)——关键点检测发展历程 关键点检测(2)——关键点检测发展历程
为了落地DDD,我是这样“PUA”大家的
本文书接上回《先有鸡还是先有蛋?这是领域驱动设计落地最大的困局》 https://mp.weixin.qq.com/s/lzAZXgchCg_VyLmyo2N18Q 故事背景 2023年,我加入了一个全新的团队,担任技术Leader的角色,可以算做是“空降”吧,至今已经一年有余的时间了。到目前为止,
为了落地DDD,我是这样“PUA”大家的 为了落地DDD,我是这样“PUA”大家的 为了落地DDD,我是这样“PUA”大家的