首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 )

文章目录 安卓直播推流专栏博客总结 一、 Android RTMP 直播推流简介 二、 Nginx、RTMP Module 编译环境源码准备 三、 pcre、OpenSSL、zlib 函数库安装 四、...编译安装 Nginx 五、 配置 RTMP 六、 修改 Nginx 和 RTMP Module 权限 七、 虚拟机网络配置 八、 启动 Nginx 服务器 一、 Android RTMP 直播推流简介...---- Android 端直播推流原理 : ① 数据采集 : 使用 Camera 相机采集图像数据 , 使用 AudioRecord 采集声音 ; ② 数据编码 : 将图像和声音分别进行编码 , 视频使用.../bin 配置 : 将编译结果 , 安装到当前目录下的 bin 目录 ; ② --add-module=…/nginx-rtmp-module-1.2.1 配置 : 启用外部的 RTMP 直播推流模块...5s : 闲置 5 秒以上的连接会被丢弃 ; ⑥ RTMP 地址示例 : rtmp://192.168.1.15:1935/myapp ; //RTMP 地址格式 rtmp://IP地址:端口号/应用名称

9.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )

    文章目录 一、 服务器搭建 二、 手机端推流 三、 电脑端观看直播 四、 RTMP 服务器端状态 一、 服务器搭建 ---- 首先按照 【Android RTMP】RTMP 直播推流 ( 阿里云服务器购买...| 远程服务器控制 | 搭建 RTMP 服务器 | 服务器配置 | 推流软件配置 | 直播软件配置 | 推流直播效果展示 ) 中的流程搭建服务器端 , 然后才能开始推流操作 ; 也可以按照 【Android...RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 ) 博客中的内容 , 在 VMWare 虚拟机中搭建 RTMP 直播推流服务器 ; 加粗样式配置说明 : ① HTTP...) ⑤ 将 RTMP 数据包发送到服务器端 : 【Android RTMP】RTMPDump 推流过程 ( 独立线程推流 | 创建推流器 | 初始化操作 | 设置推流地址 | 启用写出 | 连接 RTMP..., 运行了 RTMP Module 应用 , 可以实现直播推流中功能 ; ② 推流端 : 直播推流端就是手机 , 手机端 Camera 采集 NV21 格式的图像数据 , 并使用 x264 将其编码为

    3.8K10

    Android平台下使用FFmpeg进行RTMP推流(摄像头推流)

    简介 前面讲到了在Android平台下使用FFmpeg进行RTMP推流(视频文件推流),里面主要是介绍如何解析视频文件并进行推流,今天要给大家介绍如何在Android平台下获取采集的图像,并进行编码推流...学习本章之前最好先看之前的文章,这里是一套连贯的教程 RTMP服务器搭建(crtmpserver和nginx) 音视频编码相关名词详解 基于FFmpeg进行RTMP推流(一) 基于FFmpeg进行RTMP...推流(二) Linux下FFmpeg编译以及Android平台下使用 Android平台下使用FFmpeg进行RTMP推流(视频文件推流) 打开摄像头并设置参数 具体代码查看CameraActivity.java...(ofmt_ctx, pCodec)这个就和之前的推文件流一样了。...输出视频数据 ret = av_interleaved_write_frame(ofmt_ctx, &enc_pkt); 释放资源 在结束编码推流后我们也需要释放相关的资源 if (video_st

    6.5K51

    基于FFmpeg进行RTMP推流(二)

    在前面一节基于FFmpeg进行RTMP推流(一)我们写了最简单的一版推流代码。但细心调试过的兄弟会发现当我们把文件换成mp4后,发现上面的代码在写入文件头时报错。也就是说上一版的代码是有bug的。...说明我们推流的速度有问题。快了或慢了都会有问题。我们大概可以定位到,我们在计算延时的时候出现了错误。...test.mp4放到bin目录下即可 const char *inUrl = "hs.mp4"; //输出的地址 const char *outUrl = "rtmp://192.166.11.13...////////////////////////////////////////////////////////////////// // 准备推流...<< endl; //推流每一帧数据 //int64_t pts [ pts*(num/den) 第几秒显示] //int64_t dts 解码时间 [P帧(相对于上一帧的变化

    8.8K50

    Android RTMP推流之MediaCodec硬编码二(RTMPDump推流)

    简介 在前面的两篇文章中:Android RTMP推流之MediaCodec硬编码一(H.264进行flv封装)介绍了如何MediaCodec进行H264硬编码,然后将编码后的数据封装到flv文件中。...Android平台下RTMPDump的使用介绍了如何将RTMPDump移植到Android平台下,并读取解析flv文件进行推流。...有了上面两篇文章的基础后,接下了就是整合,在Android平台下使用MediaCodec进行硬编码,然后使用RTMPDump进行推流。 先来张效果图: ?...我们还是使用Android RTMP推流之MediaCodec硬编码一(H.264进行flv封装)里的代码。...到这里Android层的调用就完成了,是不是很容易。 第三步 c++层方法实现 c++层推流逻辑的编写。我们将方法写到rtmp_handle.cpp。

    4.4K50

    【Android RTMP】RTMPDump 推流过程 ( 独立线程推流 | 创建推流器 | 初始化操作 | 设置推流地址 | 启用写出 | 连接 RTMP 服务器 | 发送 RTMP 数据包 )

    文章目录 一、 Java 层传入的 RTMP 推流地址处理 二、 RTMPDump 推流线程 三、 创建 RTMP 对象 四、 初始化 RTMP 对象 五、 设置 RTMP 推流地址 六、 启用 RTMP...独立线程推流 : RTMP 推流操作需要在一个独立的线程中完成 , 涉及到网络的操作都是耗时操作 , 在 Android 中都要在线程中执行 ; 2 ....ret) { __android_log_print(ANDROID_LOG_INFO, "RTMP", "设置 RTMP 推流服务器地址 %s 失败", pushPath); break...ret) { __android_log_print(ANDROID_LOG_INFO, "RTMP", "连接 RTMP 流 %s 失败", pushPath); break; } 九...ret) { __android_log_print(ANDROID_LOG_INFO, "RTMP", "设置 RTMP 推流服务器地址 %s 失败", pushPath);

    2.8K20

    视频协议学习:推流拉流都擅长的 RTMP

    Message Stream Id: 消息流ID,标识消息所使用的流,用大字节序表示。...此字段根据块流ID的不同,长度可能为1,2或3字节。在实现协议时,此字段应该使用可以容纳ID的最小长度。此协议支持最多65597个流,ID从3到65599。0,1,2这三个为保留ID。...块流ID为2时保留作为低级协议的控制消息和命令消息。以下是基本头的每个占位介绍: 3.3分块例子 四、交互过程 4.1推流 !...4.2拉流 五、实践观察 5.1rtmp推拉流环境搭建 参考视频协议学习--HLS的环境部署 5.2rtmp推拉流抓包 5.2.1主要的推流包介绍 5.2.2主要的拉流包介绍 拉流的其他流程与推流类似...七、参考资料 专题报告:RTMP协议 揭开RTMP播放流畅的神秘面纱 Adobe官方公布的RTMP规范 RTMP Spec中文版 RTMP协议笔记 RTMP服务端实现

    10.2K32

    Android平台下使用FFmpeg进行RTMP推流(视频文件推流)简介

    简介 前面已经讲到如何在Linux环境下编译FFmpeg以及在Android项目中使用,这一节就开始真正的使用FFmpeg。在Android平台下用FFmepg解析视频文件并进行RTMP推流。...新增推流函数 异常处理 设置回调方法 常见问题 源码 新增推流函数 首先我们将所有FFmpeg的操作抽取到一个类里面,然后增加推流方法。...推流(二)中使用的代码一致,我们直接拷贝过来即可。...源码见末尾 异常处理 在我们之前的推流代码中,并没有做异常处理。这样在正式的使用中肯定不太好的。所以我们加上try catch。统一进行资源释放。...源码见末尾 设置回调方法 为了方便我们查看推流的信息,我们新增一个回调类。

    7.1K20

    rtmp推流异常快速恢复方案

    紧急情况中,采取了断流迫使推流端重新推流,快速恢复了推流的稳定。 如上图所示,在21点47分左右,重新推流后,推流帧率稳定在30帧,卡顿率也恢复到正常水平。...2、RTMP 302重定向具体方案 为了解决推流过程中,网络异常问题,采用了RTMP 302 重定向的方案,具体实现逻辑如下图所示: 步骤一,推流过程中,rtmp server端支持持续弱网检测,支持域名...上述解决方案,在推流过程中,通过RTMP 302的方式获取到服务器慢速信息,根据客户端以及服务器端慢速信息,来进行断流重推,快速恢复直播,提高推流成功率。...对上述方案进行扩展,在开始推流时,利用302进行服务端的负载均衡。服务器端在刚收到客户端数据时,给客户端发送RTMP 302信息,来进行高负载302调度,提高推流的成功率。...3、结论 综上所述: 1、在推流过程中,给客户端发送RTMP 302控制消息,客户端使用服务器提供的重定向地址,进行断流重推,可以快速恢复推流异常,提升上行推流质量; 2、在推流开始时,服务器端可以综合后台机器负载以及带宽资源情况

    2.8K10

    排查rtmp协议推流时握手bug

    概况 转推流程序的过程:从一个观看地址拉流,然后推流到另一个推流地址。主要用于cdn之间转推,目前市面上大多数cdn厂商都愿意不支持动态转推,因此只能通过转推流程序进行转推。...中的代码是推流地址中没有加密串的情况下的握手过程代码,第二个链接handshake.h中的代码是推流地址中有加密串的情况下的握手过程代码。...抓包分析 以微赞和网宿为例 obs推流网宿握手成功的包点此下载 obs推流微赞握手成功的包点此下载 网宿推流没有走加密流程,S2和C1匹配,具体数据包截图如下: ?...微赞推流走加密流程,S2和C1不匹配,具体数据包截图如下: ? 到此,整个rtmp推流握手过程就比较清楚了。...至此,转推流成功,示例图如下: ? 结论 虽然Adobe公司自己出的rtmp协议不是iso标准的,但是你们这些公司好歹也尽量按照规定来啊,贼坑。

    2K21

    如何实现Android端获取RTSP或RTMP流转推RTMP

    技术背景 最近不少开发者找到我们,他们在做智能家居等传统行业时,希望实现在Android板件拉取本地的RTSP或RTMP流,然后对外推送RTMP出去,亦或内部启个轻量级RTSP服务,提供个对外对接的媒介...转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP|RTMP数据流到RTMP服务器的转发; 3....整体网络状态反馈:考虑到有些摄像头可能会临时或异常关闭,RTMP服务器亦是,可以通过推拉流的event回调状态,查看那整体网络情况,如此界定:是拉不到流,还是推不到RTMP服务器; 10....设置RTMP、RTSP拉流的URL; 2. 设置转推RTMP的URL; 3. 实时播放|录像过程中,实时静音、实施快照; 4. 实时播放; 5. 实时录像; 6....拉取的流数据,实时转推,对应“开始推流”; 7. 拉取的流数据,注入轻量级RTSP服务,启动服务后,发布RTSP流,对外提供可访问的RTSP URL。

    3.2K10
    领券