0

我正在尝试使用 DashCast 捕获桌面并将其实时流式传输到 Apache 服务器中。当我按需执行时,它可以正确捕获和播放,但是当我实时执行然后玩它时,MP4Client它只显示黑屏,在捕获它时甚至没有收到任何错误消息。我正在使用的命令是:

DashCast -vf x11grab -vres 1280x720 -v :0.0 -npts -live -out /public_html/

然后我玩:

MP4Client http://localhost/vitor/dashcast.mpd

这导致以下输出:

MP4Client http://localhost/vitor/dashcast/dashcast.mpd
Using config file in /home/vitor directory
System info: 11948 MB RAM - 8 cores
Modules Found : 36 
Loading GPAC Terminal
[Thread MediaManager] Couldn't set priority(2) for thread ID 0x9b55a700
[Thread MediaManager] Couldn't set priority(2) for thread ID 0x9b55a700
Terminal Loaded in 35 ms
Opening URL localhost/vitor/dashcast/dashcast.mpd
[DASH] Slight drift in UTC clock at time 2015-08-05T12:38:45Z: diff AST - now 3563501 ms
Service Connected

那么我做错了什么?客户端显然正确连接到服务器,打开播放器,但屏幕上没有显示任何内容。我正在使用带有 GPAC 版本 0.5.0 的 Ubuntu 14.04。

4

1 回答 1

1
[DASH] Slight drift in UTC clock at time 2015-08-05T12:38:45Z: diff AST - now 3563501 ms

此消息表明在可用性开始时间属性中 MPD 中指示的 UTC 时间与 MP4Client 用于计算要获取的段的当前时间之间存在差异(考虑到实际差异,这里的“轻微”是​​一个错误的词!)。这仅与实时相关,因为对于按需,所有片段都假定始终可用。

MP4Client 使用不同的策略来确定“当前”时间。例如,如果客户端使用不同的 NTP 服务器,则客户端上的系统时间可能与服务器上的系统时间不同。系统时间不可靠。所以 MP4Client 尝试从服务器获取时间。它首先尝试使用服务器可能设置的特定 HTTP“Server-UTC”标头。例如,请参阅此代码。如果未设置此标头,它会查看 HTTP“日期”标头,即使它不是很精确。在您的情况下,您的 HTTP 服务器的时间配置可能与系统时间不匹配。您可以告诉 MP4Client 停止使用服务器信息并依赖其系统时间。由于您在同一台机器上使用客户端和服务器,因此应该可以。. 为此,请使用:

MP4Client http://localhost/file.mpd -opt DASH:UseServerUTC=no

或者,您可以尝试在本地播放 MPD,而无需通过 Web 服务器。

MP4Client file.mpd

如果这不起作用,请在 GPAC 的 GitHub 上打开一个问题,提供尽可能多的信息,特别是MP4Box -version.

于 2015-09-08T08:35:22.303 回答