如何在django中使用子进程执行ffmpeg缩略图提取命令?

How to execute the ffmpeg thumbnail extraction command using sub-process in django?

我们使用以下代码从视频中提取缩略图

ffmpeg -i low.mkv -vf thumbnail=10,setpts=N/TB -r 1 -vframes 10 inputframes%03d.png

此代码在终端上运行得非常好,但是当我们在 django 中使用子进程处理相同代码时,它会出错。

我们的目标是从任意长度的视频生成 10 个缩略图

这是代码

vaild_fps = "'thumbnail=10,setpts=N/TB -r 1 -vframes 10'"

subprocess.call([settings.FFMPEG_PATH,
        '-i',
        input_file_path,
        '-vf',
        vaild_fps,
        thumbnail_output_file_path,            
    ]
)

Error No such filter: 'thumbnail=10,setpts=N/TB -r 1 -vframes 10'

Error opening filters!

不幸的是我能够crack-it。这是解决方案

subprocess.call([settings.FFMPEG_PATH,
        '-i',
        input_file_path,
        '-vf',
        'thumbnail=10,setpts=N/TB',            
        '-r',
        '1',
        '-vframes',
        '10',
        thumbnail_output_file_path,

    ]
)