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 正则表达式的高级用法
Dec 04 Python
Python 实现随机数详解及实例代码
Apr 15 Python
python更改已存在excel文件的方法
May 03 Python
Python二叉树的镜像转换实现方法示例
Mar 06 Python
Pyqt5实现英文学习词典
Jun 24 Python
Python高级编程之继承问题详解(super与mro)
Nov 19 Python
使用Bazel编译TensorBoard教程
Feb 15 Python
python 安装impala包步骤
Mar 28 Python
python3的pip路径在哪
Jun 23 Python
python空元组在all中返回结果详解
Dec 15 Python
解决numpy数组互换两行及赋值的问题
Apr 17 Python
提取视频中的音频 Python只需要三行代码!
May 10 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用正则表达式匹配中文实例详解
2013/11/06 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
PHP内核学习教程之php opcode内核实现
2016/01/27 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
PHP APP微信提现接口代码
2018/09/30 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
2016/07/10 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
用Python中的字典来处理索引统计的方法
2015/05/05 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
Python实现读取并保存文件的类
2017/05/11 Python
python获取代理IP的实例分享
2018/05/07 Python
python如何生成各种随机分布图
2018/08/27 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
丝芙兰意大利官方网站:Sephora.it
2019/12/13 全球购物
优乐美广告词
2014/03/14 职场文书
保安2014年终工作总结
2014/12/06 职场文书
学生检讨书范文
2015/01/27 职场文书
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技