gpt4 book ai didi

ffmpeg - 使用 ffmpeg ar Web 平台运行本地用户的直播

转载 作者:行者123 更新时间:2023-12-04 22:59:00 24 4
gpt4 key购买 nike

我正在使用以下命令来流式传输我的实时桌面屏幕。

ffmpeg -f x11grab -r 1 -loglevel panic -s `xdpyinfo | grep 'dimensions:'|awk '{print $2}'` -i $DISPLAY -qscale 0 -f mpegts udp://192.168.3.151:1111

udp://192.168.3.151:1111 - 这是我的流媒体 URL

我可以在假释媒体播放器中看到直播(在 Linux 平台中),但我在跨网络中看不到这个(即来自 Windows PC - 在同一网络中)

是否有任何网络平台,所以我可以使用唯一的流媒体 URL 从任何地方(Windows 或 linux)查看我的流媒体,还是我需要更改我的流媒体命令或方法?

任何帮助深表感谢

最佳答案

我假设 192.168.3.151 是您的 linux 机器 IP,并且使用提到的 URL (udp://192.168.200.151:1111),您正在本地机器的端口 1111 上进行流式传输,因此预计只能在其上看到此流。

首先,您可以使用多播 UDP 范围 (See more information here) 将您的桌面屏幕流式传输到本地 LAN,如下所示:

ffmpeg -f x11grab -r 1 -loglevel panic -s `xdpyinfo | grep 'dimensions:'|awk '{print $2}'` -i $DISPLAY -qscale 0 -f mpegts udp://239.0.0.1:1111

因此,您可以在本地 LAN 中的其他机器上看到流。

如果您想在网络上流式传输您的桌面屏幕,您必须使用适当的编解码器,如 h264 (MP4) 并使用 media server喜欢 Nginx , 哇扎或类似的,并使用以下命令对其进行流式传输:
ffmpeg -f x11grab -s `xdpyinfo | grep 'dimensions:'|awk '{print $2}'` -framerate 25 -i $DISPLAY -c:v h264 -preset ultrafast -tune zerolatency -qscale 0 -f mpegts rtmp://<Media_Server_Address>:1935/live/<stream_name>

媒体服务器地址是您的服务器域或 IP 地址。这可以是您的 Web 服务器或安装了媒体服务器的其他服务器。

直播是一个处理实时流的应用程序。它可以有另一个名称,但默认情况下它的默认名称是 live。

流名 是流的任意名称。

在这种情况下,您通过 发送流。即时通讯 在媒体服务器上,然后其他人可以通过例如 看到它HLS 通过 VLC 播放器等播放器应用程序或通过具有此 URL 的网页中的 HTML5 视频标签的协议(protocol):
http://<Media_Server_Address>:1935/live/<stream_name>/playlist.m3u8

更新:

这是使用 Nginx 作为媒体服务器的示例:

Nginx 配置:
worker_processes  1;

events {
worker_connections 1024;
}

rtmp {
server {
listen 1935;

chunk_size 4000;

application live {
live on;
allow publish all;
allow play all;
}

}
}

FFmpeg 命令必须在本地 PC 上执行才能将本地 PC 的桌面流式传输到媒体服务器:
ffmpeg -f x11grab -s `xdpyinfo | grep 'dimensions:'|awk '{print $2}'` -framerate 25 -i $DISPLAY -c:v h264 -preset ultrafast -qscale 0 -f flv rtmp://<Media_Server_Address>:1935/live/localdesktop

现在,用户可以通过此 URL 在其他 PC 上使用 VLC 播放流:
rtmp://<Media_Server_Address>/live/localdesktop

如果需要 HLS 播放,只需将 hls 配置添加到 Nginx 配置文件中即可。然后用户可以使用 VLC 使用这个 URL 来播放 hls 流:
http://<Media_Server_Address>:1935/live/localdesktop/playlist.m3u8

需要注意的是,在这种情况下,必须使用相同的 ffmpeg 命令。

关于ffmpeg - 使用 ffmpeg ar Web 平台运行本地用户的直播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56406329/

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