在Web平台上使用ffmpeg运行本地用户的实时流媒体

在Web平台上使用ffmpeg运行本地用户的实时流媒体,ffmpeg,video-streaming,live-streaming,Ffmpeg,Video Streaming,Live Streaming,我正在使用下面的命令流式处理我的实时桌面屏幕 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平台)中看到实时流媒体,但在跨网络(即从windo

我正在使用下面的命令流式处理我的实时桌面屏幕

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-在同一网络中)中看不到这一点

是否有任何web平台可以让我在任何地方(windows或linux)使用唯一的流媒体URL查看流媒体,或者我是否需要更改流媒体命令或方法


非常感谢您提供的任何帮助

我假设192.168.3.151是您的linux机器IP,并且具有所提到的URL(udp://192.168.200.151:1111)您正在本地计算机的端口1111上进行流式处理,因此预期仅在端口1111上看到此流

首先,您可以使用多播UDP范围()将桌面屏幕流式传输到本地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
因此,您可以在本地局域网的其他机器上看到流

如果您想在web上传输您的桌面屏幕,您必须使用适当的编解码器,如h264(MP4),并使用类似的NginxWowza或类似的编解码器,然后使用以下命令在其上传输:

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>
必须在本地PC上执行FFmpeg命令,才能将本地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
ffmpeg-f x11grab-s`xdpyinfo | grep'维度:''awk'{print$2}`-帧速率25-i$DISPLAY-c:v h264-预设超快-qscale 0-f flv rtmp://:1935/live/localdesktop
现在,用户可以使用以下URL在其他PC上使用VLC播放流:

http://<Media_Server_Address>:1935/live/<stream_name>/playlist.m3u8
rtmp://<Media_Server_Address>/live/localdesktop
rtmp:///live/localdesktop
如果需要HLS播放,则必须将HLS配置添加到Nginx配置文件中。然后用户可以使用VLC使用此URL使用play hls stream:

http://<Media_Server_Address>:1935/live/localdesktop/playlist.m3u8
http://:1935/live/localdesktop/playlist.m3u8

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

我在媒体服务器中安装了Nginx服务器,也安装了RTMP模块,但当我尝试使用命令(由您建议)从本地服务器流式传输时,我遇到了一个错误“-tune”所以我已经从命令中删除了它,并尝试使用我的媒体服务器IP进行流式传输。但是,流媒体仍然不起作用。因此,我尝试了下面的命令“ffmpeg-fx11Grab-r1-loglevelpanic-s
xdpyinfo | grep”dimensions:“| awk'{print$2}”
-I$DISPLAY-qscale 0-f mpegts rtmp://:1935/hls/stream.m3u8”现在,流媒体正在工作,但视频没有加载到播放器中。有什么想法吗?让我看看你的nginx.conf我正在共享文档文件。你在流媒体和播放方面有错误。您可以使用我添加的示例。
http://<Media_Server_Address>:1935/live/localdesktop/playlist.m3u8