在 mac os 中,局域网发生任何中断或轨道变化后,VLC udp 流都会停止

在 mac os 中,局域网发生任何中断或轨道变化后,VLC udp 流都会停止

我正在尝试使用 vlc 版本 2.2.5.1 Umbrella 在 mac os sierra 中的局域网中传输音频。

我可以流式传输我的播放列表 .xspf 文件。但它会在一首歌曲结束或曲目更改后停止,需要在客户端机器(接收器)中重新连接。我正在使用默认 vlc 向导来流式传输设置。

我尝试了 sout keep、sout all 和 gather。我还尝试通过选择 transcode audio 将所有歌曲编码为相同格式。但对我而言,这些都不起作用。也许我尝试的命令顺序错误。它在 Windows 7 操作系统上运行良好。请指导我,哪里出了问题?

以下是由 vlc wizard 生成的 MRL。

在此处输入图片描述

这是我在接收机上接收的日志,

     /Applications/VLC.app/Contents/MacOS/share/share/lua/meta/art
core debug: no art finder modules matched
core debug: art not found for aa
macosx debug: releasing old sleep blocker (34696)
macosx debug: prevented sleep through IOKit (34702)
ts debug: PMTCallBack called
ts debug: new PMT program number=1 version=2 pid_pcr=68
ts debug:   * es pid=68 type=3 dr->i_tag=0xa
ts debug: found language: 
ts debug:   * es pid=68 type=3 fcc=mpga
ts warning: discontinuity received 0x0 instead of 0x9 (pid=68)
core warning: clock gap, unexpected stream discontinuity
core warning: feeding synchro with a new reference point trying to recover from clock gap
core debug: discarded audio buffer
mpeg_audio debug: emulated startcode (no startcode on following frame)
core debug: discarded audio buffer
core debug: discarded audio buffer
core debug: discarded audio buffer
core debug: discarded audio buffer
core debug: discarded audio buffer
core debug: discarded audio buffer
core debug: discarded audio buffer
core debug: discarded audio buffer
core debug: discarded audio buffer
core warning: clock gap, unexpected stream discontinuity
core warning: feeding synchro with a new reference point trying to recover from clock gap
clock error: Timestamp conversion failed (delay 1000000, buffering 0, bound 3000000)
core error: Could not convert timestamp 55337150977
core debug: discarded audio buffer
clock error: Timestamp conversion failed (delay 1000000, buffering 0, bound 3000000)
core error: Could not convert timestamp 55337177099
core debug: discarded audio buffer
clock error: Timestamp conversion failed (delay 1000000, buffering 0, bound 3000000)
core error: Could not convert timestamp 55337203222
core debug: discarded audio buffer
clock error: Timestamp conversion failed (delay 1000000, buffering 0, bound 3000000)
core error: Could not convert timestamp 55337229344
core debug: discarded audio buffer
clock error: Timestamp conversion failed (delay 1000000, buffering 0, bound 3000000)
core error: Could not convert timestamp 55337255466
core debug: discarded audio buffer

答案1

从你的日志来看

即: core warning: clock gap, unexpected stream discontinuity core warning: feeding synchro with a new reference point trying to recover from clock gap clock error: Timestamp conversion failed (delay 1000000, buffering 0, bound 3000000)

看起来您遇到了时间转换问题。我猜是日期格式问题或 VLC 中存在某种溢出(如果没有正确调试或查看值,很难判断)

错误似乎是(https://github.com/videolan/vlc/blob/694399e23000232708b2d514a6a265cfc023ddde/src/input/clock.c来自源代码):

/* 流不连续,我们尚未收到来自流控制设施 (dd-edited * 流?) 的警告。 */

有一个差距定义:

/* Maximum gap allowed between two CRs. */
#define CR_MAX_GAP (60 * CLOCK_FREQ)

时钟频率定义为:

/* All timestamp below or equal to this define are invalid/unset
 * XXX the numerical value is 0 because of historical reason and will change.*/
#define VLC_TS_INVALID INT64_C(0)
#define VLC_TS_0 INT64_C(1)

#define CLOCK_FREQ INT64_C(1000000)

VLC 票务系统上有两张类似的与此有关的票(没有任何解决方案):
第一张票
第二张票

我的建议是将 VLC 播放器升级到最新的 2.2.6 以查看此错误是否已修复。(https://www.macupdate.com/app/mac/5758/vlc-media-player)。

除此之外,请在 VLC trac.videolan.org 上提交错误报告并附上适当的日志。

相关内容