MPlayer带管道的无限循环

时间:2019-11-29 09:25:01

标签: bash pipe fifo mplayer mkfifo

我想使用mplayer在无限循环中播放视频,并且之间没有中断。所以我用mkfifo管试了一下。像这样的here

mkfifo pipe
(cat pipe | mplayer -cache 10000 -cache-min 0 -really-quiet - ) &
cat video.avi >> pipe       
until [ -e /tmp/stop_loop ]   #stop file
do 
  sleep 20                    #video.avi is 25sec long
  cat video.avi >> pipe     #fill pipe with the video again slightly before the first video ends
done

有人知道为什么这行不通吗? 不知何故,管道只能填充一次。 还是由于视频格式.avi?但我还是用.mp4尝试了一下,但仍然没有运气。

2 个答案:

答案 0 :(得分:0)

一个更好的主意可能是使用mplayer的slave模式;这样一来,您就可以控制它,同时又可以自由缓存/搜索并使用真实的视频文件进行任何操作。

throw模式是一种简单的文本协议,具有对标准输入的查询和答复。在http://www.mplayerhq.hu/DOCS/HTML/en/control.html和此处http://www.mplayerhq.hu/DOCS/tech/slave.txt

中对此进行了描述

但是您可以在互联网上搜索更多信息和示例。

答案 1 :(得分:0)

while true
do
(cat pipe | mplayer -cache 10000 -cache-min 0 -really-quiet - ) &
cat video.avi >> pipe
sleep 25
done

这可行(视频长25秒),尽管可能需要更多考虑(例如,获取视频长度,不确定缓存选项等)

编辑:这似乎更好:

mplayer -fs -loop 0 video.avi -really-quiet

这将永远循环文件。老实说,我不确定是否需要管道等。

edit2:我错过了您想要流畅播放的部分。在文件名之后放入循环即可解决此问题:

mplayer -fs video.avi -loop 0 -really-quiet