正如本文所述邮政对于 Windows,我已经知道如何将桌面流式传输到 ffplay 或 vlc 等播放器。要在任何浏览器中访问流式传输,我希望能够通过 HTTP(Chrome、Edge、Firefox、Brave、Opera 等)流式传输我的桌面或单个窗口。这种功能的目标是能够选择一个没有 ffplay、vlc 或互联网的新系统来访问要流式传输的应用程序,但可以使用浏览器来查看流式传输的内容。我遇到过这种情况邮政,并尝试使用这样的ffmpeg
命令:
ffmpeg -f gdigrab -framerate 30 -re -i desktop -listen 1 -f mp4 -movflags frag_keyframe+empty_moov http://localhost:8080
最终,令人遗憾的是,没有运气。 我目前正在使用 Windows 10,但对于 Linux 和未来的 MacOS 来说,采用与操作系统无关的方法将是理想的。
2023 年 4 月 6 日更新:
找到了一种流式传输主桌面的方法,但在 Windows 10 上非常滞后。
ffmpeg -video_size 1024x768 -f gdigrab -re -i desktop -vcodec libx264 -tune zerolatency -preset ultrafast -listen 1 -f mp4 -movflags frag_keyframe+empty_moov -pix_fmt yuv420p http://localhost:8080
在 Chrome 上测试过,但流始终无法打开,只能下载约 4MB 的download
文件。Firefox 似乎可以渲染它,但它很滞后/很慢。Brave 浏览器要么也会尝试下载文件,download
要么会给出错误Error writing trailer of http://localhost:8080: Error number -10053 occurred
。以下是使用的 ffmpeg 和浏览器的版本。
ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.1.1 (GCC) 20190807
铬合金:
Version 111.0.5563.147 (Official Build) (64-bit)
Firefox 版本:
111.0.1 (64-bit)
勇敢的:
Version 1.50.114 Chromium: 112.0.5615.49 (Official Build) (64-bit)
仍在探索选择。
答案1
您可以尝试将标头放置-headers "Content-Type: video/mp4"
在命令的参数上,或者查看浏览器加载的视频请求的标头,并将其放在 ffmpeg -headers 选项上