【OSS 排查方案-12 livechannel 直播推流】

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储OSS,敏感数据保护2.0 200GB 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: OSS livechannel 推流过程 生成推流 URL设置推流状态 录制 M3u8 缺失 默认录制成品的 m3u8 所以只有最后 3 片,遵循的是 hls 协议的默认规则,是正常想象,可以通过调用 PostVodPlaylist 接口将指定时间范围内的 ts 文件汇聚到一个 m3u8 索引内来解决; tips EndTime 必须大于 StartTime,且时间跨度不能大于 1 天。

作者:张医博

OSS livechannel 推流过程

image.png

生成推流 URL
设置推流状态

案例:录制 M3u8 缺失

image.png

默认录制成品的 m3u8 所以只有最后 3 片,遵循的是 hls 协议的默认规则,是正常想象,可以通过调用 PostVodPlaylist 接口将指定时间范围内的 ts 文件汇聚到一个 m3u8 索引内来解决;

tips

  • EndTime 必须大于 StartTime,且时间跨度不能大于 1 天。
  • OSS会查询指定时间范围内的所有该 LiveChannel 推流生成的 ts 文件,并将其拼装为一个播放列表。

案例:录制 m3u8 文件 失败

  • 先看下是否已经成功推流到来 OSS 才算成功,客户端抓包必须能看到有 publish succees 的标志后,和 OSS 有正常的音频包交互才算成功,所以发现客户端推流有记录,但是就是没有录制视频的情况,就需要自己抓包分析下;

案例:客户端无法推流到 OSS

ffmpeg -re -i 0_20180525105430445.aac -acodec aac -strict -2 -f flv rtmp://xxx.oss-cn-beijing.aliyuncs.com/live/test_1000?Expires=1540458859&OSSAccessKeyId=LTAlujianb6C9z&Signature=qwh31xQsanmao6ygCFJgovNIg%3D&playlistName=playlist.m3u8

  • 使用 ffmpeg 推不上去的时候建议用最原始的命令推流,不要加一些复杂的参数,而且推流 URL 在有 & 符号时请用 "" 囊括起来;
  • 尝试更换成 obs 推流测试下,看是否是 ffmpeg 问题导致的推流失败;

案例:录制 M3u8 文件卡顿

  • 转储类型为 HLS 时,写入当前 ts 文件的音视频数据时长达到FragDuration 指定的时长后,OSS 会在收到下一个关键帧的时候切换到下一个 ts 文件;如果 max(2*FragDuration, 60s) 后仍未收到下一个关键帧,OSS 强制切换文件,此时可能引起播放时卡顿;

案例:录制 M3u8 文件没有音频或视频

在此之前没有 hls 协议基础,或者对音视频不懂的同学很难理解,我们先恶补一些关键名词和包结构
image.png

RTMP 的音视频流的封装形式和 FLV 格式相似, 流媒体服务器向客户端发送包含 H264 和 AAC 的 RTMP 直播流,需要首先发送这两个 header,没有这些信息播放端是无法解码音视频流的,其中音频 tag 格式如下

  • AVC sequence header
  • AAC sequence header
    image.png

从上面推论出 AAC sequence header 内容的前 2 个字节是 0xAF 0x00,我们来看一个示例:

image.png

ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。

ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于 mp3 数据流格式。

image.png

援引

解码流程

image.png

**经过知识补充后我们说下以下几种情况会出现音频或者视频没有录制的情况:
**

  • AVC header 或者 AAC header 没有发送,抓包也能看出来。
  • RTMP message 长度小于2,或者是 sequence header 非常小
  • 音频 Message 超过缓冲区大小。
  • codec_ ctx 解码上下文的关键信息,如果携带的音视频数据异常,也会导致录制失败。

案例:ffmpeg 推流到 OSS 录制没有音频

背景:

想问下,我们使用类似于这样的命令录制直播转推到阿里云OSS,录制下来的视频没有声音
ffmpeg -re -v -1 -loglevel debug -timeout 60000 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 60 -i http://laochouzhibo.com/live/10456_33832518963510801728548610115630440343599.flv -acodec copy -vcodec copy -f flv rtmp://laochou.oss-cn-beijing-internal.aliyuncs.com/live/6db24fe6307e4cbcbf4f1764f5a1fb86?OSSAccessKeyId=LTAHSFdouboolevJG&Expires=1541002834&Signature=yRPuvIsIe90ipETg%3D

