在python语法错误中使用ffmpeg调整大小

时间:2018-12-05 20:45:35

标签: python ffmpeg

我正在尝试在python中使用ffmpeg调整视频大小,但语法有错误。我希望它像这样简单(这是我的代码)

import ffmpeg

ffmpeg -i video.mov -vf "scale=250:150" newmovie.mp4

这给出了这样的无效语法:

    ffmpeg -i video.mov -vf "scale=250:150" newmovie.mp4
                  ^
SyntaxError: invalid syntax

我尝试过:

ffmpeg -i video.mov -vf scale=250:150 newmovie.mp4

,并将所有文件放在引号中。没有运气。

2 个答案:

答案 0 :(得分:1)

在 Python 中使用 ffmpeg,这是封装在函数中的代码:

def vid_resize(vid_path, output_path, width, overwrite = False):
    '''
    use ffmpeg to resize the input video to the width given, keeping aspect ratio
    '''
    if not( os.path.isdir(os.path.dirname(output_path))):
        raise ValueError(f'output_path directory does not exists: {os.path.dirname(output_path)}')

    if os.path.isfile(output_path) and not overwrite:
        warnings.warn(f'{output_path} already exists but overwrite switch is False, nothing done.')
        return None

    input_vid = ffmpeg.input(vid_path)
    vid = (
        input_vid
        .filter('scale', width, -1)
        .output(output_path)
        .overwrite_output()
        .run()
    )
    return output_path

所以就你的例子来说:

newmovie_path = vid_resize("video.mov", output_path = "newmovie.mp4", width = 250) 

答案 1 :(得分:0)

正如@Barmar明智地指出的,这是一个shell命令NOTa python命令。

ffmpeg -i video.mov -vf "scale=250:150" newmovie.mp4

在此处找到有关python的正确文档:

https://github.com/kkroening/ffmpeg-python