相关疑难解决方法(0)

HTML5视频的字节范围请求(伪流)如何工作?

如果您为接受范围请求的服务器上托管的视频播放HTML5视频,那么当您尝试提前查看视频的非缓冲部分时,您会从网络流量中注意到浏览器发出一个字节范围请求.我假设浏览器通过提前知道总视频大小并假设一个恒定的比特率来计算字节(如果你在进度条中点击一半,那么它将在中途点请求字节).但特别是如果视频是可变比特率的,那么它所请求的字节似乎不太可能真正对应于用户点击的时间点,并且该字节可能落在帧的中间.

一旦它开始在某个任意字节读取,浏览器如何知道下一帧的开头是什么?

video video-processing video-streaming html5-video

10
推荐指数
1
解决办法
8690
查看次数

节点 - 无法搜索音频流

我创建了一个简单的服务器,它使用fs模块将mp3文件流式传输到浏览器,该浏览器在html5音频元素中播放它.实际上,音频流完全正常,但是,即使我寻求的部分已经被缓冲,我也无法通过流来寻找.

var express = require('express');
var app = express();
var fs = require('fs');

app.get('/', function (req, res) {
    var filePath = 'music.mp3';
    var stat = fs.statSync(filePath);

    res.writeHead(200, {
        'Content-Type': 'audio/mpeg',
        'Content-Length': stat.size,
    });

    var readStream = fs.createReadStream(filePath);
    readStream.pipe(res);
});
Run Code Online (Sandbox Code Playgroud)

其他类似的Q&As建议添加Content-Range标头,但我找不到如何做到这一点的简单示例.其他人已经说过使用206 Partial-Content标题,但是当我这样做时,音频根本不会播放.

这是一个演示(在Windows上测试Chrome)

audio-streaming fs node.js

9
推荐指数
1
解决办法
1875
查看次数

将 html <video> 中的字节范围转换为时间范围

我有一些服务器端代码当前支持 http 字节范围请求,没有任何问题。但是,我希望能够在将转码块发送到客户端之前使用 ffmpeg 即时转码视频文件(位于磁盘上),但 ffmpeg 要求我在获取字节时给它一个寻道时间范围来自客户。给定客户端浏览器的字节范围,我如何能够计算出视频文件的时间范围(寻道时间)?

我已经看过这个问题,它假设服务器已经知道指定的时间。

我愿意使用 html5 视频播放器,它支持使用时间范围而不是字节范围来请求数据,但我一直无法找到实现或弄清楚缓冲的 javascript 端如何<video>工作。

html javascript ffmpeg

5
推荐指数
1
解决办法
2813
查看次数