【问题标题】: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
【解决方案2】:
我有一个非常相似的问题。当 ffmpeg 仍在对文件进行转码时,我不知道如何开始流式传输,但这是我的解决方法:
我有一个进行系统调用的 php 脚本(尽管您几乎可以用任何语言编写它)。该脚本已将 ffmpeg 写入临时文件。在调用 ffmpeg 之前,它会检查临时文件是否存在以消除并发问题。如果是这样,它会等到真正的文件存在。
文件转换完成后,它将临时文件重命名为真实文件,并将http请求重定向到转码文件。