视频直播常见问题与解决办法汇总【系列一】

简介: 本文介绍视频直播常见问题,如果您对阿里云直播有任何功能、体验、实操方面的问题,都可以在文章下面留言,我们会积极解答您的疑惑~谢谢!

视频直播服务支持哪些推流协议?

阿里云视频直播服务支持 RTMP 推流
RTMP 即实时消息传输协议,Real Time Messaging Protocol,是 Adobe 公司开发的一个基于 TCP 的应用层协议,目前国内的视频云服务都是以 RTMP 为主要推流协议。

RTMP 推流的地址通过直播服务控制台添加一个直播加速域名,在域名管理中可查看到分配给每个域名的推流地址,推流地址可按相应规则自行组织。

支持哪些直播流播放协议?

视频直播服务支持输出 RTMP、FLV、HLS 三种协议

  • RTMP 协议比较全能,既可以用来推送,又可以用来直播。其核心理念是将大块的视频帧和音频帧“剁碎”,然后以小数据包的形式在互联网上进行传输,且支持加密,因此隐私性相对比较理想,但拆包组包的过程比较复杂,所以在海量并发时容易出现一些不可预期的稳定性问题。

  • HTTP-FLV 协议由 Adobe 公司主推,格式极其简单,只是在大块的视频帧和音视频头部加入一些标记头信息,由于这种极致的简洁,在延迟表现和大规模并发方面都很成熟。唯一的不足就是在手机浏览器上的支持非常有限,但是用作手机端 APP 直播协议却异常合适。

  • HLS 协议:苹果推出的解决方案,将视频分成 5-10 秒的视频小分片,然后用 m3u8 索引表进行管理。由于客户端下载到的视频都是 5-10 秒的完整数据,故视频的流畅性很好,但也同样引入了很大的延迟(HLS 的一般延迟在 10-30s 左右)。相比于 FLV,HLS 在iPhone 和大部分 Android 手机浏览器上的支持非常给力,所以常用于 QQ 和微信朋友圈的 URL 分享。

RTMP、HLS、HTTP-FLV 协议对比

image

常见的推流包括哪几种形式?

  • 台式计算机或笔记本,使用摄像头或者桌面
    使用第三方软件采集摄像头视频或桌面图像,将视频或桌面推流至RTMP推流地址。第三方推流软件包括:OBS(推荐)、FMLE、XSplit 等。

  • Android/iOS,使用手机摄像头
    使用第三方软件或SDK采集摄像头视频,并推送视频流至RTMP推流地址。

  • 视频采集设备
    高清摄像机类设备如果具备 HDMI 或者 SDI 输出接口,可以接入编码器,以 RTMP 推流的方式向直播服务推送直播内容。您需要将直播推流地址配置到编码器的 RTMP 发布地址。

  • 网络摄像头类设备,如果支持RTMP推流,则可将直播推流地址配置到摄像头的 RTMP 发布地址。

  • 视频文件转视频流
    读取某个视频文件,并以 RTMP 流方式输出作为视频源来向直播服务的 RTMP 推流地址进行视频发布。可以使用 ffmpeg 命令来实现 (Windows/Linux/Mac 均适用)。例如,使用如下命令行:

ffmpeg -re -i {
   your_video_file} -r 30 -s 1280x720 -f flv {
   your_rtmp_address}

如何保护直播版权,防止非授权用户访问?

视频直播服务支持推流认证、播放认证和推流黑名单等多种安全策略,保护您的直播版权不受侵犯。

  • 推流鉴权:直播推流采用 URL 鉴权,URL 鉴权功能旨在保护用户上传的内容资源不被非法盗用侵占。
  • 播放鉴权:直播播放采用 URL 鉴权。直播控制台开启推流鉴权后会自动开启播放 URL 鉴权。使用鉴权后的 URL 播放地址降低客户资源被盗链的风险。

注意:对于防盗链这一安全策略,目前不支持用户在控制台设置防盗链 Referer、IP 黑白名单功能,用户可以使用CDN的接口来设置这两个功能。

使用第三方推流工具,为何 m3u8 播放地址观看延时达到 50 秒以上甚至 1 分钟以上?

使用推流工具进行推流操作时,需手动调节流延时时间。目前 m3u8 播放地址延时在 10~35 秒之间为正常范围。如您的延时已超过正常范围,请您参照以下步骤设置参数。

OBS 推流工具设置

  • 选择 输出 > 高级。
  • 将 关键帧间隔(秒,0=自动) 设置为 2。
    image

FMLE 推流工具设置

  • 选择 Video > Format > Keyframe Frequency。
  • 选择 5 seconds。
    image

使用播放器播放时画面花屏?

排查是否是视频源问题

视频源问题

  • 确认播放片源是否正常,排除转码过程中的问题。
  • 确认推流的帧率与码率是否正常,排除推流传输过程中的问题。

非视频源的问题

  • 确定播放器是否使用了软解码。调用 SDK 中setDefaultDecoder接口,参数 0 为硬件解码,1 为软件解码。设置参数 1。在重新安装 APK 前先删除之前的程序并重启计算机,防止缓存中数据的影响。

播放器播放m3u8提示跨域错误?

播放器跨域访问时需要添加策略文件,即在视频播放链接所在域名的根目录下添加 crossdomain.xml 文件,其中添加播放器所在域名的权限。例如:

http://test1.com/app/test.m3u8

需要添加

http://test1.com/crossdomain.xml。
<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
    <allow-access-from domain="*"/>
    <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>

