前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >播放器如何切换视频清晰度

播放器如何切换视频清晰度

作者头像
马上就说
发布于 2020-11-11 08:42:54
发布于 2020-11-11 08:42:54
4K00
代码可运行
举报
文章被收录于专栏:码上就说码上就说
运行总次数:0
代码可运行

随着移动互联网的高速发展,网速的雄起,我们播放视频,高清已经是入门要求了,现在怎么也要是1080P或者4K视频才好意思让我冲会员吧.但是不要忘了,世界很大,你们先富起来的人也要考虑网络的平均状态,互联网的生态是多样的,低清/普清/中清/高清/超清,等级森严.

高级播放器当然有根据当前网络状态切换清晰度的功能,但是别忘了我们可怜的MediaPlayer还有其他低级播放器,即使是ExoPlayer,切换的逻辑也是嵌入到播放器内部,有时候还不是那么准,关键是开发者没法有效的掌控.

我们现在想将一个视频中的片源清晰度信息提取出来,然后供用户自由选择,这个可以做到吗?当然只是针对M3U8视频,那么自带服务器光环的视频不管啦,毕竟片源是你的,你想怎么玩就怎么玩.

先给一个播放链接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://newcntv.qcloudcdn.com/asp/hls/main/0303000a/3/default/fe76ae5bc1cb70ee0ca8a321392414d6/main.m3u8?maxbr=2048&minbr=400

python脚本解析一下这个视频url:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/python
# -*- coding: UTF-8 -*-

## 将网络url中的信息保存到本地


import requests

url='https://newcntv.qcloudcdn.com/asp/hls/main/0303000a/3/default/fe76ae5bc1cb70ee0ca8a321392414d6/main.m3u8?maxbr=2048&minbr=400'

def parseUrlInfo(url):
    if (not url.startswith('http')) and (not url.startswith('https')):
        return 'Error protocol'
    request = requests.get(url, timeout=10)
    print request.status_code
    result=''
    for line in request.iter_lines():
        result+=line+'\n'
    return result

print(parseUrlInfo(url))

解析结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=460800, RESOLUTION=480x270
/asp/hls/450/0303000a/3/default/fe76ae5bc1cb70ee0ca8a321392414d6/450.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=870400, RESOLUTION=640x360
/asp/hls/850/0303000a/3/default/fe76ae5bc1cb70ee0ca8a321392414d6/850.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1228800, RESOLUTION=1280x720
/asp/hls/1200/0303000a/3/default/fe76ae5bc1cb70ee0ca8a321392414d6/1200.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=2048000, RESOLUTION=1280x720
/asp/hls/2000/0303000a/3/default/fe76ae5bc1cb70ee0ca8a321392414d6/2000.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=2048000, RESOLUTION=1280x720
/asp/hls/2000/0303000a/3/default/fe76ae5bc1cb70ee0ca8a321392414d6/2000.m3u8

这个m3u8链接中有5个不同清晰度的片源,那我们展示的时候可以根据实际的网络状态给用户播放更加高清的视频,提升体验.

正常情况下的播放状态是下面图1,但是我们加上了选择清晰度,你可以选择高清甚至超高清播放,最后一张图显然更加高清了,观看体验更佳.

