是否有可能让nginx流下载当前正在写入的文件?

时间:2011-07-31 15:22:39

标签: streaming nginx ffmpeg real-time transcoding

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

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

谢谢

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我有一个非常类似的问题。我不知道如何开始流媒体,而ffmpeg仍在转码文件,但这是我的修复:

我有一个PHP脚本,它使系统调用(虽然你可以用几乎任何语言编写)。该脚本有ffmpeg写入临时文件。在调用ffmpeg之前,它检查了是否存在临时文件以消除并发问题。如果是这样,它一直等到真实文件存在。

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