微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有多个fifo的Linux tee命令 fifo块tee

我正在尝试开发一个程序来播放和logging一些rtmpstream媒体。 该程序是在Qt中开发的。

我正在使用rtmpdump和mplayer。 因为两者都在独立进程中运行,我正在使用fifo将来自rtmpdump的stream传递给mplayer。 我需要单独的过程,因为mplayer需要由用户来控制。 所以mplayer以奴隶模式运行。

这是播放stream正常工作。

现在我想loggingstream到另一个文件。 我知道我可以使用mplayer来做到这一点。 但使用一个单一的MPlayer是不可能的,因为它只支持播放或录音。 所以想到使用tee命令来分割stream并使用2个mplayer进程,一个用于logging,一个用于播放。

FIFO – 在C ++中恢复通信

如何以编程方式configurationWindows中的串行FIFO接收和传输缓冲区?

无法理解select()系统调用

在Linux中实时调度

在awk的BASH shell中使用bc作为守护进程

在这条小溪就这样stream了

rtmpdump | tee fifo_for_playing fifo_for recording

一个mplayer正在阅读fifo_for_playing,另一个阅读fifo_for_recording。

现在的问题是,因为应该logging的mplayer只会在用户按下loggingbutton时才会启动,所以fifo_for_recording将会阻止发球,因为它没有打开。 所以玩也不会开始。

有人可以提出一个解决scheme或更好的方法来实现这一目标? 我正在试图做的是与非阻挡先锋。 所以即使一个fifo没有打开阅读,也不会阻塞发球台。

FIFO问题与并发进程

通过FIFOredirect标准input

FIFO实现

如何使用FIFO等待某人写入和阅读?

我如何正确地写入到Python的FIFO?

Fifos没有缓冲区(如果他们有一个非常小)。 如果你写信给它,而且没有人正在阅读你的内容,就像你发现的那样。

你可以编写一个小程序来读取fifo并将其缓存在内存或磁盘中。 也许dd程序可以做到这一点?

或者你可以在循环中用-stop选项调用rtmpdump,并将其输出写入文件。 然后在没有fifo的情况下以旧式方式处理这些文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