Flask运行bash ffmpeg命令不返回也不执行

时间:2018-07-13 13:01:45

标签: python flask

我是Python和Flask的新手。

我正在尝试运行一个esay ffmpeg命令,该命令应该创建一个持续时间为{name}.mp4.meta的文件,所以我这样做了:

from flask import Flask
from flask import request
from flask import jsonify
from flask import make_response

import sys
import subprocess

app = Flask(__name__)

root_folder = "~/myfolder/"

@app.errorhandler(404)
def not_found(error):
    return make_response(jsonify({'error': 'Not found'}), 404)

@app.route('/jolly/1.0/meta/<path:video>')
def jolly_metadata(video):
    #video = request.form.get("video")
    cmd = 'ffprobe -i '+root_folder+video+' -show_entries format=duration -sexagesimal -v quiet -print_format json > '+root_folder+video+'.meta'
    dati = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, universal_newlines=True).communicate()
    return "ok"+dati[0]

这将不返回错误,不输出并且不创建文件。如果我在外壳程序(以及Flask Shell程序)中运行相同的命令,则一切正常。

我想从POST请求中获得video的名字,但首先我需要使它工作。

0 个答案:

没有答案