ffmpeg- python 'OSError [2] Нет такого файла или каталога' ошибка - PullRequest
0 голосов
/ 19 июня 2020

Недавно я хотел интегрировать ffmpeg- python с моим докеризованным приложением flask. Я установил ffmpeg через homebrew на свою ма c. Это работает, когда я делаю это вручную, но когда дело касается моего проекта. Я не могу запустить ffmpeg. Он выдает OSError[2]: No such file or directory Вот мой код в views.py :

@admin.route('/partners/upload_videos')
def partners_video_upload():

    # Uploading video using ffmpeg-python
    (ffmpeg
        .input('in.mp4')
        .output('output.mp4')
        .run()
        )


    return render_template('admin/partner/upload_videos.html')

видеофайл in.mp4 находится в том же каталоге, что и views.py * файл. Кажется, я не могу решить проблему. Я также пробовал с subprocess.call() и subprocess.run(). По-прежнему сохраняется та же ошибка.

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Образ Docker представляет собой изолированную автономную файловую систему. И запускается Linux. Вы не можете получить доступ к исполняемым файлам, установленным через Homebrew. Поэтому вам необходимо установить ffmepg внутри образа, например RUN apt-get install -y ffmpeg в Dockerfile, если это образ на основе Debian.

0 голосов
/ 22 июня 2020

Я нашел решение. По умолчанию, когда ffmpeg установлен в контейнере docker и указан in.mp4, ffmpeg просматривает каталог root проекта. Поэтому мы должны указать полный путь для ffmpeg, чтобы найти ваше входное видео. Я так и сделал, и это отлично сработало! Вот мой код:

@admin.route('/partners/upload_videos')
def partners_video_upload():

    # Uploading video using ffmpeg-python
    (ffmpeg
        .input('.\myproject\static\videos\in.mp4')
        .output('.\myproject\static\videos\converted\output.mp4')
        .run()
        )

    return render_template('admin/partner/upload_videos.html')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...