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 相关文章推荐
wxPython框架类和面板类的使用实例
Sep 28 Python
通过代码实例展示Python中列表生成式的用法
Mar 31 Python
在Python的Django框架的视图中使用Session的方法
Jul 23 Python
Python实现简单字典树的方法
Apr 29 Python
老生常谈python函数参数的区别(必看篇)
May 29 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
Python3爬虫之自动查询天气并实现语音播报
Feb 21 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
Python从文件中读取指定的行以及在文件指定位置写入
Sep 06 Python
pytorch GAN伪造手写体mnist数据集方式
Jan 10 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
Mar 16 Python
利用python汇总统计多张Excel
Sep 22 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 传值赋值与引用赋值的区别
2010/12/29 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
基于PHP实现的事件机制实例分析
2015/06/18 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
Javascript 判断Flash是否加载完成的代码
2010/04/12 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
JS访问SWF的函数用法实例
2015/07/01 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
企业办公室主任岗位职责
2014/02/19 职场文书
房地产项目建议书
2014/03/12 职场文书
文体活动总结范文
2014/05/05 职场文书
机关保密承诺书
2014/06/03 职场文书
亮剑观后感500字
2015/06/05 职场文书
党校培训学习心得体会
2016/01/06 职场文书
反邪教教育心得体会
2016/01/15 职场文书
初中体育课教学反思
2016/02/16 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书