[Python] ffmpeg-python command, using subprocess.Popen, raises FileNotFoundError: [WinError 2]...

Discussão em 'Python' iniciado por Stack, Março 16, 2025.

  1. Stack

    Stack Membro Participativo

    Specifically, when I try to run my code, I get this output and error message:

    ['Error', 'Stream', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '_ffmpeg', '_filters', '_probe', '_run', '_utils', '_view', 'colorchannelmixer', 'compile', 'concat', 'crop', 'dag', 'drawbox', 'drawtext', 'filter', 'filter_', 'filter_multi_output', 'get_args', 'hflip', 'hue', 'input', 'merge_outputs', 'nodes', 'output', 'overlay', 'overwrite_output', 'probe', 'run', 'run_async', 'setpts', 'trim', 'unicode_literals', 'vflip', 'view', 'zoompan']
    .env
    app.py
    common_components.py
    docker-compose.yml
    dockerfile
    image_rag.py
    rag_kernel.py
    requirements.txt
    video.mp4
    whisper_test.py

    Traceback (most recent call last):
    File "...\IdeaProjects\RAG Homestyle\SRC\RAG Pipeline\Rag-Chat-API\API_V7\whisper_test.py", line 20, in <module>
    wav_file = convert_mp4_to_wav(mp4_file)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "..\IdeaProjects\RAG Homestyle\SRC\RAG Pipeline\Rag-Chat-API\API_V7\whisper_test.py", line 9, in convert_mp4_to_wav
    ffmpeg.input(input_file).output(output_file, format="wav", acodec="pcm_s16le", ac=1, ar="16000").run(overwrite_output=True)
    File "...\IdeaProjects\RAG Homestyle\.venv\Lib\site-packages\ffmpeg\_run.py", line 313, in run
    process = run_async(
    ^^^^^^^^^^
    File "...\IdeaProjects\RAG Homestyle\.venv\Lib\site-packages\ffmpeg\_run.py", line 284, in run_async
    return subprocess.Popen(
    ^^^^^^^^^^^^^^^^^
    File "...\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
    File "...\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1538, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    FileNotFoundError: [WinError 2] The system cannot find the file specified


    The last line says the file doesn't exist in the specified path, but I made sure it is in the same folder as the code I am running it in. This is supported by the output above the error message where I have it print the the paths of all files in the current directory. So why am I getting this error?

    This is the code I tried to run:

    import whisper
    import ffmpeg
    print(dir(ffmpeg)) # This should list 'input', 'output', etc.

    # List all files in the current directory
    for file in os.listdir('.'):
    if os.path.isfile(file): # Ensure it's a file, not a directory
    print(file)

    # Convert MP4 to WAV
    def convert_mp4_to_wav(input_file, output_file="audio.wav"):
    ffmpeg.input(input_file).output(output_file, format="wav", acodec="pcm_s16le", ac=1, ar="16000").run(overwrite_output=True)
    return output_file

    # Transcribe using Whisper
    def transcribe_audio(file_path, model_size="base"):
    model = whisper.load_model(model_size) # Choose from "tiny", "base", "small", "medium", "large"
    result = model.transcribe(file_path)
    return result["text"]

    # Main Execution
    mp4_file = "./video.mp4"
    wav_file = convert_mp4_to_wav(mp4_file)
    transcription = transcribe_audio(wav_file)

    print("Transcription:\n", transcription)


    To be clear, the video.mp4 IS in the directory of the code, so I don't know why it thinks it isn't. Is this perhaps some property of IntelliJ? or something else?

    I appreciate any ideas or answers you can give! Thank you.

    PS the whisper library I am using is openai-whisper and the ffmpeg is ffmpeg-python library.

    Continue reading...

Compartilhe esta Página