直播无法观看问题排查?

导致直播无法观看的因素有很多,在不知道问题出在哪时需要逐一排查。

  1. 检查播放URL拼接是否正确
  • 确认是否把 推流地址作为播放地址 。用户在未查看规则时,可能会犯这个错误。
  • 确认播放地址是否符合拼接规则以及是否正确。直播的播放地址是根据 直播加速域名+AppName+StreamName拼接而成,详情参考 直播播放地址。
  1. 检查播放器
  • 在第三方播放器中输入播放地址进行播放,排除是播放器本身的问题。
  • 检查是否是播放器跨域的问题,播放器跨域访问时需要添加策略文件,详见 播放m3u8文件提示跨域。
  • 确认播放格式是否支持:
  1. 在PC端使用flash播放器支持格式:rtmp、flv、m3u8。
  2. 手机端使用H5播放器仅支持m3u8(iOS均支持,安卓需4.0以上并且手机浏览器支持)。

flash播放器无法拖拽?

flash 播放器对 mp4/flv 无法拖拽
mp4 与 flv 拖拽需要 CDN 添加支持,是通过播放器发送带时间的请求到 CDN,CDN 返回该时间段的视频数据。如果要实现拖拽,需要以下两个条件:

  • 文件索引信息需要在视频的头部,mp4 包含视频时间戳等索引信息,以及 flv 的 meta 信息要在视频最前面,播放器解析到视频索引信息后,才可以依据拖拽的位置通过索引信息拿到指定位置的数据点,去向 CDN 发送请求;

  • CDN 支持带时间 byte range 的请求,需要在cdn控制台开启,详情参考 CDN 拖拽播放帮助

直播过程中卡顿?

网络问题

  • 检查用户上行或下行带宽是否够用。
  • 确定播放的视频清晰度。清晰度越高,码率越大,编码尺寸越大,所需带宽就越大。可以根据当前带宽合理调整播放清晰度。

设备

  • 检查播放设备内存是否已满,设备后台程序运行过多也会影响播放效果。

推流成功后无法播放?

确认播放地址是否正确

  1. 获取直播播放地址。
  • 登录 视频直播控制台。
  • 选择所需的地域。
  • 在所需的域名右侧单击 管理。
  • 在 基本信息 中可获得 播放信息, 即直播播放地址。
  1. 播放地址自定义拼接规则为 播放域名+AppName+StreamName+_+ 转码模板名称。

确域名是否 CNAME 至阿里云服务器下

您可以通过 PING 的方式来查询是 CNAME 是否生效;如果 PING 到 alikunlun*.com 表示域名 CNAME 生效。若 CNAME 为生效,请执行 CNAME 绑定操作
image

直播常见问题持续更新中......

如果您对阿里云直播有任何功能、体验、实操方面的问题,都可以在文章下面留言,我们会积极解答您的疑惑~谢谢!

业务咨询可扫码加入钉钉群:
image

0.1元开启直播之旅

image
开年采购季,为了让更多用户能够体验和享受到视频直播云服务的便利,视频产品推出了0.1元体验包,配置清单如下:
image

点击了解活动详情

目录
相关文章
|
9月前
|
人工智能 缓存 自然语言处理
全球首款开源通用型AI智能体上线!Suna:自动处理Excel/爬数据/写报告等复杂任务一句话搞定
Suna是由Kortix推出的开源通用型AI智能体项目,通过自然语言交互实现浏览器自动化、文件管理、数据分析等复杂任务处理,支持自托管部署,为研究分析和日常工作提供智能辅助。
2125 55
全球首款开源通用型AI智能体上线!Suna:自动处理Excel/爬数据/写报告等复杂任务一句话搞定
|
JavaScript 前端开发 Android开发
转换 ES6 代码时需要注意哪些兼容性问题
在转换ES6代码时,需关注兼容性问题,如箭头函数、模板字符串、let/const等语法在旧浏览器中的支持情况,以及模块化、类、Promise等特性是否需要polyfill。使用Babel等工具可有效解决大部分兼容性问题。
|
安全 网络协议 网络安全
代理IP、Socks5代理与网络安全:保护隐私与防御威胁的技术探索
代理IP、Socks5代理与网络安全:保护隐私与防御威胁的技术探索
474 0
|
Web App开发 移动开发 JavaScript
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
1146 0
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
阿里云领跑生成式AI工程领域,两大维度排名Gartner®生成式AI工程Market Quadrant全球第二
阿里云凭借强劲实力入选Gartner 《Innovation Guide for Generative AI Technologies》所有领域的新兴领导者象限。
|
IDE 数据可视化 TensorFlow
Anaconda和Python是什么关系?
Anaconda和Python是什么关系?
436 8
|
消息中间件 存储 网络协议
即时通讯需要用到哪些技术手段?
该文探讨了即时通讯技术,涉及网络协议(TCP/IP、UDP、HTTP/HTTPS)在IM中的应用,数据传输与同步(消息队列、长轮询、WebSocket、数据同步)技术,安全性保障(加密、认证授权、防止攻击)措施,以及多媒体处理(音频、视频处理和实时传输)和用户界面交互设计的重要性。文章旨在帮助读者理解并应用相关技术。
1239 1
|
存储 NoSQL MongoDB
深入解析 MongoDB 与 Python:基本语法、实用示例与最佳实践
深入解析 MongoDB 与 Python:基本语法、实用示例与最佳实践
307 0