首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中使用ffmpeg调整大小语法错误

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

Stack Overflow用户
提问于 2018-12-06 04:45:35
回答 2查看 2K关注 0票数 0

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

代码语言:javascript
复制
import ffmpeg

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

这给出了一个无效的语法:

代码语言:javascript
复制
    ffmpeg -i video.mov -vf "scale=250:150" newmovie.mp4
                  ^
SyntaxError: invalid syntax

我试过这个:

代码语言:javascript
复制
ffmpeg -i video.mov -vf scale=250:150 newmovie.mp4

并且把所有的文件都放在引号里。不走运。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-06 04:56:39

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

代码语言:javascript
复制
ffmpeg -i video.mov -vf "scale=250:150" newmovie.mp4

python的正确文档可以在这里找到:

代码语言:javascript
复制
https://github.com/kkroening/ffmpeg-python
票数 2
EN

Stack Overflow用户

发布于 2021-01-26 15:22:34

在Python语言中使用ffmpeg,下面是封装在函数中的代码:

代码语言:javascript
复制
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

因此,对于您的示例,只需这样做:

代码语言:javascript
复制
newmovie_path = vid_resize("video.mov", output_path = "newmovie.mp4", width = 250) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53640459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档