html5 video/video.js:设备之间的比特率是否一致?
我有一个视频流播放器,可以为一个流返回一系列可用的视频质量比特率。我正在尝试设置自定义url参数覆盖以设置比特率,但不确定是否应实际使用比特率编号本身。html5 video/video.js:设备之间的比特率是否一致?,video,video-streaming,html5-video,video.js,bitrate,Video,Video Streaming,Html5 Video,Video.js,Bitrate,我有一个视频流播放器,可以为一个流返回一系列可用的视频质量比特率。我正在尝试设置自定义url参数覆盖以设置比特率,但不确定是否应实际使用比特率编号本身。 在我的测试流中,最高可用比特率是2341203,它是720p视频。最低的是630000,是360p视频。 假设某人总是知道基于比特率期望的视频质量,而不管使用什么设备,这是否安全?例如,大约为2341203的比特率是否始终在720p的质量范围内,或者是否随设备流而变化?如果是这样,我将使用比特率作为查询参数: http//myvideo.com
在我的测试流中,最高可用比特率是
2341203
,它是720p视频。最低的是630000
,是360p视频。假设某人总是知道基于比特率期望的视频质量,而不管使用什么设备,这是否安全?例如,大约为
2341203
的比特率是否始终在720p的质量范围内,或者是否随设备流而变化?如果是这样,我将使用比特率作为查询参数:
http//myvideo.com&bitrate=230000
然后在数组中查找比特率最接近该参数的质量选项。如果比特率不一致,我将使用“低”、“中”、“高”刻度作为查询参数作为HLS的一部分发送的清单文件具有每个流的比特率和大小:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=275000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=426x240
240/manifest.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=880000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=640x360
360/manifest.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2860000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=1280x720
720/manifest.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4840000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=1920x1080
1080/manifest.m3u8
此视频有4个大小从240p到1080p的流(相应的比特率为275 KBPS到4800 KBPS)
现在,播放机可以查看设备屏幕大小(分辨率)和设备网络(带宽),并确定哪个流是最佳播放。每个流表示的比特率特定于流(内容),如果可用带宽发生变化,播放机将使用比特率动态选择质量,一种称为自适应比特率流的技术。这是在流的清单中定义的,因此在加载相同清单的所有设备中,级别是一致的。大多数玩家已经提供了一种手动选择质量的方法。您需要每次检查清单中的可用表示。谢谢@aergistal!如果user-1从iPad实时流媒体,user-2从旧网络摄像头流媒体,user-3从高清网络摄像头流媒体,那么
230000
的比特率是否等同于所有不同流媒体内容的相同质量?否,是最大比特率(峰值)值将取决于源材料和特定流的编码参数。举一个简单的例子,想想分辨率和帧速率也可能不同:较大的图像需要更多的数据,60fps比30fps需要更多的带宽。即使对于相同的分辨率,您也可以改变压缩率以获得更好的质量或更低的延迟,这将对比特率产生影响。如果你控制编码,你当然可以针对你自己的水平。精彩的解释。谢谢你花时间通知我!