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

视频协议学习:推流拉流都擅长的 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服务端实现

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

    【流媒体】推流与拉流简介

    即是指服务器里面有流媒体视频文件,这些视频文件根据不同的网络协议类型(如RTMP、RTSP、HTTP等)被读取的过程,称之为拉流。...说的简单点,你观看优酷视频就可以看成是拉流,视频文件存储在优酷的服务器上面,你通过HTTP(或者RTMP/RTSP)协议,也就是网页的形式去获取视频观看,这就是拉流的过程。...在这个过程中有三个要素:1-服务器【提供视频文件存储的地方】 2-传输协议【就是你要通过什么方式传输视频】3-读取终端【就是通过什么播放出来】 示意图 以下是从网络上搜寻到的有关推流与拉流的示意图,...一张示意图没有看明白,没有关系,再来一张示意图: 其实可以简要的理解为推流就是直播端,而拉流就是客户端哦。...每一个推流码地址唯一指向单个的直播活动。它由rtmp://开头,包含了上传服务器地址,上传目录名和上传节点,三部分组成。

    12.6K42

    如何对EasyRTSPLive进行修改将其支持多通道拉RTSP流推RTMP流功能?

    最近很多用户在使用我们经典流媒体EasyNVR的时候提出一个需求:是否可以精简其中的功能模块,只做一个拉转推的功能,不需要流媒体的功能,类似于做一个视频网关的软件产品。答案当然是可以的。...TSINGSEE青犀视频现有的平台中已经有两款产品支持这样的功能,一款是EasyRTSPLive,另一款是EasyRTMPLive,他们的特色功能就是拉转推视频网关的功能。...image.png 拿EasyRTSPLive来说,当前我们编译出来的DEMO,供大家测试使用的是拉一路推一路的工具版,基于这个需求,不少网友找过来问能否有一个多通道的工具版,这个也是可以的,只需要修改代码就能完成...EasyRTSPLive 上克隆代码到本地; 2、用VS2010打开工程文件,如下图: image.png 3、找到通道限定的位置代码,在main.cpp 定义的全局变量中,如下: //用户可自定义的RTSP转RTMP...拉流转推流路数,官方工具版默认1路拉转推,用户可通过代码定制多路RTSP转RTMP #define MAX_CHANNEL_INDEX 1 4、修改为自己所需要的通道数量,如#define MAX_CHANNEL_INDEX

    1.1K30

    基于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.5K50

    【玩转腾讯云】搭建推流和拉流环境

    【先说结论】 可以手机/电脑RTMP推流,可以手机hls/电脑RTMP/电脑hls拉流。 【建议推流/拉流方法】 电脑RTMP推流+电脑RTMP拉流(VLC/web)延时约3秒。...【不同方式下的延时】 电脑RTMP推流 手机hls拉流 70秒 电脑RTMP推流 电脑RTMP拉流 3秒(VLC) 电脑RTMP推流 电脑RTMP拉流 3秒(web...) 电脑RTMP推流 电脑hls拉流 30秒(VLC) 电脑RTMP推流 电脑hls拉流 极其不流畅(web) 手机RTMP推流 手机hls拉流...50秒 手机RTMP推流 电脑RTMP拉流 4秒(VLC) 手机RTMP推流 电脑RTMP拉流 2秒(web) 手机RTMP推流 电脑hls拉流 70秒(VLC) 手机...RTMP推流 电脑hls拉流 极其不流畅(web) 【压力测试】 电脑OBS RTMP推流,电脑VLC播放器3个窗口RTMP拉流、3个窗口hls拉流。

    14K86

    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.1K51

    视频流媒体服务器RTSP拉流、RTMP推流方案EasyNVR如何实现视频转推其他直播间?

    主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理后可以满足无插件的全平台直播。...处理后会获取到RTMP、HLS视频流,这就解决了插件直播的问题,只要终端设备支持H5,就可以播放EasyNVR分发出的视频流。 ?...EasyNVR如何实现视频转推其他直播间 解答问题 1.获取到直播间的推流地址: ? 2.将对应的推流地址添加到需要推流的通道的CDN配置选项中 ?...3.成功将视频流推流到对应的rtmp流媒体直播间,并且有直播间进行视频流分发。 ? ? 该功能可以动态运用,将EasyNVR接入的视频进行转推到需要直播的流媒体服务器进行直播分发。

    5.4K20

    【玩转腾讯云】使用OBS 推流和拉流教程

    【服务器端环境搭建】 本文测试的云服务器系统:Ubuntu 18.04.1 LTS 【玩转腾讯云】搭建推流和拉流环境 【建议推流/拉流方法】 电脑RTMP推流+电脑RTMP拉流(VLC/web)延时约...5、设置输出 6、设置推流 7、全部设置完成后点击 右下角的确定 8、开始推流 二、手机RMTP推流 杏林推流本地下载-软件来自m.pp.cn 三、电脑RTMP/hls拉流-使用软件...推流地址为rtmp://49.233.162.50/live/123即 OBS推流设置为服务器:rtmp://49.233.162.50/live串流密钥:123 的时候则相应的得到了RTMP拉流地址为...rtmp://49.233.162.50:1935/live/123hls拉流地址为http://49.233.162.50:8080/live/123.m3u8 5、RTMP/hls拉流成功 四、电脑...RTMP/hls拉流-使用浏览器网页解析(flash) 1、在浏览器中打开下面的链接 在线SRS播放器 2、输入RTMP/hls拉流链接 3、拉流成功 五、手机hls拉流 打开该地址,出现画面则

    23.5K2319

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

    在Android平台下用FFmepg解析视频文件并进行RTMP推流。如果对FFmpeg基础不熟或者不知道如何在Android项目中使用,请先阅读流媒体专栏里之前的文章。...新增推流函数 异常处理 设置回调方法 常见问题 源码 新增推流函数 首先我们将所有FFmpeg的操作抽取到一个类里面,然后增加推流方法。...推流(二)中使用的代码一致,我们直接拷贝过来即可。...源码见末尾 异常处理 在我们之前的推流代码中,并没有做异常处理。这样在正式的使用中肯定不太好的。所以我们加上try catch。统一进行资源释放。...源码见末尾 设置回调方法 为了方便我们查看推流的信息,我们新增一个回调类。

    6.6K20

    排查rtmp协议推流时握手bug

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

    1.9K21

    rtmp推流异常快速恢复方案

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

    2.6K10

    直播系统开发之推流及拉流概述

    拉流(播放): 根据直播系统开发协议类型(如RTMP、RTP、RTSP、HTTP等),与服务器建立连接并接收数据; 解析二进制数据,从中找到相关流信息; 根据不同的封装格式(如FLV、TS)解复用(demux...推流: ​ 推流.jpg 经过输出设备(AVCaptureVideoDataOutput)得到原始的采样数据--视频数据(YUV)和音频数据(AAC); 使用硬编码(对应系统的API)或软编码(FFMpeg...视频数据和AAC音频数据; 根据不同的封装格式(如FLV、TS、MPEG-TS); 使用HLS协议的时候加上这一步(HLS分段生成策略及m3u8索引文件) 通过流上传到服务器; 服务器进行相关协议的分发 推流步骤说明...:很容易看出推流跟播放其实是逆向的,具体流程就不多说了。...比如网络很差的情况下,推流端会优先发送音频数据,保证用户能听到声音,并在一定间隔内发关键帧数据,保证用户在一定时间间隔之后能看到一些画面的变化。 优化二:合理的关键帧配置。

    5K00
    领券