Python代码生成视频的缩略图的实例讲解


Posted in Python onDecember 22, 2019

Reddit 上目前充斥着各种机器人账号,官方也非常支持这种行为,只要不是无意义的发言,机器人多了还能增加活跃度,吸引真人用户一起来各抒己见,比如说每周都有的一个“烦人的星期二”的帖子,就是大伙儿吐槽生活中种种烦心事的好地方,因此提供了一整套开发者 API ,同时 SDK 也不难找,这里有一个详尽的列表,大家可以根据自己的语言喜好随意取用。

脚本很简单,真正的困难在于视频上传, Reddit 的要求很特殊,有了帖子标题和视频路径还不够,还需要提供一张缩略图, SDK 的文档也说了,如果不提供,就会自动上传一张他们的 Logo 作为视频的缩略图。这个时候,就需要祭出 ffmpeg 了。

安装

brew install ffmpeg

Python 也提供了 ffmpeg 的一层包装—— ffmpy ,这层包装本质上是把传入的参数翻译成命令行,调用 subprocess 来执行。比如说官网的示例

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

本质上是在命令行中运行

ffmpeg -i input.mp4 output.avi

生成缩略图

简单写了个函数如下,给定视频路径,取第一帧作为缩略图,保存为 jpg 格式

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 相关文章推荐
Python+tkinter使用80行代码实现一个计算器实例
Jan 16 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
python判断自身是否正在运行的方法
Aug 08 Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 Python
django重新生成数据库中的某张表方法
Aug 28 Python
django 读取图片到页面实例
Mar 27 Python
TensorFlow使用Graph的基本操作的实现
Apr 22 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 Python
selenium+python实现基本自动化测试的示例代码
Jan 27 Python
Scrapy实现模拟登录的示例代码
Feb 21 Python
python opencv将多个图放在一个窗口的实例详解
Feb 28 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 #Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 #Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 #Python
python FTP批量下载/删除/上传实例
Dec 22 #Python
python 实现保存最新的三份文件,其余的都删掉
Dec 22 #Python
python中的split()函数和os.path.split()函数使用详解
Dec 21 #Python
python 操作hive pyhs2方式
Dec 21 #Python
You might like
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
php实现源代码加密的方法
2015/07/11 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
js获取视频时长代码
2014/04/10 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
Python中isnumeric()方法的使用简介
2015/05/19 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
python测试mysql写入性能完整实例
2018/01/18 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
python中open函数的基本用法示例
2019/09/07 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
2020/01/25 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
软件工程师面试题
2012/06/25 面试题
材料物理专业大学毕业生求职信
2013/10/15 职场文书
商务英语毕业生自荐信范文
2013/11/08 职场文书
王老吉广告词
2014/03/20 职场文书
初中教师业务学习材料
2014/05/12 职场文书
购房委托书范本
2014/09/18 职场文书
简短清晨问候语
2015/11/10 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
java解析XML详解
2021/07/09 Java/Android