3

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

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

谢谢

4

2 回答 2

0

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

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

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

于 2011-08-01T18:55:16.870 回答
0

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

于 2011-07-31T15:41:49.137 回答