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绘制人人网好友关系图示例
Apr 01 Python
查看Python安装路径以及安装包路径小技巧
Apr 28 Python
基于Python的XSS测试工具XSStrike使用方法
Jul 29 Python
python中类的属性和方法介绍
Nov 27 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
pytorch 自定义卷积核进行卷积操作方式
Dec 30 Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
Python Django中间件使用原理及流程分析
Jun 13 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
Python getsizeof()和getsize()区分详解
Nov 20 Python
Django多个app urls配置代码实例
Nov 26 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
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
浅析Ajax语法
2016/12/05 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
python基础知识小结之集合
2015/11/25 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
Python3实现购物车功能
2018/04/18 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
【HTML5】3D模型--百行代码实现旋转立体魔方实例
2016/12/16 HTML / CSS
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
Unix如何添加新的用户
2014/08/20 面试题
一份报关员的职业规划范文
2014/01/08 职场文书
网络编辑职责
2014/03/01 职场文书
租赁协议书范本
2014/04/22 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
门店业绩提升方案
2014/06/08 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
学校运动会开幕词
2016/03/03 职场文书