两台 GNU/Linux 计算机正在使用 mplayer(或 vlc 或其他)播放同一个视频。
如何同步它们之间的暂停/搜索/FFw。例如,当我在主计算机上按下暂停时,另一台计算机也会在同一帧上暂停。
有想法吗?(既期待针对特定玩家的方法,也期待通用的方法)
答案1
- 掌握 mplayer:
mplayer -vo yuv4mpeg:file=/tmp/master_pipe video.mkv
- 多播器:
/tmp/master_pipe | tee /tmp/pipe1 | nc -lp 1234
- 首次显示:
mplayer /tmp/pipe1
- 第二显示器
nc 1.2.3.4 1234 | mplayer -noconsolecontrols /dev/stdin
(类似这样)
搜索、OSD ...... 由主 mplayer 控制台控制。
最大的缺点:即使是 100 兆网络对此来说也太低了。
第二个缺点:A/V 不同步。
如何改进这个方案?
答案2
使用 VLC 进行流式传输:
服务器:
vlc video.avi --sout '#duplicate{dst=display,dst=standard{access=http,mux=ts,dst=127.0.0.1:1290}}'
客户端(变体 1):
cvlc http://127.0.0.1:1290
客户端(变体 2):
curl http://127.0.0.1:1290 | mplayer -
您可以查找/暂停/恢复它(尽管不是干净的)。
答案3
我们尝试使用 Synergy 选项在三台运行 Windows XP 的独立 PC 上同步三路视频流。虽然它能正常工作,但对于我们的目的(展示)来说不够准确。
每次文件循环播放时,不同的文件都会滞后最多一秒。如果它们之间的差异是一致的,我们可以在时间线上进行调整,但事实并非如此。
现在我们使用联网固态播放器——坚如磐石。
答案4
我知道这是一个非常老的问题,但我最近用 mplayer 解决了它,并在超级用户上回答了我自己的问题:与 mplayer 的主从