FLV直播流起播异常慢

简介: 本文记一次阿里云FLV直播流起播慢的案例排查,分析过程中同步介绍了Aliplayer、第三方Flash播放器、FFplay播放器的使用和测试分析,同时结合通过直播控制台的实时监控服务去分析直播流的特性,希望可以对遇到此类问题时有更多的思路和启发。

案例现象-H5播放FLV起播慢

阿里云视频直播服务提供了RTMP/FLV/HLS 三种协议格式的播放地址。本案例遇到的问题是,同一路直播流,使用H5播放器播放RTMP和HLS流正常,而播放FLV流则起播速度非常慢,超过2分钟才能播放出画面。

使用Flash播放器正常

由于RTMP和HLS是正常的,因此可以排除是GOP引起的起播慢。为了对比测试,用Flash去测试播放FLV流,发现速度非常快。这里推荐两个Flash播放器
(1)阿里云Web播放器Aliplayer
image.png
(2)第三方Flash播放器,示例HTML代码以及播放效果如下

<object>

<embed src="http://www.cutv.com/demo/live_test.swf" width="100%" height="100%"></embed>

</object>

image.png

使用FFplay播放器异常

为了增加可比性以及分析下直播流音视频格式,因此用FFMPEG的播放工具FFplay去播放测试,发现同样是播放FLV流速度很慢。播放RTMP原始流查看Meta信息发现该路直播流只有视频信息,无音频信息,具体结果如下图所示
image.png

直播实时监控分析

直播服务控制台提供了实时监控,参考阿里云官网帮助文档查看直播推流实时监控,可以看到直播流的音频头和视频头信息。其中AAC是音频头,AVC是视频头,如果推流端没有推音频和音频头,那么这里的AAC监控项数据就会是0,本案例就是这种情况。
image.png
image.png

结论和解决方案

通过以上测试结果和相关排查可以确认该问题跟不同播放器解码特性有关,结合相关资料进一步分析确认,大部分播放器器默认会等FLV流的音频,本案例中由于FLV流没有音频,导致播放器一直在"傻等",因此起播非常慢。

目前阿里云直播支持纯音频和纯视频直播,可以通过在播放URL后加onlyvideo=1参数来实现纯视频直播,加onlyaudio=1参数来实现纯音频直播。增加onlyvideo=1以后,阿里云直播服务在FLV封装格式中会明确声明没有音频,可以避免播放"傻等"。

目录
相关文章
|
4月前
|
开发工具 Android开发 开发者
Android平台如何不推RTMP|不发布RTSP流|不实时录像|不回传GB28181数据时实时快照?
本文介绍了一种在Android平台上实现实时截图快照的方法,尤其适用于无需依赖系统接口的情况,如在RTMP推送、RTSP服务或GB28181设备接入等场景下进行截图。通过底层模块(libSmartPublisher.so)实现了截图功能,封装了`SnapShotImpl.java`类来管理截图流程。此外,提供了关键代码片段展示初始化SDK实例、执行截图、以及在Activity销毁时释放资源的过程。此方案还考虑到了快照数据的灵活处理需求,符合GB/T28181-2022的技术规范。对于寻求更灵活快照机制的开发者来说,这是一个值得参考的设计思路。
|
4月前
|
编解码 开发工具 Android开发
iOS平台如何实现毫秒级延迟的RTMP|RTSP播放器
在我的blog里面,最近很少有提到iOS平台RTMP推送|轻量级RTSP服务和RTMP|RTSP直播播放模块,实际上,我们在2016年就发布了iOS平台直播推拉流、转发模块,只是因为传统行业,对iOS的需求比较少,所以一直没单独说明,本文主要介绍下,如何在iOS平台播放RTMP或RTSP流。
|
4月前
|
存储 编解码 开发工具
拉取RTSP流后的几个去向探讨(播放|转RTMP|轻量级RTSP服务|本地录制|GB28181)
本文汇总了大牛直播SDK在Android平台上拉取RTSP流后的多种应用方向,包括本地播放、转推至RTMP服务器、轻量级RTSP服务、GB28181平台及录像等功能。提供了详细的实现方法与示例代码,旨在帮助开发者高效利用RTSP流数据,实现低延迟、稳定且灵活的应用场景。
|
4月前
|
监控 开发工具 数据安全/隐私保护
Windows平台如何实现多路RTSP|RTMP流合成后录像或转发RTMP服务
本文介绍了在Windows平台上实现多路RTSP/RTMP视频流的合并技术。主要应用场景包括驾考、全景摄像头以及多路会议录制等。技术实现上,文章详细展示了如何使用特定的SDK来解码并回调YUV或RGB数据,再将这些数据按照图层形式进行合成。示例代码中给出了初始化参数、设置视频帧回调函数、以及如何配置不同图层的具体步骤。最终,合成后的视频可以推送到RTMP服务器、注入到本地RTSP服务,或是直接录制为MP4文件。此外,还提供了添加实时文字水印的方法,并展示了四路视频流合成后的“四宫格”效果。
105 0
|
存储 编解码 缓存
海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储
Hik防爆摄像头录像,因为防爆摄像头会有对应的APP软件,与普通的网络摄像头和球机不一样,默认认为它不可以通过web网页配置,所以弄了个来实测确认。经测试实际上也是可以通过web网页配置(与网络摄像头基本是一致的,在码流方面可能会有些不一样),然后提取rtsp流的,界面与球机无异,只是没有球机的云台控制功能,但是界面上也是有的。
海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储
|
编解码 网络协议 开发工具
IE浏览器下如何低延迟播放RTSP或RTMP流
首先,虽然本文是介绍IE浏览器下OCX控件播放RTSP或RTMP,但这种方式并不推荐,毕竟它只能用于IE浏览器环境下,局限太大,而且随着微软IE浏览器的更新,不确定后续支持情况。当然,话说回来,如果是在特定的使用场景下,只需要某些版本IE浏览器支持,但对延迟和稳定性要求非常高,OCX控件方式也不失为一个好的选择。
189 1
|
容器
flv拉流在项目中如何使用(二)
这里主要是我们不能使用video容器自带的暂停和播放按钮了,我们要隐藏原来的自己实现暂停和播放。暂停和播放说白了就是断流和重新拉流
161 1
|
编解码 开发工具 图形学
Unity环境下RTMP推流+RTMP播放低延迟解决方案
在本文之前,我们发布了Unity环境下的RTMP推流(Windows平台+Android平台)和RTMP|RTSP拉流(Windows平台+Android平台+iOS平台)低延迟的解决方案,今天做个整体汇总,权当抛砖引玉。
576 0
|
开发工具 图形学 Android开发
如何在Unity3d平台下低延迟播放RTMP或RTSP流
随着VR类、工业仿真、智慧城市等场景的快速发展,开发者对Unity3d低延迟的直播需求量越来越大,前两年,大牛直播SDK发布了Windows平台、Android平台和iOS平台的Unity3d RTMP和RTSP的播放,好多公司用起来体验都非常好,以下介绍大概实现流程。
268 0

热门文章

最新文章