gpt4 book ai didi

linux - 如何访问 mplayer 输出/知道 mplayer 视频何时停止播放?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:18:21 26 4
gpt4 key购买 nike

我正在运行一个 bash 脚本,该脚本将根据来自 Arduino 的输入(开/关)使用 mplayer 播放视频。

当电影结束时,我需要在 txt 文件中获取时间戳。第一个问题是在 mplayer 从属模式下是否有命令告诉我,所以我可以很容易地输出时间戳。

如果没有,这是我目前的策略:

我在带有 fifo 的从属模式下运行 mplayer,每当我想让它停止时,我都会在其中 echo "pause"

所以,我一直在这样做:echo "get_time_pos" 到我的 fifo,这将告诉 mplayer 在我的终端中显示电影中的当前位置(秒)。当我在我的终端中说时,它就在我运行脚本的同一个窗口中。

现在,我需要将这个值存储在一个变量中,以便能够与总长度进行比较,然后输出时间。

我无法将此输出放入我的 bash 脚本中的变量中。

最佳答案

我最近整理了一个可能会随着时间增长的小型 bash 库。目前,它具有您正在寻找的功能。我将解释如何获取您要查找的信息,然后将您指向我的图书馆,这可以简化任务。

要获得您要查找的信息,您甚至不需要调用 get_time_pos。您可以简单地将 mplayer(未在安静模式下运行)输出转储到一个文件并在该文件中搜索最后一个时间戳。这里的技巧是,由于某些控制文本显示方式的特殊字符,转储中列出的时间戳可能无法直观地搜索。您必须用新行替换其中一些特殊字符,以便您可以轻松地搜索它。然后你必须捕获最后两行,以防最后一行不是时间戳。

使用我的 bash 库:
现在,如果您想简化此过程,请查看 this little library I wrote .按照我的 GitHub 上的使用说明将其合并,然后在播放媒体文件时,使用 playMediaFile 函数播放。如果这样做,您将能够调用 getElapsedSecondsgetElapsedTimestamp 函数来检索当前播放位置或 mplayer 之后的播放位置已经停止。将它存储到 bash 中的变量中非常简单:

pos=$(getElapsedSeconds)

pos=$(getElapsedTimestamp)

该库还包含其他功能。 isFinishedPlaying 函数可能对您有用,也可能没有用。

关于linux - 如何访问 mplayer 输出/知道 mplayer 视频何时停止播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47753399/

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