首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux Shell: VLC编程

Linux Shell: VLC编程
EN

Stack Overflow用户
提问于 2012-01-20 23:07:34
回答 3查看 8.3K关注 0票数 13

有没有一种方法可以在不等待VLC关闭的情况下使用Linux shell脚本操作VLC。

代码语言:javascript
复制
cvlc test.mp3
echo "Now playing!"
sleep 200
cvlc://pause:60

这段代码会一直运行VLC,直到文件完成,然后再暂停文件显然为时已晚。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-29 02:29:59

需要使用VLC的dbus接口。

现在,您可以使用VLC的mpris接口。它是大多数玩家的标准,比如克莱门汀,女妖精,songbird,spotify等等。

因此,假设您想暂停当前正在播放的歌曲。

代码语言:javascript
复制
dbus-send --print-reply --session --dest=org.mpris.vlc /Player org.freedesktop.MediaPlayer.Pause

播放歌曲的步骤:

代码语言:javascript
复制
dbus-send --print-reply --session --dest=org.mpris.vlc /Player org.freedesktop.MediaPlayer.Play

我通常使用qdbusviewer来了解可用的dbus接口。

票数 18
EN

Stack Overflow用户

发布于 2015-10-02 16:36:29

Dbus是一种方法,但并不是所有系统上都存在dbus。更常见的方法是使用rc接口:

cvlc -I rc --rc-host localhost:11337 -d

然后,可以使用netcat将命令通过管道传输到tcp套接字。例如:

代码语言:javascript
复制
vlc -I rc --rc-host localhost:11337 test.mp3 -d &
echo "Now playing!"
sleep 200
echo pause | netcat localhost 11337

编辑:

在测试了一些其他接口后,我发现oldrc接口接受UNIX域套接字,因此下面的方法将会很好地工作,而不需要摆弄防火墙,也不需要担心网络上的任何其他人会摆弄你的vlc实例。

代码语言:javascript
复制
vlc -I oldrc --rc-unix /var/run/vlc.sock -d
echo "Now Playing!"
sleep 200
echo "pause" | netcat -U /var/run/vlc.sock
票数 3
EN

Stack Overflow用户

发布于 2012-01-29 02:13:03

看起来您可以从标准输入或命名管道进行重定向。对于更复杂的事情,你可以使用libvlc。

http://wiki.videolan.org/Uncommon_uses

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8943464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档