有没有一种方法可以在不等待VLC关闭的情况下使用Linux shell脚本操作VLC。
cvlc test.mp3
echo "Now playing!"
sleep 200
cvlc://pause:60这段代码会一直运行VLC,直到文件完成,然后再暂停文件显然为时已晚。
发布于 2012-01-29 02:29:59
需要使用VLC的dbus接口。

现在,您可以使用VLC的mpris接口。它是大多数玩家的标准,比如克莱门汀,女妖精,songbird,spotify等等。
因此,假设您想暂停当前正在播放的歌曲。
dbus-send --print-reply --session --dest=org.mpris.vlc /Player org.freedesktop.MediaPlayer.Pause播放歌曲的步骤:
dbus-send --print-reply --session --dest=org.mpris.vlc /Player org.freedesktop.MediaPlayer.Play我通常使用qdbusviewer来了解可用的dbus接口。
发布于 2015-10-02 16:36:29
Dbus是一种方法,但并不是所有系统上都存在dbus。更常见的方法是使用rc接口:
cvlc -I rc --rc-host localhost:11337 -d
然后,可以使用netcat将命令通过管道传输到tcp套接字。例如:
vlc -I rc --rc-host localhost:11337 test.mp3 -d &
echo "Now playing!"
sleep 200
echo pause | netcat localhost 11337编辑:
在测试了一些其他接口后,我发现oldrc接口接受UNIX域套接字,因此下面的方法将会很好地工作,而不需要摆弄防火墙,也不需要担心网络上的任何其他人会摆弄你的vlc实例。
vlc -I oldrc --rc-unix /var/run/vlc.sock -d
echo "Now Playing!"
sleep 200
echo "pause" | netcat -U /var/run/vlc.sock发布于 2012-01-29 02:13:03
看起来您可以从标准输入或命名管道进行重定向。对于更复杂的事情,你可以使用libvlc。
http://wiki.videolan.org/Uncommon_uses
https://stackoverflow.com/questions/8943464
复制相似问题