Warum wird mein FastAPI-Prozess angehalten und wie kann ich das vermeiden?Python

Python-Programme
Guest
 Warum wird mein FastAPI-Prozess angehalten und wie kann ich das vermeiden?

Post by Guest »

Ich arbeite an einer Web-App mit FastAPI, die ffmpeg verwendet, um für den Benutzer Audio über Video zu legen. Ich stoße auf ein Problem, bei dem bei Verwendung von subprocess.run(cmd) der Prozess, der meine FastAPI-App ausführt, automatisch angehalten wird. Ich kann nicht herausfinden, wie ich die Fehlerprotokolle abrufen kann, um herauszufinden, warum das so ist, und ich habe online nichts gefunden, was darüber spricht.

Code: Select all

@app.get("/overlay-audio/")
async def get_video(audio_file: str, forged_name: Annotated[str, Query()] = "default"):
video_path = os.path.join(output_path, "sample.mp4")
audio_path = os.path.join(output_path, audio_file)
forged_path = os.path.join(output_path, forged_name + ".mp4")
print("Video path: " + video_path)
print("Audio path: " + audio_path)
print("Output path: " + forged_path)

# command to recreate
# ffmpeg -i input.mp4 -i input.wav -c:v copy -map 0:v:0 -map 1:a:0 -c:a aac -b:a 192k output.mp4

cmd = ["/opt/homebrew/bin/ffmpeg",
"-i", video_path,
"-i", audio_path,
"-c:v", "copy",
"-map", "0:v:0",
"-map", "1:a:0",
"-c:a", "aac",
"-b:a", "192k",
forged_path]

subprocess.run(cmd)

return {"forged_vid": f"forged_{forged_name}"}

if __name__ == "__main__":
uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)
Ich habe versucht, die Ausgabe nicht in das Terminal zu schreiben, da ich gelesen habe, dass dies ein Grund dafür sein könnte, dass es mit result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE), und ich habe auch versucht, es asynchron auszuführen, um ein Blockieren der Ereignisschleife mit
zu vermeiden

Code: Select all

result = await asyncio.create_subprocess_exec(
*cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
aber nichts funktioniert. Für jede Hilfe oder mögliche andere Vorgehensweise wären wir sehr dankbar. Terminalausgabe zur Aussetzung: [1] + 12526 suspendiert (tty-Ausgabe) „/Users//Tech Projects/project/tts/videnv/bin/python“

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post