python获取视频缩略图_用 Python 代码生成视频的缩略图
最近写了个 Reddit 发帖辅助工具,因为涉及视频的上传及标注出处来源,所以一个简单的脚本可以大大减轻我的工作量,出于糙快猛的考虑,自然而然就是 Python 了。
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 代码生成视频的缩略图相关推荐
- python 获取硬盘信息_使用python获取电脑的磁盘信息方法
使用Python获取电脑的磁盘信息需要借助于第三方的模块psutil,这个模块需要自己安装,纯粹的CPython下面不具备这个功能. 在iPython交互界面中进行如下演示: 查看电脑的磁盘分区: I ...
- python 获取唯一值_从Python列表中获取唯一值
python 获取唯一值 In this article, we will be understanding 3 ways to get unique values from a Python lis ...
- python获取摄像头数据_用Python获取摄像头并实时控制人脸 !
实现流程从摄像头获取视频流,并转换为一帧一帧的图像,然后将图像信息传递给opencv这个工具库处理,返回灰度图像(就像你使用本地静态图片一样) 程序启动后,根据监听器信息,使用一个while循环,不断 ...
- python获取编码方式_在Python中获取HTTP响应的字符集/编码的好方法
小编典典 _, params = cgi.parse_header('text/html; charset=utf-8') print params['charset'] # -> utf-8 ...
- python获取工程根目录_【Python】获取当前项目根路径/目录
""" -*- coding:utf-8 -*- @Time :2020/9/23 18:16 @Author :Jarvis @File :jar_project_ut ...
- python获取计算机时间_在Python中获取计算机的UTC偏移量
当年话下 time.timezone:import timeprint -time.timezone它以秒为单位打印UTC偏移量(考虑到夏令时(DST),请参见time.altzone:is_dst ...
- python获取登录按钮_用Python实现一个最新QQ办公版(TIM)的登录界面
最近,QQ的办公版本--TIM进行了一次更新升级.本次更新升级大幅修改了界面的样式,看起来更加的清爽.简洁和高效了. 这种界面州的先生还是比较喜欢的,没有QQ那么花里胡哨,也比微信那些残缺的功能更加丰 ...
- python获取网卡名称_用Python获取计算机网卡信息
0. 前言 正常情况下,如果想要查看电脑的网卡IP地址或是MAC地址,直接通过界面找到网卡进行查看就有了,亦或是通过命令如linux的ifconfig得到IP等信息,那么本节教大家如何通过python ...
- python获取行号_在python中获取当前位置所在的行号和函数名
python中没办法直接取得当前的行号和函数名.这是有人在论坛里提出的问题,底下一群人只是在猜测python为什么不像__file__一样提供__line__和__func__,但是却最终也没有找到解 ...
- python获取计算机配置_利用python写一段读取电脑配置信息的程序
展开全部 主要利用python的wmi模块,提供非常多的信息.import wmi def sys_version(): c = wmi.WMI() # 操作系统版本,版本号,32位/64位 prin ...
最新文章
- Python进程学习笔记-进程创建fork
- windows7下消除快捷键箭头的方法
- Linux及安全课程——相关链接总结
- 【BZOJ 1096】[ZJOI2007]仓库建设
- SQL 性能优化梳理 —— 基本概念、创建时优化、查询时优化
- mysql5.6 线程池_[MySQL5.6] Percona Server 5.6.14的线程池浅析
- 【渝粤教育】国家开放大学2018年秋季 0680-22T会计基础知识 参考试题
- 华为云“创原会”:40+技术精英论道云原生2.0
- 1.3、解析并创建ApplicationListener(ok)
- 怎么会Sql serverW数据库模型图转化成ord于--您还可以查看属性信息字段
- sql 日期和当前日期时间差_SQL基础进阶16日期处理
- getAttribute 与getParmeter 区别
- 智能优化算法:静电放电算法-附代码
- 跟着迪哥学python电子书pdf-跟着迪哥学Python数据分析与机器学习实战
- linux 声卡设备文件夹,Linux操作系统声卡驱动的安装与配置
- 音频采集 via Media Foundation
- linux 下 调笔记本亮度,Linux下如何保存笔记本屏幕亮度设置(背光亮度)
- thingsboard安装源码编译
- 2018前端精品面试文章总结
- 什么是虚继承?虚基类?
热门文章
- 以太坊geth节点各种报错(求助)
- 排序算法(5)----堆排序
- linux永久启动服务命令,Linux(CentOS)用service命令启动任意服务
- mongodb查询文件服务器的数据,服务器端知识库mongodb基础篇
- C语言实验报告册-20163a,c语言实验报告册-20163a.doc
- UIAlertView, UIAlertViewController
- JNI_Android项目中调用.so动态库实现详解【转】
- [Scrum] 12.22
- 使用基于列表的表单控件
- python打印字符串全排列_Python实现全排列的打印