首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTP视频流

HTTP视频流
EN

Stack Overflow用户
提问于 2021-12-07 22:26:21
回答 1查看 133关注 0票数 0

我有一个服务器(没有互联网连接),它在一个内部网站上有一个公司数据的网页。服务器还在定义的目录结构中包含视频(数千)。

当客户端连接时,我可以在内部网站上向他们显示视频。问题是,有些视频文件是1Gb或更大,与一些客户端的连接相当缓慢;浏览器似乎试图下载它们,以便播放而不是流。

是否有一个视频流服务器,我可以发送一个文件路径,它将服务的视频回客户端作为一个流?

我想这实际上是对我需要做的视频进行转码。我不确定PLEX或其他类似的东西是否能够动态地完成,因为有数以百计的视频和新视频一直在添加。

如果我对我的需要不太清楚,很抱歉。如果我在一点上不清楚,就给我提个问题。

EN

回答 1

Stack Overflow用户

发布于 2021-12-08 16:43:45

...the浏览器似乎试图下载它们,以便播放它们,而不是流它们。

为了响应@Offbeatmammal在评论中说的话,如果您使用的是MP4文件,您需要确保MOOV原子位于文件的开头。没有它,浏览器就不知道要请求什么字节偏移。

理想情况下,将视频文件编码为碎片。在FFmpeg中:

代码语言:javascript
复制
ffmpeg -i ... -f mp4 -movflags frag_keyframe+empty_moov output.mp4

另见:https://stackoverflow.com/a/9734251/362536

这应该允许客户端从任何支持HTTP/1.1范围请求的web服务器上传输MP4文件。(除非另有配置,大多数都会这样做。)

然而,还有一个问题要解决:

问题是有些视频文件是1Gb或更大,与一些客户端的连接相当缓慢.

虽然解决流问题意味着客户端不必先下载整个文件,但他们仍然需要带宽来跟上流。如果有可能他们不会,你会想要实现某种转码器。

我建议使用现有的分段流方法,如DASH或HLS。由于苹果的平台政策,HLS目前是最兼容的。这两种方式都将启用自适应比特率切换,这将允许慢客户端自动切换到较低的比特率流,以便他们能够顺利地跟上。这样,速度较慢的客户仍然可以看到视频,尽管质量较低,而快速客户端可以获得完整的质量视频。

你可以使用FFmpeg进行转码和HLS播放列表的创建

我不确定PLEX或其他类似的东西是否能够动态地完成,因为有数以百计的视频和新视频一直在添加。

至于当您执行此代码转换时,我想这取决于您正在查看的负载。如果这只是一到两个人正在查看该文件,您可以根据需要进行代码转换,如果您的服务器可以跟上。理想情况下,对于不太流行的文件,您至少有几个流变体,并在需要时添加更多。

如果你是现场直播的话,我建议你先做所有的代码转换。如果需要恢复存储,可以随时修剪旧文件/变体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70267683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档