gpt4 book ai didi

bash - 使用 mkfifo 和传输流,这可能吗?

转载 作者:行者123 更新时间:2023-12-04 22:49:25 28 4
gpt4 key购买 nike

我想执行一个 bash 脚本来执行以下操作:

应用程序“ffmpeg”生成一个实时传输流 (.ts) 文件。我需要处理这个实时流(执行解复用等)。

现在我知道这必须通过 FIFO 来完成;但这是我的任务。

我需要重定向 ffmpeg 的输出以写入 fifo,然后另一个应用程序将处理该 fifo 内容。这会实时连续发生,直到我按下 Ctrl+C。

这可能吗?
我必须这样做是两个终端吗?

我基本上是在为上述操作(以及更多)编写一个 bash 脚本,所以我是否必须调用两个终端,或者可能是 fork?

好心提醒。

提前致谢!

最佳答案

FFmpeg 确实支持管道。
您需要做的所有事情如下:

  • 做一个先进先出
    mkfifo first.ts  
  • 用管道运行 ffmpeg
    ffmpeg -i sample.ts -c copy -muxrate 5000000 pipe:1 > first.ts
  • 运行与传输流文件一起使用的任何其他工具,例如OpenCaster 工具 tscbrmuxer 可以添加例如用于传输流文件的 NIT 表
    tscbrmuxer b:3008 NIT.ts b:5000000 first.ts > second.ts
  • 如果你想停止 2 个工具,只需杀死最后一个使用 pipe/fifo 的工具。万一你必须杀死 tscbrmuxer。
    kill tscbrmuxer

    或者
    如果您没有在后台运行最后一个工具,只需使用 [ctrl+c]
  • 将其终止即可。

    由于使用了这种方法(例如,作为 shell 脚本或 Python 脚本),所有使用 pipe/fifo 的工具都将因管道损坏而终止。

    我希望这能帮到您。

    关于bash - 使用 mkfifo 和传输流,这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46499804/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com