gpt4 book ai didi

linux - Vlc 检查流状态

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:14:52 24 4
gpt4 key购买 nike

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

当使用 say 时:

pidof vlc

我得到进程 VLC 的 pid。检查顶部时,我可以看到 VLC 正在运行并消耗 CPU。但是,当我尝试播放流时没有任何反应。如果我再次运行我的脚本,流将重新启动,然后我可以再次观看。因此,即使流已停止,VLC 仍会继续运行,但我无法判断流本身是否正在运行或只是 VLC。

到目前为止,我唯一发现的是,根据 top,当流不运行时,CPU 使用率似乎会飙升。

当流运行时,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 时间。我不知道为什么会这样。但如果我摆脱它,我就不会遇到类似的问题。这样做的缺点是会有一个播放流媒体的弹出窗口。但我认为这没什么大不了的。

关于linux - Vlc 检查流状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31719100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com