【问题标题】:Is it possible to have nginx stream a file for download that is currently being written to?是否可以让 nginx 流式传输当前正在写入的文件以供下载?
【发布时间】:2011-10-16 22:44:36
【问题描述】:

所以我有 2 个服务正在运行,一个实时转码文件 (ffmpeg),另一个通过 http (nginx) 公开它。我目前遇到的问题是,当ffmpeg开始转码,我通过nginx访问文件时,只下载了一部分写入的字节。

问题,是否可以配置 nginx 以流式传输当前正在写入的文件,直到写入完成,并且我现在在本地计算机上拥有完整的文件?

谢谢

【问题讨论】:

    标签: streaming nginx ffmpeg real-time transcoding


    【解决方案1】:

    我不相信 Nginx 本身可以做到这一点。您需要一个应用程序(php、perl、python 等)来监控转码进度并使用chunked transfer encoding 处理请求。本质上,它会保持对客户端的连接开放,并在可用时提供更多数据。

    【讨论】:

      【解决方案2】:

      我有一个非常相似的问题。当 ffmpeg 仍在对文件进行转码时,我不知道如何开始流式传输,但这是我的解决方法:

      我有一个进行系统调用的 php 脚本(尽管您几乎可以用任何语言编写它)。该脚本已将 ffmpeg 写入临时文件。在调用 ffmpeg 之前,它会检查临时文件是否存在以消除并发问题。如果是这样,它会等到真正的文件存在。

      文件转换完成后,它将临时文件重命名为真实文件,并将http请求重定向到转码文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多