gpt4 book ai didi

ffmpeg - HTML5 Progressive Streaming -- 无后续范围请求

转载 作者:行者123 更新时间:2023-12-04 23:25:41 30 4
gpt4 key购买 nike

我正在开发一个实时录制视频的嵌入式设备。我想使用我们自己的自定义服务器将其流式传输到 HTML5 视频元素。我几乎可以正常工作,需要一些帮助。

据我所知,我已经让 libav/ffmpeg 做好了他们的工作。我在文件开头使用 moov atom 在 RAM 中编码了一个 mp4。我已将此文件写入磁盘,它可以在任何地方播放。

我认为,问题在于我如何响应 HTTP 范围请求。当我尝试进行直播时,我从浏览器/播放器(目前尝试使用 Chrome、Firefox 和 VLC)收到了 bytes:0- 的初始范围请求。 .我回复了一些初始字节。浏览器/播放器实际上玩得很好,但再也不会问了。所以直播不起作用,只是前 3 秒或其他什么。

我查看了部分内容的 RFC 规范,我的理解是我正在做我应该做的事情......显然我不是。以下是使用 Chrome 作为请求者的请求/响应示例:

get /live.mp4 HTTP/1.1
host: localhost:1235
connection: keep-alive
accept-encoding: identity;q=1, *;q=0
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36
accept: */*
dnt: 1
accept-language: en-GB,en-US;q=0.9,en;q=0.8
range: bytes=0-

HTTP/1.1 206 Partial Content
Accept-Ranges: bytes
Content-Type: video/mp4
Content-Length: 182400
Content-Range: bytes 0-182399/*

同样,对于该请求/响应对,Chrome 播放前 182400 个字节,但从不发出第二个请求。我认为在 Content-Range 中有 '*'会让这件事发生...

最佳答案

渐进式下载不能那样工作。它的浏览器假定文件永远不会改变。要播放实时流,您需要使用分段 MP4 和媒体源扩展。

关于ffmpeg - HTML5 Progressive Streaming -- 无后续范围请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48853113/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com