debian 5 和 6 之间的 FIFO/Pipe 变化

发布于 2024-11-28 12:03:25 字数 517 浏览 4 评论 0原文

我们目前正在构建一系列 Linux 工具来为视频广播目的进行一些实时编码。为了实现这一点,我们用 C++ 创建了一个程序,它生成一些 ffmpeg 解码器进程(用于音频和视频),通过 fifo 将此输出传输到编码器(ffmpeg 和 mpeg2enc),然后将编码输出传输到我们的复用器它缓存几 MB 的数据,然后通过 ASI 输出卡输出混合文件。

在 debian 5 中,此设置可以完美运行,通常甚至不会产生高 CPU 负载。然而,在 debian 6 和 Ubuntu 10.04 上,复用器的内部缓冲区逐渐减少,直到达到零,之后开始出现频繁的输出中断。

使用 Nice 和 ionice 似乎并不能解决这个问题。我还尝试了各种自定义内核编译选项(增加频率、抢占等),但这似乎也不起作用。

尽管 ffmpeg 或 mpeg2enc 可能存在严重退化,但我猜测问题与新内核/发行版处理 FIFO 的方式有关。

有谁知道什么可能导致这个问题?或者 Debian 或其内核配置(版本 5 和 6 之间)和 Ubuntu 最近的哪些变化可能导致这种不良行为?

We're currently building a chain of linux tools to do some realtime encoding for video broadcast purposes. In order to archieve this, we created a program in C++ that spawns some ffmpeg decoder processes (for both audio and video), pipe this output to the encoders (ffmpeg & mpeg2enc) through fifo's, and then pipe the encoded output to our muxer which caches a few MB of data and then outputs the muxed file through an ASI output card.

In debian 5, this setup works flawlessly, and generally doesn't even create a high CPU load. On debian 6 and Ubuntu 10.04 however, the internal buffer of the muxer gradually decreases until it hits zero, after which frequent output hickups start to occur.

Using nice and ionice doesn't seem to fix this issue. I've also tried various custom kernel compile options (increased frequency, preemptation, etc) but this also doesn't seem to work.

Altough it might be possible that there has been serious regression in either ffmpeg or mpeg2enc, I'm guessing that the problem has to do with the way the new kernel/distro handles FIFO's.

Does anybody know what could be causing this problem? Or what have been recent changes in both Debian or it's kernel configuration (between version 5 and 6) and Ubuntu that could possibly caused this undesired behaviour?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文