我想使用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尝试了一下,但仍然没有运气。
答案 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