海洋 CMS 播放器可以设置默认播放清晰度吗
结论:海洋CMS 后台没有「默认清晰度」这个独立开关,默认播哪一档清晰度,取决于播放地址的线路顺序和播放页/播放器 JS 的配置。想固定成「默认高清」,得从线路排序或播放页代码入手,而不是在后台勾一个选项。
海洋CMS 后台能直接设置默认播放清晰度吗?
不能。海洋CMS 的播放器设置项(不同版本命名略有差别)里能配的是默认播放器类型、播放器宽高、是否开启解析、是否自动播放这类参数,没有「默认清晰度」下拉框。
原因在于海洋CMS 对「清晰度」的理解和播放器软件不一样:它不认为一集视频内部有多个码率档,而是把每一档清晰度当成一条独立的播放地址。你在播放页看到的高清、超清、蓝光,本质上是资源站给的几条不同 m3u8 链接,对应数据库里的不同线路。
所以「默认清晰度」这个问题,实际等价于「默认播放哪条线路」。
海洋CMS 的清晰度是怎么来的?
来自采集接口返回的 vod_play_url 字段。这个字段是一条长字符串,格式类似 第1集$http://xxx.m3u8#第2集$http://yyy.m3u8,多线路时会出现多组,每组对应播放页顶部的一个线路标签。
结论:默认播放的就是第一条线路里的第一个地址。 采集接口按什么顺序返回,你的站就默认播什么,多数资源站会把低码率的线路排在前面,这就是「默认画质偏糊」的根本原因。
怎么让海洋CMS 默认播放高清线路?
两条可行路径,按成本从低到高排:
第一步,调整线路顺序。 如果资源站支持接口参数筛选(不少采集接口带 h= 之类的画质参数或线路过滤参数,具体以你对接的资源站文档为准),优先只采高清线路;或者在后台「采集」相关设置里,用替换规则把低画质线路名改掉或剔除,让高清线路排到第一位。
第二步,控制播放页默认选中的线路。 海洋CMS 播放页 URL 里带线路参数 sid 和集数参数 nid(伪静态规则不同写法不同,比如 vod-play-id-100-sid-1-pid-1.html 或 play/?id=100&sid=1&nid=1)。把模板里的默认播放链接、以及播放列表点击时的 sid 值,指向高清线路的序号,用户进来就是高清。注意 sid 是从 1 开始的序号,线路顺序变了序号也会跟着变,改完要用几条影片实测。
第三步,改播放器 JS。 播放逻辑通常在播放页模板和 js/player/ 目录下的播放器文件里。找到初始化播放器的那段配置对象,把默认线路索引写死。这一步对版本敏感,变量名各版本不同,改之前先备份,并用浏览器 F12 确认实际生效的文件路径,避免改了 A 文件结果加载的是 B 文件。
单条 m3u8 是多码率主列表时怎么指定默认清晰度?
有一种情况例外:资源方给的是 master playlist(主播放列表,文件里含多组 #EXT-X-STREAM-INF,每组的 BANDWIDTH 不同),播放器会自己按网速切档。这时用 hls.js 的 startLevel 参数就能指定起始清晰度。
结论:hls.js 配置项 startLevel 用来设置起始播放的码率等级,0 通常是最低档,等级越高画质越好,填 -1 表示由播放器自动选择。 DPlayer 之类的封装播放器通过自身 config 把 hls 配置透传给 hls.js,把 startLevel 写成高清档对应的索引即可。
判断是不是主列表很简单:下载那条 m3u8,看里面是不是还有若干条子 m3u8 地址。如果不是,就回到上面按线路处理。
设置时要注意什么?
三点容易被忽略:一是升级覆盖,海洋CMS 版本升级可能覆盖模板和 js 目录,改动记好位置和内容;二是CDN 与浏览器缓存,改完 JS 后强制刷新(Ctrl+F5)或刷新 CDN 缓存再验证,否则会误以为没生效;三是移动端体验,把默认档位定太高,弱网用户在手机上会频繁缓冲,留一个「自动」选项更稳妥。
总结一下:海洋CMS 没有「默认清晰度」这一个开关,清晰度等于线路;要改默认画质,先把高清线路排到第一位,再在播放页 URL 的 sid 参数或播放器 JS 里指定默认线路;如果 m3u8 本身是多码率主列表,才用 hls.js 的 startLevel 控制。
原文链接:https://www.gj0.com/thread-779.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。