我有一个服务器(没有互联网连接),它在一个内部网站上有一个公司数据的网页。服务器还在定义的目录结构中包含视频(数千)。
当客户端连接时,我可以在内部网站上向他们显示视频。问题是,有些视频文件是1Gb或更大,与一些客户端的连接相当缓慢;浏览器似乎试图下载它们,以便播放而不是流。
是否有一个视频流服务器,我可以发送一个文件路径,它将服务的视频回客户端作为一个流?
我想这实际上是对我需要做的视频进行转码。我不确定PLEX或其他类似的东西是否能够动态地完成,因为有数以百计的视频和新视频一直在添加。
如果我对我的需要不太清楚,很抱歉。如果我在一点上不清楚,就给我提个问题。
发布于 2021-12-08 16:43:45
...the浏览器似乎试图下载它们,以便播放它们,而不是流它们。
为了响应@Offbeatmammal在评论中说的话,如果您使用的是MP4文件,您需要确保MOOV原子位于文件的开头。没有它,浏览器就不知道要请求什么字节偏移。
理想情况下,将视频文件编码为碎片。在FFmpeg中:
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目前是最兼容的。这两种方式都将启用自适应比特率切换,这将允许慢客户端自动切换到较低的比特率流,以便他们能够顺利地跟上。这样,速度较慢的客户仍然可以看到视频,尽管质量较低,而快速客户端可以获得完整的质量视频。
我不确定PLEX或其他类似的东西是否能够动态地完成,因为有数以百计的视频和新视频一直在添加。
至于当您执行此代码转换时,我想这取决于您正在查看的负载。如果这只是一到两个人正在查看该文件,您可以根据需要进行代码转换,如果您的服务器可以跟上。理想情况下,对于不太流行的文件,您至少有几个流变体,并在需要时添加更多。
如果你是现场直播的话,我建议你先做所有的代码转换。如果需要恢复存储,可以随时修剪旧文件/变体。
https://stackoverflow.com/questions/70267683
复制相似问题