gpt4 book ai didi

windows - 将 FFMPEG 的输出重定向到 Windows 上的多个命名管道

转载 作者:行者123 更新时间:2023-12-03 11:04:47 59 4
gpt4 key购买 nike

我正在尝试将视频和音频数据流式传输到 两个独立的命名管道 在 Windows 上。

ffmpeg.exe -f dshow -i video="My camera name":audio="My microphone name" -map 0:1 -ac 1 -f f32le \\.\pipe\audioStream -map 0:0 -f mjpeg \\.\pipe\videoStream

问题是 FFMPEG 似乎不理解输出 \\.\pipe\audioStream\\.\pipe\videoStream是管道并将它们视为文件。
  • 如果 FFMPEG 启动时已经创建了管道,它想要覆盖它们并失败。
  • 否则,它会提示路径不存在并失败。

  • 据我了解,指定 pipe:协议(protocol)应该可以解决问题,但我无法弄清楚如何正确使用它,即使使用单个管道也是如此。我努力了:
  • pipe:pipeName
  • pipe:pipe\pipeName
  • pipe:\\.\pipe\pipeName
  • pipe://pipeName
  • pipe://pipe\pipeName
  • pipe://\\.\pipe\pipeName

  • 我总是得到相同的结果:输出被写入控制台而不是管道。如果 FFMPEG 启动时管道已经存在,则没有任何东西连接到管道。

    是否可以在 Windows 上将 FFMPEG 与命名管道一起使用?如果是,那么正确的方法是什么?

    最佳答案

    根据我的经验,使用 FFmpeg 管道到多个输出从未奏效。建立管道涉及阻塞类型的数据传输。馈送器 FFmpeg 期望馈送的程序在发送其他数据 block 之前“吃掉”数据 block 。如果有两个馈送,FFmpeg 不知道哪个馈送程序具有优先级,并且当有疑问时,FFmpeg 什么也不做,因此 FFmpeg 永远挂起,等待两个管道另一侧的某些事情发生。

    关于windows - 将 FFMPEG 的输出重定向到 Windows 上的多个命名管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37548606/

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