Vlc检查流状态



我正在使用VLC重播流,这方面的工作非常好。然而,几个小时后,我需要重新验证并重新请求流。我有一个脚本,只需要运行,这将处理重新身份验证和启动vlc。我遇到的问题是如何确定流是否不再工作。

使用时说:

pidof vlc

我得到进程VLC的pid。当检查top时,我可以看到VLC正在运行并消耗cpu。然而,当我试图播放流什么也没有发生。如果我再次运行脚本,流将重新启动,然后我可以再次观看它。因此,即使流已经停止,VLC也会继续运行,不告诉我流本身是否正在运行,或者只是VLC。

到目前为止,我发现的唯一一件事是,当流不运行时,CPU使用率似乎根据top达到峰值。

当流运行时,cpu使用率在1%左右,当它不运行时,它似乎超过40%。我已经观察过几次了,但我只能假设这可能是一种确保流正在运行的方法,但我对这种方法不是100%有信心。

有没有人知道我如何确认实际流是否正在运行,或者它只是VLC进程?

应该把功劳给@mundu

这里是我创建的一个脚本,用于检查vlc是否流式传输。

// vlc_verify1.sh
#!/bin/bash
VLC_CONF="$1"
VLC_COMMAND="$2"
VLC_PASS="videolan"
echo "" > nohup.out
nohup vlc --intf telnet --vlm-conf $VLC_CONF --telnet-password $VLC_PASS &
vlc_pid=$!
echo "vlc has a pid of $vlc_pid"
sleep 5
echo  "nc start"
nc localhost 4212 < $VLC_COMMAND
kill $vlc_pid
exit 0
// vlm-conf, you have to replace $url with the actual url
new channel1 broadcast enabled
setup channel1 input $url
control channel1 play
show
// command.txt
videolan
show

vlc_verify1.sh将输出@mundu提到的当前播放状态。我所做的是grep输出,看看它的状态是否为"播放"。

注意,我没有像setup channel1 output #std{access=udp,mux=ts,dst=239.192.174.105:1234}那样指定输出。

这样做的一个原因是有时VLC会使用100%的CPU时间。我不知道为什么会这样。但如果我摆脱了它,我就不会遇到类似的问题了。这样做的缺点是会有一个播放流媒体的弹出窗口。但我觉得这没什么大不了的

简单。使用VLM接口

vlc -I telnet——vlm.conf

调整您的命令行,以便在vll .conf中放置south,如下例所示:

new channel1 broadcast enabled
setup channel1 input http://host.mydomain/movie.mpeg
setup channel1 output #std{access=udp,mux=ts,dst=239.192.174.105:1234}
control channel1 play

然后您可以登录到telnet接口并键入show查看当前广播及其状态。

> show
show
media : ( 1 broadcast - 0 vod )
channel1
        type : broadcast
        enabled : yes
        loop : yes
        inputs
            1 : http://host.mydomain/movie.mpeg
        output : #std{access=udp,mux=ts,dst=239.192.174.105:1234}
        options
        instances
            instance
                name : default
                state : playing
                position : 0.058974
                time : 6473336
                length : 109766611
                rate : 1.000000
                title : 0
                chapter : 0
                can-seek : 1
                playlistindex : 1

您可以在这里阅读更多内容https://wiki.videolan.org/Documentation:Streaming_HowTo/VLM/

PS:我会增加log -v(vv),也许使用syslog来保存它并跟踪以后的任何问题。

相关内容

  • 没有找到相关文章

最新更新