首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mplayer和管道流

Mplayer和管道流
EN

Stack Overflow用户
提问于 2016-11-16 16:53:14
回答 1查看 2.4K关注 0票数 0

我想使用mplayer通过一个指定的管道来播放文件流。

这里中,我看到MPlayer可以从stdin (没有命名管道)读取。

命名管道仍然可以以这种方式在bash脚本中使用:

代码语言:javascript
复制
mkfifo pipe
cat pipe | mplayer -cache 1024 -cache-min 10 -really-quiet - &
cat test.wav > pipe

这方面的问题是,在mplayer接收到EOF之后,它就会退出,并且我不能传递多个文件,而我希望mplayer继续通过管道播放文件。这个问题在某种程度上类似于,它启发了下面的脚本,以便保持管道的打开:

代码语言:javascript
复制
mkfifo pipe
cat pipe | mplayer -cache 1024 -cache-min 10 -really-quiet - &
exec 3>pipe
cat test1.wav >&3
cat test2.wav >&3
..
exec 3>&- # close the pipe

管道确实是打开的;然而,现在尽管mplayer缓存被填充,除非我关闭管道,否则我将不会得到回放,在这种情况下,它只播放第一个文件。我试着在文件后发送EOF信号:

代码语言:javascript
复制
mkfifo pipe
cat pipe | mplayer -cache 1024 -cache-min 10 -really-quiet - &
exec 3>pipe
cat test1.wav >&3
echo >&3
..
exec 3>&- # close the pipe

但还是没有运气。

对于如何使用mplayer作为来自指定管道的流播放器,有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2016-11-16 17:07:19

你查过这个了吗?在您的示例中,您应该封装所有cat命令:

代码语言:javascript
复制
mkfifo pipe
cat pipe | mplayer -cache 1024 -cache-min 10 -really-quiet - &
exec 3>pipe
(cat test1.wav test2.wav ) >&3
3>&- # close the pipe

这样,当命令遇到结束括号时,也会发送EOF.

老实说,我不确定这就是答案,但太长了,不能发表评论……:)

如果这样可以的话,主要的缺点是内存的使用.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40637808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档