首页 > 解决方案 > 是否可以通过 webrtc 或其他方式从浏览器发送大型视频文件(大于 4 Gig)并通过 HLS 或其他格式进行流式传输?

问题描述

我的问题是关于 HTML 方面的问题(通过 chrome 或 safari 等浏览器)...

**** 还主要关注的是通过 4 Gig 发送文件时的 chrome / safari 限制 <input type="file" >

示例:https ://obsproject.com/是您安装在桌面上的流式传输软件,用于从摄像机或视频文件流式传输到 RTMP 端点......

但它是否可行(发送预先录制的.mov)并将其流式传输到服务器和该服务器以“记录”它以使其在流后可用......就像使用浏览器的webrtc api并发送将其传输到多点控制单元 (MCU) 并记录或转换为 HLS .m3u8 格式...

在谷歌中挖掘让我发现了这个 https://webrtc.github.io/samples/src/content/capture/video-pc/ 演示不起作用:(

••••• 我也发现了这个https://github.com/muaz-khan/FileBufferReaderfunction FileBufferReader() {...

但是记录呢(从用户浏览器到另一个对等点,但另一个对等点可能是一个服务器,它接收这个“流”并重新组装它并执行 .m3u8 HLS 格式)?

标签: htmlvideo-streamingwebrtcchunkschunked-encoding

解决方案


交付 4 GB 文件是有问题的 - 交付期间的任何网络故障都可能导致问题。

OBS 将视频 RTMP 流发送到许多服务以“直播”,例如 Twitch、YouTube 等(我为api.video工作,我们赞助 OBS,可以使用这种方式进行直播)。

这些服务为您将 RTMP 流转换为 HLS 并将流交付给您的客户。

如果您有 4 GB 的 .mov 文件 - 您也可以将其上传到服务以转换为 HLS 格式。但是 - 就像你说的,4Gb 可能有问题。我们的解决方法是使用 JavaSCript 中的 file.slice 将大视频拆分为可管理的块(在服务器上重新组装)。

我写了一篇关于如何做到这一点的博客文章: https ://api.video/blog/tutorials/uploading-large-files-with-javascript

和现场演示(使用 api.video 后端):https ://upload.a.video

道格


推荐阅读