ffmpeg python“OSError[2]无此类文件或目录”错误

ffmpeg python“OSError[2]无此类文件或目录”错误,python,docker,flask,ffmpeg,Python,Docker,Flask,Ffmpeg,我最近想将ffmpeg python与我的Docked flask应用程序集成。我通过自制在mac上安装了ffmpeg。当我手动操作时,它可以工作,但当涉及到我的项目时。我跑不动。它抛出OSError[2]:没有这样的文件或目录 以下是我在views.py中的代码: in.mp4视频文件与views.py*文件位于同一目录中。我似乎无法解决这个问题。我也尝试了subprocess.call和subprocess.run。同样的错误仍然存在。Docker映像是一个独立的文件系统。它运行Linux。

我最近想将ffmpeg python与我的Docked flask应用程序集成。我通过自制在mac上安装了ffmpeg。当我手动操作时,它可以工作,但当涉及到我的项目时。我跑不动。它抛出OSError[2]:没有这样的文件或目录 以下是我在views.py中的代码:


in.mp4视频文件与views.py*文件位于同一目录中。我似乎无法解决这个问题。我也尝试了subprocess.call和subprocess.run。同样的错误仍然存在。

Docker映像是一个独立的文件系统。它运行Linux。您无法访问通过自制安装的可执行文件。因此,您需要在映像内安装ffmepg,例如,如果是基于Debian的映像,请在Dockerfile中运行apt get install-y ffmpeg。

我找到了解决方案。默认情况下,当ffmpeg安装在docker容器中并指定in.mp4时,ffmpeg将查看项目的根目录。因此,我们必须指定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')

我通过Dockerfile将其安装到docker,因为这次运行apt get-y update RUN apt get-y upgrade RUN apt get install-y ffmpeg然后它给了我这个错误错误:ffmpeg错误请参阅stderr输出了解详细信息我的代码是:try:stream=ffmpeg.input'in.mp4'stream=ffmpeg.hflipstream=ffmpeg.outputstream,'output.mp4'ffmpeg.runstream,capture_stdout=True,capture_stderr=True,ffmpeg除外。错误为e:print'stdout:',e.stdout.decode'utf8'print'stderr:',e.stderr.decode'utf8'raise e我试图在这里打印错误,结果是:'stderr:',uffmpeg版本3.2.14-1~deb9u1版权所有c 2000-2019 FFmpeg开发人员\n使用gcc 6.3.0 Debian 6.3.0-18+deb9u1 20170516构建\n配置:-前缀=/usr-额外版本=/1~deb9u1'-工具链=硬化-libdir=/usr/lib/x86_64-linux-gnu-incdir=/usr/incdir/include/include/x86_64-linux-gnu-启用gpl-禁用剥离-启用avresample-启用AVISynch-启用gnutls。。。541.100 / 54. 1.100\n/in.mp4:没有这样的文件或目录\n
@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')