gpt4 book ai didi

FFMPEG:Transmux mpegts to mp4 给出错误:muxer 不支持不可搜索的输出

转载 作者:行者123 更新时间:2023-12-03 13:27:07 25 4
gpt4 key购买 nike

当将 mpegts 管道传输到 ffmpeg 时,它应该将其转换为 mp4 并将管道传输到 stdout,ffmpeg 说:“muxer 不支持不可搜索的输出”。

经过大量研究后,我得出的结论是,由于搜索,mp4 对于进行这些即时转码来说是一个糟糕的选择。所以本质上:MP4 不能通过 ffmpeg 进行管道传输,这是有道理的。

但是我没有连续的 mpegts 流,我有 5 秒的 block 。
所以它真的就像:

  • 这是我的 1 mb *.ts 文件
  • 请从管道中读取它,直到您点击 EOF
  • 请把它转成mp4(如果你真的需要寻找,请使用缓冲区)
  • 请将完整的内部 mp4 缓冲区通过管道传输到标准输出

  • 我需要这些 mp4 block 作为 HTML5 MediaSource,碎片没问题,我使用 mp4box.js,它的工作原理很吸引人。

    问题:
  • FFMPEG 可以做这种内部缓冲吗?
  • 有没有更好的选择可以考虑?

  • 本质上:我可以(以某种方式)在不使用文件的情况下与 ffmpeg 交互吗?我当前的解决方案适用于文件和轮询新 block ,这很难看。

    如果您对我的 ffmpeg 命令感兴趣,请告诉我。

    最佳答案

    既然您提到了碎片,那么您可以使用 movflags 启用它。 .从每个关键帧开始的片段示例:

    ffmpeg -i segment.ts -c copy -movflags frag_keyframe+empty_moov -f mp4 -

    有一个空的 moov atom 意味着它不需要寻找,因此可以使用管道。

    关于FFMPEG:Transmux mpegts to mp4 给出错误:muxer 不支持不可搜索的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34123272/

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