从 wsgi 应用返回 mp4

Returning mp4 from wsgi app

我想从 wsgi 应用程序 return mp4。我没有使用 Django 或其他框架。 mp4parseParams 函数 return 编辑:

def parseParams(params):
    // cmd invokes ffmpeg, which writes output to pipe:1 (stdout)
    return [ call(cmd) ]

form = "<html>...</html>"

def application(environ, start_response):
    x = handle_post(environ)
    if (isinstance(x, dict)):
        start_response('200 OK', [('Content-Type','video/mp4')])
        return parseParams(x)
    else:
        start_response('200 OK', [('Content-Type','text/html')])
        return [form]

日志中充满了二进制数据,大概是 ffmpeg 的输出,没有任何内容 return 发送到浏览器,尽管我可以看到 mime 类型 header 是正确设置。我错过了什么?

当然,我刚 post 一个问题就开始工作了。我找到了 this post 并修改了 parseParams 以这样结束:

 proc = Popen(cmd, stdout=PIPE)
 out, err = proc.communicate()
 return [ out ]

完美运行!