具体做法大家可以看一下源码: https://github.com/JeffMony/PlayerSDK

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 音视频平凡之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
看前端如何通过WebAssembly实现播放器预览能力
最近,团队小组内部体验Web浏览器上课的音视频播放功能,除了对比同行产品,也对比了主流视频内容的网站平台。计划补齐和增强与播放体验相关的能力。 其中有一项能力在主流媒体视频网站都支持的,那就是进度条帧预览:在鼠标进度条停留,不必跳转进度,即可展示所指画面。 在简单分析了B站、腾讯视频后,发现都是采取在上架视频时,由后台生成专门用来帧预览的组合sprite图,然后前端拉取后再计算进度进行展示。 由于目前的我们后台云点播录制没有生成帧预览图功能。另一方面,即便升级可能大量的存量存储视频无法帧预览。于是我们决
用户1097444
2022/06/29
2.5K0
看前端如何通过WebAssembly实现播放器预览能力
Android,播放m3u8视频和下载m3u8的视频「建议收藏」
因最近项目需要,研究了一个礼拜的m3u8。格式为m3u8的视频,其实是由多个.ts文件组成在一起播放的。下面有些资料是参考了网上的,总体概括下实现思路:
全栈程序员站长
2022/09/12
5.3K0
音视频多码率自适应:能屈能伸的流媒体
多码率自适应 多码率自适应可将指定的音视频文件流统一打包生成一个自适应码流文件,让播放器可根据终端网络带宽环境。 在媒体业务形态、网络基建、终端技术等多方面因素的共同作用下,视频类业务的流量和分布也在出现明显变化,比如2020年6月快手推出全景视频,2021年8月抖音宣布支持2K视频播放,2021年12月B站上线8K专区等。与此同时,用户的交互行为也在潜移默化中受到影响,耐心在视频业务中似乎越发少见,我国9.44亿网络视听用户里39.4%的用户选择加速观看,8.7%的用户会边拉动进度条边看,即点即开与视频
云存储
2022/05/25
1.1K0
音视频多码率自适应:能屈能伸的流媒体
python爬取网站m3u8视频,将ts解密成mp4,合并成整体视频「建议收藏」
一些网站会提供m3u8视频地址,以供下载观看。或者一些网站经过分析后发现是使用m3u8格式进行播放的,这时使用m3u8的地址链接就可以下载到相应的视频。
全栈程序员站长
2022/09/07
4.8K0
python爬取网站m3u8视频,将ts解密成mp4,合并成整体视频「建议收藏」
Android音视频——NuPlayer数据解析模块详解
可以看到 NuPlayer 的解析模块主要是 NuPlayerSource和继承自它的HTTPLiveSource、RTSPSource、GenericSource等几个类。
程思扬
2022/01/11
8240
Android音视频——NuPlayer数据解析模块详解
原来爱优腾等视频网站都是用这个来播放流媒体的
HLS (HTTP Live Streaming) 是苹果公司开发的流媒体传输协议,它使用 HTTP 来传输视频,可以防止被防火墙屏蔽。现在大部分视频网站都在使用,比如优酷、腾讯视频。
lcyw
2022/11/23
2K0
原来爱优腾等视频网站都是用这个来播放流媒体的
使用FFmpeg进行HLS打包——FFmpeg简单学
 点击上方“LiveVideoStack”关注我们 翻译、编辑:Alex 技术审校:赵军 本文来自OTTVerse,作者为Krishna Rao Vijayanagar。 ▲扫描图中二维码或点击阅读原文▲ 了解音视频技术大会更多信息 FFmpeg Easy-Tech #023# 在本文中,我们将学习使用FFmpeg进行HLS打包。使用FFmpeg的好处在于:你可以在不离开命令行的情况下,执行提取视频、调整视频尺寸、转码、打包以及传输视频的所有操作。 我们首先看一下为VOD(点播)创建HLS打包的所
