我正在尝试使用 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 上提交错误报告并附上适当的日志。