如何仅流式传输视频的一部分而不下载整个视频?

问题描述 投票:0回答:1

我正在构建一个 YouTube 视频修剪器,目前,它需要 YouTube 视频 ID,从服务器下载整个视频(即使是 10 小时长),然后使用

ffmpeg
根据用户输入的时间范围进行修剪.

现在的问题是,即使我们想要一小部分,也需要花费很多时间来下载整个视频,因此这是非常不切实际的。

我正在考虑实现一些类似于 HTML5 视频播放器在向前搜索视频时所做的事情。它只是跳到您想要的部分,而不下载您跳过的部分。如何仅以缓冲区的形式从服务器下载视频文件的一部分,然后从中生成已修剪的视频文件?我不知道这在服务器端是否可行,但视频播放器在客户端做到这一点。

javascript node.js ffmpeg html5-video fs
1个回答
0
投票

我知道已经过去 3 年了,但对于仍然对此感到好奇的人,可以使用 HTTP 范围请求来完成。这是一篇非常有用的文章:https://surma.dev/things/range-requests/https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests

基本上,当向服务器发出请求以获取视频文件时,您可以定义要获取的确切字节范围,而不是整个文件。这是使用 Range 标头完成的。

© www.soinside.com 2019 - 2024. All rights reserved.