image.png

分析:

  • 出现这种问题,可以直接看下 ffmpeg 记录的 log ,可以发现客户端是没有发送 aac_header 。
  • 或者客户端抓个 RTMP 的包也可以看到是否发送了 aac_header
相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
相关文章
|
8月前
|
存储 人工智能 数据管理
云端问道17期方案教学-AI场景下的对象存储OSS数据管理实践
本文介绍了AI场景下的对象存储OSS数据管理实践,由阿里云技术专家明锦分享。主要内容分为两部分:1) AI场景下对象存储实践方案,包括对象存储的应用、优势及在模型推理中的优化;2) OSS常用工具介绍,如OSSFS、Python SDK、Go SDK等,并详细说明了这些工具的特点和使用场景。文中还探讨了不同模式下的性能优化,以及即将推出的OS Connector for AI/ML工具,旨在提升数据下载速度和IO性能。
181 0
|
存储 API 对象存储
对象存储OSS产品常见问题之图片无法加载排查如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
1468 0
|
存储 Kubernetes 对象存储
Kubernetes版本对接对象存储几种方案
Kubernetes版本对接对象存储几种方案
|
存储 分布式计算 Kubernetes
Github 29K Star的开源对象存储方案——Minio入门宝典
对象存储不是什么新技术了,但是从来都没有被替代掉。为什么?在这个大数据发展迅速地时代,数据已经不单单是简单的文本数据了,每天有大量的图片,视频数据产生,在短视频火爆的今天,这个数量还在增加。有数据表明,当今世界产生的数据,有80%是非关系型的。那么,对于图片,视频等数据的分析可以说是大数据与人工智能的未来发展方向之一。
1652 0
Github 29K Star的开源对象存储方案——Minio入门宝典
|
存储 机器学习/深度学习 分布式计算
非结构化数据怎么存?——开源对象存储方案介绍
过去的相当长的一段时间里,商用对象存储占据了市场上的大量的份额。国外的Amazon S3,国内的阿里云OSS都成为了大多数公司的选择。但是构建一个企业级的数据湖(包括结构化和非结构化数据)已经成为了越来越多公司的目标。那么Hadoop还能满足我们的要求吗?还是我们需要更多的选择?
1440 0
非结构化数据怎么存?——开源对象存储方案介绍
|
移动开发 JSON JavaScript
阿里云OSS PostObject错误及排查详细版本
PostObject使用表单上传文件到OSS。PostObject的消息实体通过 多重表单格式multipart/form-data 编码,详细说明请参看 RFC 2388。Put Object中参数通过HTTP请求头传递,Post Object参数则作为消息体的表单域传递。
1913 0
|
1月前
|
存储 运维 安全
阿里云国际站OSS与自建存储的区别
阿里云国际站对象存储OSS提供海量、安全、低成本的云存储解决方案。相比自建存储,OSS具备易用性强、稳定性高、安全性好、成本更低等优势,支持无限扩展、自动冗余、多层防护及丰富增值服务,助力企业高效管理数据。
|
1月前
|
存储 域名解析 前端开发
震惊!不买服务器,还可以用阿里云国际站 OSS 轻松搭建静态网站
在数字化时代,利用阿里云国际站OSS可低成本搭建静态网站。本文详解OSS优势及步骤:创建Bucket、上传文件、配置首页与404页面、绑定域名等,助你快速上线个人或小型业务网站,操作简单,成本低廉,适合初学者与中小企业。
|
1月前
|
存储 安全 API
某网盘不好用?有没有类似某网盘的存储软件?阿里云国际站 OSS:云存储的全能助手,你 get 了吗?
在数据爆炸时代,阿里云国际站OSS提供海量、安全、低成本的云存储服务,支持多种数据类型存储与灵活访问,助力企业与个人高效管理数据,降低存储成本。开通简便,操作友好,是理想的云端数据解决方案。
|
7月前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
167 0