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



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

电影结束时,我需要在TXT文件中获取时间戳。第一个问题是Mplayer从属模式是否有命令告诉我,因此我可以轻松输出时间戳。

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

我在从fifo中运行mplayer,只要我想停止,我就可以在其中 echo "pause"

所以,我一直在这样做:echo "get_time_pos"到我的FIFO,这会告诉Mplayer在我的终端中显示当前电影中的当前位置。当我在终端上说时,它在我运行脚本的同一窗口中。

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

我坚持将此输出置于bash脚本中的变量。

我最近整理了一个可能随时间增长的小型狂欢库。目前,它具有您要寻找的功能。我将说明如何获取您寻找的信息,然后将您指向我的库,这简化了任务。

要获取您寻求的信息,您甚至不需要致电get_time_pos。您可以简单地将MPLAYER(不在安静模式下运行)输出到文件中,然后搜索最后的时间戳。这里的诀窍是,由于某些特殊字符控制了文本的显示方式,因此转储中列出的时间戳可能不会直观。您必须用新行替换一些特殊字符,以便您可以轻松搜索它。然后,您必须抓住最后两行,以防最后一行不是时间戳。

使用我的bash库:
现在,如果您想简化此过程,请查看我写的这个小库。按照我的github上的使用说明进行整合,然后在播放媒体文件时,使用playMediaFile函数播放。如果这样做,您将能够调用getElapsedSecondsgetElapsedTimestamp功能以检索当前的播放位置或播放位置 mplayer停止后。将其存储到bash内部的变量将很简单:

pos=$(getElapsedSeconds)

pos=$(getElapsedTimestamp)

此库也包含其他功能。isFinishedPlaying功能可能对您可能不使用。

最新更新