使用 FFMPEG 通过 http 传输桌面、屏幕和应用程序

使用 FFMPEG 通过 http 传输桌面、屏幕和应用程序

正如本文所述邮政对于 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 选项上

相关内容