Приложение Dokku не может найти файл ffmpeg для преобразования аудио

#python #docker #error-handling #ffmpeg #subprocess

Вопрос:

У меня есть приложение, работающее на Dokku droplet в DigitalOcean.

Он получает аудио в формате ogg от messenger и преобразует частоту дискретизации в герцах для ответа. Я установил с sudo apt-get install ffmpeg помощью своего сервера ubuntu на DigitalOcean, и он находится в /usr/bin/ffmpeg .

Приведенный ниже код принимает аудио и преобразует его частоту в 48000 Гц.

 import subprocess
import tempfile
import os


def convert_to_ogg(in_bytes):
   with tempfile.TemporaryFile() as temp_out_file:
    temp_in_file = None
    if in_bytes:
        temp_in_file = tempfile.NamedTemporaryFile(delete=False)
        temp_in_file.write(in_bytes)
        in_filename = temp_in_file.name
        temp_in_file.close()

    
    command = [
        r'/usr/bin/ffmpeg',  # path to ffmpeg
        '-i', in_filename,
        '-f', 'ogg',
        '-acodec', 'libopus',
        '-ar', '48000',
        '-'
    ]

    proc = subprocess.Popen(command, stdout=temp_out_file)
    proc.wait()

    if temp_in_file:
        os.remove(in_filename)
 

Однако, подпроцесс.Popen вызывает следующую ошибку:

 FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/ffmpeg'
 

Весь код находится на git и был запущен в приложении Dokku.

Мои вопросы таковы: Почему подпроцесс не может найти FFMPEG? Должен ли я загрузить пакет ffmpeg для работы с Dokku/Docker?