LiveVideoStack
2022/05/09
2.6K0
使用FFmpeg进行HLS打包——FFmpeg简单学
HLS直播协议详解
首先我们先使用 ffmepg 对一段视频文件进行切片,视频所在路径:D:\Work\test
Gnep@97
2023/10/29
1.8K0
HLS直播协议详解
多媒体文件格式剖析:M3U8篇
M3U8,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础;是 Unicode 版本的 M3U。
马上就说
2020/12/11
7K0
多媒体文件格式剖析:M3U8篇
不再碎片化学习,快速掌握 H5 直播技术
现在,大多数已工作的前端工作者的学习方式,要么直接到 Stackoverflow 上搜代码,要么直接看看相关博文。这样是快,但是零零碎碎只是一个一个孤立的知识点而已。有可能一下午都忘记了,唯一可能记住的收藏一下那个文章,然后就彻底躺尸了。那有没有啥更好的办法能解决呢? 当然有,第一,有时间,第二,有人指导,第三,找对资料。 这其实和看书是一样的,一本书,最有价值的地方不在它的内容或者作者,而在于它的 目录,是否真正的打动你。如果只是出现一些模糊而没有落地技术的目录的书籍,还是别再上面浪费时间了。 所以,本文
villainhr
2018/07/03
1.7K0
ExoPlayer 自适应流切换分析
自适应流切换属于多路流切换的方式中的一种,ExoPlayer作为MediaCodec使用的集大成者,不仅具备通过MergingMediaSource实现不同流的组合切换,同样也具备基于MGEG-DASH、HLS、smoothing-stream 协议的的自适应流切换。当然,在项目中每种方案的选型都要充分考虑团队条件。
QQ音乐技术团队
2023/10/23
2K0
ExoPlayer 自适应流切换分析
m3u8 文件格式简解
上述文字定义来自于维基百科。可以看到,m3u8 文件其实是 HTTP Live Streaming(缩写为 HLS) 协议的部分内容,而 HLS 是一个由苹果公司提出的基于 HTTP 的流媒体网络传输协议。
后端码匠
2022/02/14
4.8K0
M3U8 格式:为什么直播回放都用这个格式?丨音视频基础
(本文基本逻辑:M3U8 封装格式概览 → M3U8 格式解析 → M3U8 封装示例)
关键帧
2022/06/13
4.8K0
M3U8 格式:为什么直播回放都用这个格式?丨音视频基础
什么是HLS(HTTP Live Streaming)?
2009年,Apple推出了HLS(HTTP Live Streaming)——基于HTTP的自适应码率流媒体传输协议。HLS描述了一组通过互联网提供音视频服务的工具和程序。一个视频可以被分割成多个视频切片,这些切片的传送位置和顺序在一组被称为播放列表的XML文件中,该文件以文件扩展名m3u8结尾。人们可以使用兼容了HLS的播放器播放视频。
LiveVideoStack
2022/02/11
4.3K0
什么是HLS(HTTP Live Streaming)?
EasyDSS点播系统多清晰度转码后如何获取不同规格视频播放链接?
EasyDSS具有电视直播、现场直播、时移电视、即刻回看和视频点播功能,适合OTT TV、IPTV、互联网教育、视频聊天、现场直播和VOD等应用。并且EasyDSS支持多种特性,完全能够满足企业视频信息化建设方面的需求。
TSINGSEE青犀视频
2021/09/07
7080
浅析 HLS 流媒体协议
在最近工作中接触到了视频点播和直播业务,也了解到了一些流媒体的后端技术,这段时间希望将了解到的一些知识总结下来,这篇文章主要介绍 HLS 流媒体协议 的基础知识。
高楼Zee
2020/12/15
1.9K0
FFmpeg推流到Nginx并使用播放器播放
如今直播很火,下面就简单分享下我是如何直播的。必备工具:FFmpeg,Nginx,还有一个播放器。之前在实例解析中分享过如何用FreeSWITCH来做直 播,这次分享下如何用FFmpeg配合Nginx做直播。
杜金房
2020/12/21
1.9K0
技术解码 | 玩转视频播放,自适应码流技术
视频在线观看的用户体验是视频行业差异化的一个关键点,而自适应码流技术便是其中的关键技术。本周的技术解码就由楚雄老师带大家玩转视频播放,解码自适应码流技术. 随着泛娱乐行业的兴起,音视频服务已经逐渐成为人们生活不可或缺的部分,Cisco Study指出截止2019年,音视频已经占据了互联网上80%以上的流量。 Statista 对 2017-2022 年的全球音视频流量进行了预估,结果表明在未来的 2-3年内视频产业将继续保持强劲的增长趋势。在如此巨大的流量下,各视频厂商也在积极探索视频产业的盈
腾讯云音视频
2020/08/10
3.2K0
如何保护会员或付费视频?优酷是怎么做的? - HLS 流媒体加密
这是弹幕播放器系列文章第 4 篇,上篇请点击 原来爱优腾等视频网站都是用这个来播放流媒体的。播放器官网:https://nplayer.js.org/ 。
羽月
2022/10/09
1.9K0
如何保护会员或付费视频?优酷是怎么做的? - HLS 流媒体加密
在线视频的5种下载办法
最简单的办法,就是利用各种网盘搜索,找到网盘的分享地址,转存到自己的网盘,然后下载。这样就避免了从在线视频网站直接下载,而且常常清晰度比较高。
全栈程序员站长
2022/09/07
4.9K0
推荐阅读
相关推荐
看前端如何通过WebAssembly实现播放器预览能力
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档