gpt4 book ai didi

html - FFMPEG 和 HTML Video 标签的以下技术是什么样的流媒体协议(protocol)?

转载 作者:行者123 更新时间:2023-12-04 23:01:14 26 4
gpt4 key购买 nike

许多人在网页上寻找实时流媒体解决方案。在做了这么多研究并花了这么多时间之后,我想分享以下知识。
运行以下命令行。

ffmpeg -y -rtsp_transport udp -i "my_rtsp_url" -vcodec libx264 -listen 1 -movflags isml+frag_keyframe -f mp4 http://ip_address:port_nr/test.mp4
将以下 HTML 视频标签添加到您的网页。
<video controls autoplay>
<source src="http://ip_address:port_nr/test.mp4" type ="video/mp4">
</video>
现在您可以在您的网页上开始直播了。
我的问题:
通常,对于视频播放,浏览器会加载整个视频文件 test.mp4首先然后才开始播放视频。
使用上述技术,FFMPEG 如何在没有完整视频文件的情况下继续将视频帧推送到 HTML 的视频源?
或者
HTML 的视频源不断从 FFMPEG 服务器拉帧?
有谁知道它是如何工作的?我不是在寻找流媒体解决方案。我想了解这两者是如何协同工作的?

最佳答案

In general for a video playback, the browser loads the whole video file test.mp4 first and then just starts playing the video.


这不是真的。浏览器将从服务器流式传输文件并播放它。它通常会预先缓冲很多。

With the above technique, how can FFMPEG keep pushing video frames to the video source of the HTML without having a complete video file first?


浏览器不知道也不关心源视频是实时的。它像流传输任何其他文件一样流式传输它。
最终,如果浏览器没有播放任何内容,它将对流施加背压,导致 TCP 窗口接近零,导致 FFmpeg 缓冲输出并将背压施加到实时源,最终导致一切失败,因为缓冲区将满的。如果你打算走这条路,你需要让浏览器播放它来保持流在客户端移动。

关于html - FFMPEG 和 HTML Video 标签的以下技术是什么样的流媒体协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72054648/

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