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

排查rtmp协议握手bug

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

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

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

    文章目录 一、 Java 层传入 RTMP 地址处理 二、 RTMPDump 流线程 三、 创建 RTMP 对象 四、 初始化 RTMP 对象 五、 设置 RTMP 地址 六、 启用 RTMP...Java 传递字符串数据到 JNI : 启动 , Java 层会将 RTMP 地址传递给 JNI ; 2 . jstring 类型转为 char* 类型 : 将 Java 字符串转为 C 字符串...独立线程 : RTMP 操作需要在一个独立线程中完成 , 涉及到网络操作都是耗时操作 , 在 Android 中都要在线程中执行 ; 2 ....初始化 RTMP RTMP_Init(rtmp); // 设置超时时间 5 秒 rtmp->Link.timeout = 5; 五、 设置 RTMP 地址 ---- 设置 RTMP 地址 , 如果设置失败..., 直接退出操作 ; 该地址就是 Java 层传给 JNI 字符串 , 刚获取是局部引用变量 , 将其拷贝到了堆内存中 , 才可以在流线程中使用 ; // 3.

    2.4K20

    EasyCVR使用RTMP不显示界面如何解决?

    对外可分发多格式视频,包括RTSP、FLV、HLS、WebRTC等。...有用户反馈在现场使用RTMP协议进行不能正常显示设备画面,为提高客户使用体验感,优化平台功能,工作人员立即开展协助排查。...首先在平台中新建流通道,获取到地址后将地址配置设备RTMP至界面中,一般情况下如此处理即可看到设备视频。然而现场部署完成后发现并没有视频流到平台中,画面仍然显示白屏页面。...通过排查发现现场使用为公网地址,但在配置中心没有配置公网ip,导致在使用过程中设备一直是往内网ip进行,所以平台一直没有接收到视频。需要在配置中心进行更改。...随着AI智能分析技术广泛应用,我们也积极研发了相关技术与视频平台融合。

    60430

    Web网页直播点播RTMP平台EasyDSS直播失败原因分析

    Web网页直播点播RTMP平台EasyDSS互联网视频云服务提供一站式转码、点播、直播、录像、检索、移回放服务,极大地简化了开发和集成工作,配合OBS、EasyRTMP等直播工具以及EasyPlayer...近期有客户向我们咨询,在设备中设置地址,但是页面却没有播放成功。TSINGSEE青犀视频技术团队第一间进行了排查。...image.png 我们进入客户EasyDSS平台后,发现没有显示直播地方,这也就表明并没有成功。...客户地址是:rtmp://rtmp.ccmapp.cn:10035/hls/GGZcTcXMR?...sign=GGZ5ocuGgz 我们仔细一看,猜测流失败主要原因,是客户TCP 10035端口没有对外开通。只需要将该端口对外开通,就可以成功直播了。

    3.5K20

    视频协议学习:都擅长 RTMP

    创建每个块都有一个唯一 ID 对其进行关联,这个 ID 叫做 chunk stream ID (块 ID)。这些块通过网络进行传输。传递,每个块必须被完全发送才可以发送下一块。...此字段根据块ID不同,长度可能为1,2或3字节。在实现协议,此字段应该使用可以容纳ID最小长度。此协议支持最多65597个,ID从3到65599。0,1,2这三个为保留ID。...当块基本头长度为2字节时,第3-8比特取值为0。当长度为3字节时,第3-8比特取值为1。块ID为2保留作为低级协议控制消息和命令消息。...以下是基本头每个占位介绍: 3.3分块例子 四、交互过程 4.1 !...4.2拉 五、实践观察 5.1rtmp推拉环境搭建 参考视频协议学习--HLS环境部署 5.2rtmp推拉抓包 5.2.1主要包介绍 5.2.2主要包介绍 拉其他流程与类似

    9.7K32

    【最佳实践】PC一些OBS设置,音视频编码相关

    ,这里推荐大家新安装先调整配置再进行 直播输出相关配置 1、打开设置界面,在左边选择“输出” 2、在顶部输出模式里,选择“高级” 串流相关配置 音轨,选择你所需要输出音频,具体配置见“音频...”选项卡,保持默认即可 编码器,选择x264,因为它是目前最常用兼容性最好编码器,勾选“强制执行流媒体服务编码器设置” 勾选重新缩放输出,填写或下拉选择你所需分辨率,如果是手机观看,建议输出为720x1280...,避免画质太差,推荐填写2000Kbps 关键帧间隔默认是0,强烈建议调整为2,这个直接影响云直播HLS协议延时 其他保持默认配置即可 image.png 录像相关配置 录像或录制相关配置如下,基本保持默认配置...手机端直播,当然是用移动直播SDK 兼容多种终端,还有web,不需要特殊配置,默认已经是最优配置 安卓端流配置 https://cloud.tencent.com/document/product.../document/product/454/34930 web端如何:参考文章 《写在2020年之前,flash停更后,网页直播怎么办?》

    13.2K9647

    简单red5+obs实现直播系统开发,具体设置介绍

    前言:随便搞搞,先放一张效果图, ​浏览器是客户端,obs是本屏幕,来源可以添加摄像头,这里我没有就不说了, 工具:windows7上面装是obs + red5实在我企鹅云学生机上面 obs安装这里就不一一描述了...,很多,还有类似插件盒子,不过一般是主播门使用 咱们只会就可以了 也就是设定,里面的广播设定,然后就是 ​ 其中url如果red5部署在本地同学就写本地127.0.0.1,串码暂且abc后面要用到...讲道理下载最新版吧,我jdk也是1.8。.../楼下图 4,设置为可执行 cd /usr/local/red5 chmod +x *.sh 5,安装 red5.sh 6,编辑启动脚本 vi /etc/init.d/red5 7,把下面写进去...echo $"Usage: $0 {start|stop|restart|status}" 50 RETVAL=1 51 esac 52 53 exit $RETVAL ​ 8,设置为本地服务启动

    5.4K10

    如何通过ffmpeg 实现实时和拉保存功能

    原则上,每个输入/输出“文件”都可以包含任意数量不同类型视频(视频/音频/字幕/附件/数据)。 数量和/或类型是由容器格式来限制。...要引用选项中输入文件,您必须使用它们索引(从 0 开始)。 例如。 第一个输入文件是 0,第二个输入文件是 1,等等。类似地,文件内被它们索引引用。...例如 2:3 是指第三个输入文件中第四个。...rtmp://server/live/streamName视频保存为dump.flv文件 实时命令 ffmpeg -framerate 15 -f avfoundation -i “1” -s 1280x720...在部分常见应用场景中,由于ffmpeg领先性、包容性,并且还具有高度便携性,很多客户都会使用ffmpeg来进行视频处理,通过ffmpeg流到视频服务器,如果大家对ffmpeg比较感兴趣,也可以和我们交流

    6.3K20

    FFmpeg开发笔记(三十八)APP如何访问SRSRTMP直播地址

    有关SRS编译、安装与启动过程参见之前文章《Linux环境安装SRS实现视频》。...注意,使用ffmpeg命令把视频文件给SRS,要注意区分FFmpeg版本,因为FFmpeg从6.1开始才给RTMP协议支持HEVC、VP9、AV1这三种视频编码器,所以FFmpeg 6.0和更早版本只能以...三、调整SRS配置文件通过小程序或者ExoPlayer播放RTMP直播,可能出现播放界面黑屏,但有声音传出情况。这是因为SRS默认没有缓存关键帧,使得拉一开始没找到关键帧就黑屏了。...解决办法是修改SRS配置,指定开启缓存GOP,这样客户端在拉总能找到已缓存关键帧。...打开srs安装目录下conf/srs.conf,在“vhost __defaultVhost__”节点内部添加下面一行:gop_cache   on;该行配置作用是开启缓存关键帧,实际应用记得设置

    15010

    liteavsdk事件和播放事件事件码

    和播放事件码我们通常通过这个来判断当前状态 事件列表 code TXLiveSDKEventDef常量 含义说明 1001 PUSH_EVT_CONNECT_SUCC 已经连接服务器...编码器启动 1018 PUSH_EVT_ROOM_IN 已经在webrtc房间里面,进房成功后通知 1019 PUSH_EVT_ROOM_OUT 不在webrtc房间里面,进房失败或者中途退出房间通知...,更多重试请自行重启 -1308 PUSH_ERR_AUDIO_SYSTEM_NOT_WORK 系统异常,录音失败 1101 PUSH_WARNING_NET_BUSY 网络状况不佳:上行带宽太小,...服务器连接失败 3003 PUSH_WARNING_SHAKE_FAIL RTMP服务器握手失败 3004 PUSH_WARNING_SERVER_DISCONNECT RTMP服务器主动断开,请检查地址合法性或防盗链有效期...3005 PUSH_WARNING_READ_WRITE_FAIL RTMP 读/写失败,将会断开连接 100001 INNER_EVT_SET_BITRATE_4_SCREEN_CAPTURE 动态设置录屏编码码率

    2.4K40

    JavaCV摄像头实战之五:

    这就涉及到了,如下图,基于JavaCV应用将摄像头视频帧推送到媒体服务器,观看者用播放器软件远程连接媒体服务器,就能观看摄像头内容了: 今天主要工作就是开发上图JavaCV应用,然后验证功能是否正常...,这是AbstractCameraApplication子类,其代码很简单,接下来按上图顺序依次说明 《JavaCV摄像头实战之一:基础》中已部署好了媒体服务器,这里定义一个成员变量保存媒体服务器地址...int getInterval() { // 相比本地预览,两帧间隔时间更短 return super.getInterval()/4; } 至此,功能已开发完成...().action(600); } 运行main方法,等到控制台输出下图红框内容,表示已经开始: 用本机或局域网内另一台电脑,用VLC软件打开刚才地址rtmp://192.168.50.43...:21935/hls/camera,稍等几秒钟后开始正常播放: 还可用VLC工具查看编码信息: 至此,咱们已完成了功能,验证远程播放也正常,得益于JavaCV强大,整个过程是如此轻松愉快,

    1.5K70

    如何将设备视频通过RTMP协议成功流到EasyCVR平台?

    EasyCVR平台支持设备通过国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、Ehome等协议接入,对外可分RTSP、RTMP、FLV、HLS、WebRTC等格式视频。...今天和大家分享一下如何将设备通过RTMP,将视频推送到EasyCVR平台。...操作步骤及过程中遇到问题解决方法如下:1)将OBS地址设置为EasyCVR平台地址:2)成功后,播放正常:3)若通道禁用导致中断,再次重新启用通道重新,这时出现通道无法上线情况...:4)此时需要修改配置文件tsingsee.ini,将端口改为29350,http_notifyenable=true,如图:5)重新启动服务,此时通道上线,流播放正常。...关于RTMP相关技术性文章,我们在博客中也分享过,感兴趣用户可以翻阅往期文章进行了解。若有用户遇到无法解决问题,也可以联系我们协助排查。

    1.1K10

    小程序旋转手机,远端拉画面被裁剪问题

    由于重力感应影响,Android小程序旋转手机,远端拉到画面被裁剪;小程序没有开放重力感应API,只能通过如下方式规避: 目前现象: 1、Android手机横屏拍摄,如果不设置横屏,PC...拉画面则不完整;竖屏拍摄则需要设置竖屏; 2、iOS横屏拍摄,不设置横屏分辨率,PC拉画面完整。...设置横屏分辨率,画面不完整; 总结:小程序横屏拍摄,如果需要拉端观看画面完整,Android需要设置横屏分辨率,iOS不用设置;小程序竖屏排查则需要设置竖屏; Android手机横屏,远端拉到画面...videoOrientation设置为horizontal; 手机竖屏设置videoOrientation设置为vertica; ②如果当前是ios设备,就设置videoOrientation...设置为vertica; 这样可以保证远端拉画面不被裁剪 代码段如下 const that = this wx.getSystemInfo({ success (res

    1.1K20

    Golang流媒体实战之六:lal拉服务源码阅读

    #doPlay,下图是其部分源码,红色箭头可见此时会话类型被正式设置成了SUB 代码读到这里,我突然想到:举一反三,会话类型是啥确定呢?...应该是在收到明确命令吧 打开代码,果然,在处理publish命令时候,将会话类型设置为PUB 终于把会话类型问题弄明白了,接下来学习每个命令响应 server bandwidth...拉流动作 如果您看过了前文代码,此刻应该是胸有成竹了,关键代码前面已经看过,现在无非是从拉视角再去温习一遍而已 拉对应具体动作,其实是逻辑触发,简单说:lal收到端发来媒体数据...,就会将数据写入拉TCP连接中 咱们来看代码 lal收到端发来媒体消息,会执行group__core_streaming.go#broadcastByRtmpMsg,下面是其中一段代码,...遍历该group下所有拉流会话,逐一处理,这部分代码中,针对刚刚加入会话有特别处理,首先要把媒体meta信息给拉端,其次要将缓存关键帧推给拉侧,这样拉侧就能快速播放了,而无需等到端推来关键帧

    42730

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

    | 远程服务器控制 | 搭建 RTMP 服务器 | 服务器配置 | 软件配置 | 直播软件配置 | 直播效果展示 ) 中流程搭建服务器端 , 然后才能开始操作 ; 也可以按照 【Android...RTMP】RTMP 直播服务器搭建 ( Ubuntu 18.04.4 虚拟机 ) 博客中内容 , 在 VMWare 虚拟机中搭建 RTMP 直播服务器 ; 加粗样式配置说明 : ① HTTP...H.264 格式图像数据 : 【Android RTMP】x264 编码器初始化及设置 ( 获取 x264 编码参数 | 编码规格 | 码率 | 帧率 | B帧个数 | 关键帧间隔 | 关键帧解码数据...| 非关键帧数据格式 | x264 编码后数据处理 | 封装 H.264 视频数据帧 ) ⑤ 将 RTMP 数据包发送到服务器端 : 【Android RTMP】RTMPDump 流过程 ( 独立线程...| 创建器 | 初始化操作 | 设置地址 | 启用写出 | 连接 RTMP 服务器 | 发送 RTMP 数据包 ) 三、 电脑端观看直播 ---- 电脑端使用 EVPlayer 观看直播 :

    2.9K10

    手机直播PC直播摄像头直播等流媒体直播系统中如何进行优化?

    流媒体直播系统是视频播放中很重要一个步骤,跟播放其实是逆向,具体流程就不多说了。 我们视频直播点播流媒体服务器可以进行视频流播放,那么在视频直播系统中,优化是如何实现?...本篇我们就来讲一下这个优化关键点。 ? 优化一:适当Qos(Quality of Service,服务质量)策略。...端会根据当前上行网络情况控制音视频数据发包和编码,在网络较差情况下,音视频数据发送不出去,造成数据滞留在本地,这时,会停掉编码器防止发送数据进一步滞留,同时会根据网络情况选择合适策略控制音视频发送...比如网络很差情况下,端会优先发送音频数据,保证用户能听到声音,并在一定间隔内发关键帧数据,保证用户在一定时间间隔之后能看到一些画面的变化。 优化二:合理关键帧配置。...合理控制关键帧发送间隔(建议2秒或1秒一个),这样可以减少后端处理过程,为后端缓冲区设置更小创造条件。 ?

    1.7K40

    开发Rtmp端开发库几种选择方案

    本文转载自博客园博主rtc8_com博文:开发Rtmp端开发库几种选择方案 要开发一个Rtmp协议工具,目前用以下几种实现方案: 1、使用ffmpeg方案,ffmpeg本身功能非常丰富,...要使用ffmpeg,编译一定要把x264,libfaac,rtmp协议打进去,编译出来so,dll大概2M多一点。...ffmpeg方案实现起来开发速度比较快,缺点就是好多地方都是黑盒,细节不好控制。 2、使用x264+libfaac+librtmp方案,使用这个方案,自己要实现地方比较多。...x264,faac编码参数都可以自己定制,时间戳,缓冲区控制等细节都要完全自己实现。难度比上一种要大一点,但是自己可以控制细节比较多,比较灵活。...我们在使用过程中发现srs-rtmp比librtmp接口封装更合理点,而且srs-rtmp库只是一个单文件,完全可以放到自己工种中去,不用单独把rtmp库编译成一个静态库或者动态库。

    1.1K40
    领券