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压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
python数据处理实战(必看篇)
Jun 11 Python
利用python画出折线图
Jul 26 Python
对Python3中dict.keys()转换成list类型的方法详解
Feb 03 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
Jun 24 Python
python打造爬虫代理池过程解析
Aug 15 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
python中的数组赋值与拷贝的区别详解
Nov 26 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
使用python的turtle函数绘制一个滑稽表情
Feb 28 Python
Python如何实现Paramiko的二次封装
Jan 30 Python
Django rest framework如何自定义用户表
Jun 09 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生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
javascript 一些用法小结
2009/09/11 Javascript
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
使用OpenCV对车道进行实时检测的实现示例代码
2020/06/19 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
护理学专业推荐信
2013/12/03 职场文书
中学校庆方案
2014/03/17 职场文书
药剂专业个人求职信范文
2014/04/29 职场文书
营销经理工作检讨书
2014/11/03 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android