Python利用FFmpeg为Reddit视频生成缩略图

星野
星野
发布时间:2026-10-13| 5人浏览过
原创

本文介绍如何在Python中为Reddit视频帖子生成缩略图。由于Reddit要求上传视频时必须提供缩略图,否则将显示默认Logo,作者使用ffmpy库封装FFmpeg命令,通过提取视频第一帧并保存为JPG格式,实现了自动化生成缩略图的功能,简化了发帖流程。

Reddit API与机器人生态

目前Reddit平台上存在大量机器人账号,官方对此持支持态度。只要内容并非无意义灌水,机器人的活跃有助于提升社区热度并吸引真实用户参与讨论。例如每周固定的“烦人的星期二”帖子,就是用户吐槽生活琐事的热区。为此,Reddit提供了一套完整的开发者API,且相关SDK易于获取,官方提供了详尽的语言支持列表,开发者可根据偏好自由选择。

视频上传与FFmpeg引入

脚本编写本身并不复杂,真正的难点在于视频上传环节。Reddit对上传有特定要求:除了帖子标题和视频文件路径外,还必须提供一张缩略图。若未提供,SDK会自动使用Reddit的Logo作为视频封面。为了解决这一问题,我们需要借助FFmpeg工具。

安装FFmpeg。

FFmpeg安装


brew install ffmpeg

Python提供了FFmpeg的封装库ffmpy,其原理是将传入的参数转换为命令行指令,并通过subprocess模块执行。参考官网示例,我们可以进行如下调用。

使用ffmpy库


>>> import ffmpy
>>> ff = ffmpy.FFmpeg(
...   inputs={'input.mp4': None},
...   outputs={'output.avi': None}
... )
>>> ff.run()

这本质上等同于在命令行中执行相应的FFmpeg命令。


ffmpeg -i input.mp4 output.avi

生成视频缩略图。

这里编写了一个简单函数,接收视频路径作为输入,提取第一帧画面,并将其保存为JPG格式文件。

Python生成缩略图实现


import ffmpy

def get_thumbnail_from_video(video_path):
  thumbnail_path = video_path.replace(".mp4", ".jpg")
  ff = ffmpy.FFmpeg(
    inputs={video_path: None},
    outputs={thumbnail_path: ['-ss', '00:00:00.000', '-vframes', '1']}
  )
  ff.run()
  return thumbnail_path

此处假设视频格式均为mp4,因此通过简单替换路径后缀生成缩略图文件名,未做更严格的格式校验。这同样等同于执行对应的命令行操作。


ffmpeg -i video_path -ss 00:00:00.000 -vframes 1 thumbnail_path

在发帖时同时指定视频和图片路径,即可通过一行命令完成所有点击跳转相关的操作,极大提升了便利性。

若对上述内容有任何疑问,欢迎联系小编,感谢对本站的支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。