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实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
Mar 19 Python
以Flask为例讲解Python的框架的使用方法
Apr 29 Python
Python中字典的基础知识归纳小结
Aug 19 Python
浅谈python 四种数值类型(int,long,float,complex)
Jun 08 Python
Python模拟三级菜单效果
Sep 11 Python
python实现自动发送报警监控邮件
Jun 21 Python
通过 Django Pagination 实现简单分页功能
Nov 11 Python
Python动态声明变量赋值代码实例
Dec 30 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 Python
Python如何加载模型并查看网络
Jul 15 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 Image Resize图片大小调整的函数代码
2011/01/17 PHP
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
Angularjs处理页面闪烁的解决方法
2017/03/09 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
Vue $attrs & inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
django admin组件使用方法详解
2019/07/19 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
Python Merge函数原理及用法解析
2020/09/16 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
应届生服装设计自我评价
2013/09/20 职场文书
历史专业个人求职信范文
2013/12/07 职场文书
职业女性的职业规划
2014/03/04 职场文书
百年校庆感言
2015/08/01 职场文书
培训后的感想
2015/08/07 职场文书