开发者社区 问答 正文

oss MP4视频转码m3u8后无法播放

我在私有bucket里 上传了一个mp4文件, 转码 转成了m3u8 文件,里面还多了个ts文件, 我要怎么做才能播放这个 m3u8文件?

展开
收起
261985228247477137 2019-03-22 16:50:17 3673 分享 版权
阿里云 AI 助理回答

要在私有Bucket中播放您生成的M3U8文件,需要完成以下步骤:


1. 确保Bucket权限设置正确

为了能够访问和播放M3U8文件及其关联的TS文件,您需要确保Bucket的读写权限设置为公共读
注意:如果您的Bucket是私有的,则需要通过CDN或其他方式配置回源规则以支持播放。


2. 配置跨域策略(crossdomain.xml)

如果您希望通过阿里云控制台预览播放M3U8文件,需要在M3U8文件所在Bucket的根目录下放置一个crossdomain.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
    <allow-access-from domain="*.example.com"/>
</cross-domain-policy>

*.example.com替换为您实际使用的播放器所在的域名。此文件允许Flash播放器访问您的资源。


3. 使用CDN加速并配置私有回源

如果您的Bucket是私有的,建议使用CDN加速,并配置私有回源规则以支持边转边播功能。具体步骤如下:

步骤 1:登录CDN控制台

进入CDN控制台。

步骤 2:添加规则引擎

  1. 在左侧导航栏,单击域名管理
  2. 找到目标域名,单击对应的管理
  3. 在指定域名的左侧导航栏,单击规则引擎
  4. 单击添加规则,设置规则为匹配文件扩展名为.ts。如果Bucket中还存在非边转边播生成的TS文件,请添加文件路径匹配规则。

步骤 3:配置回源参数

  1. 在指定域名的左侧导航栏,单击回源配置
  2. 回源参数改写页面开启“功能开关”。
  3. 在添加参数中填入以下内容:
    x-oss-process=if_status_eq_404{hls/ts}
    
  4. 规则条件中选择刚才创建的规则,并添加“回源配置”条件。

4. 播放M3U8文件

完成上述配置后,您可以直接通过CDN域名访问M3U8文件进行播放。例如:

http://your-cdn-domain/path/to/output-video.m3u8

重要提示:请确保使用支持HLS协议的浏览器或播放器(如VLC播放器)来访问M3U8文件。


5. 常见问题排查

如果播放失败,请检查以下内容: 1. M3U8文件是否正常生成:确认M3U8文件和TS文件已成功生成,并且路径正确。 2. TS文件是否可访问:手动删除TS文件后,系统会重新生成,但需要确保M3U8文件未被删除。 3. 转码问题:如果播放黑屏,请检查源文件视频流是否正常。如果源文件第一个TS没有视频流数据,可能会导致播放器无法识别画面。可以尝试先对源文件进行一次MP4转码,再进行M3U8转码。


通过以上步骤,您应该能够成功播放私有Bucket中的M3U8文件。如果仍有问题,请参考相关文档或提交工单获取进一步支持。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答