最近写了个 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 代码生成视频的缩略图相关推荐

  1. python 获取硬盘信息_使用python获取电脑的磁盘信息方法

    使用Python获取电脑的磁盘信息需要借助于第三方的模块psutil,这个模块需要自己安装,纯粹的CPython下面不具备这个功能. 在iPython交互界面中进行如下演示: 查看电脑的磁盘分区: I ...

  2. python 获取唯一值_从Python列表中获取唯一值

    python 获取唯一值 In this article, we will be understanding 3 ways to get unique values from a Python lis ...

  3. python获取摄像头数据_用Python获取摄像头并实时控制人脸 !

    实现流程从摄像头获取视频流,并转换为一帧一帧的图像,然后将图像信息传递给opencv这个工具库处理,返回灰度图像(就像你使用本地静态图片一样) 程序启动后,根据监听器信息,使用一个while循环,不断 ...

  4. python获取编码方式_在Python中获取HTTP响应的字符集/编码的好方法

    小编典典 _, params = cgi.parse_header('text/html; charset=utf-8') print params['charset'] # -> utf-8 ...

  5. python获取工程根目录_【Python】获取当前项目根路径/目录

    """ -*- coding:utf-8 -*- @Time :2020/9/23 18:16 @Author :Jarvis @File :jar_project_ut ...

  6. python获取计算机时间_在Python中获取计算机的UTC偏移量

    当年话下 time.timezone:import timeprint -time.timezone它以秒为单位打印UTC偏移量(考虑到夏令时(DST),请参见time.altzone:is_dst  ...

  7. python获取登录按钮_用Python实现一个最新QQ办公版(TIM)的登录界面

    最近,QQ的办公版本--TIM进行了一次更新升级.本次更新升级大幅修改了界面的样式,看起来更加的清爽.简洁和高效了. 这种界面州的先生还是比较喜欢的,没有QQ那么花里胡哨,也比微信那些残缺的功能更加丰 ...

  8. python获取网卡名称_用Python获取计算机网卡信息

    0. 前言 正常情况下,如果想要查看电脑的网卡IP地址或是MAC地址,直接通过界面找到网卡进行查看就有了,亦或是通过命令如linux的ifconfig得到IP等信息,那么本节教大家如何通过python ...

  9. python获取行号_在python中获取当前位置所在的行号和函数名

    python中没办法直接取得当前的行号和函数名.这是有人在论坛里提出的问题,底下一群人只是在猜测python为什么不像__file__一样提供__line__和__func__,但是却最终也没有找到解 ...

  10. python获取计算机配置_利用python写一段读取电脑配置信息的程序

    展开全部 主要利用python的wmi模块,提供非常多的信息.import wmi def sys_version(): c = wmi.WMI() # 操作系统版本,版本号,32位/64位 prin ...

最新文章

  1. Python进程学习笔记-进程创建fork
  2. windows7下消除快捷键箭头的方法
  3. Linux及安全课程——相关链接总结
  4. 【BZOJ 1096】[ZJOI2007]仓库建设
  5. SQL 性能优化梳理 —— 基本概念、创建时优化、查询时优化
  6. mysql5.6 线程池_[MySQL5.6] Percona Server 5.6.14的线程池浅析
  7. 【渝粤教育】国家开放大学2018年秋季 0680-22T会计基础知识 参考试题
  8. 华为云“创原会”:40+技术精英论道云原生2.0
  9. 1.3、解析并创建ApplicationListener(ok)
  10. 怎么会Sql serverW数据库模型图转化成ord于--您还可以查看属性信息字段
  11. sql 日期和当前日期时间差_SQL基础进阶16日期处理
  12. getAttribute 与getParmeter 区别
  13. 智能优化算法:静电放电算法-附代码
  14. 跟着迪哥学python电子书pdf-跟着迪哥学Python数据分析与机器学习实战
  15. linux 声卡设备文件夹,Linux操作系统声卡驱动的安装与配置
  16. 音频采集 via Media Foundation
  17. linux 下 调笔记本亮度,Linux下如何保存笔记本屏幕亮度设置(背光亮度)
  18. thingsboard安装源码编译
  19. 2018前端精品面试文章总结
  20. 什么是虚继承?虚基类?

热门文章

  1. 以太坊geth节点各种报错(求助)
  2. 排序算法(5)----堆排序
  3. linux永久启动服务命令,Linux(CentOS)用service命令启动任意服务
  4. mongodb查询文件服务器的数据,服务器端知识库mongodb基础篇
  5. C语言实验报告册-20163a,c语言实验报告册-20163a.doc
  6. UIAlertView, UIAlertViewController
  7. JNI_Android项目中调用.so动态库实现详解【转】
  8. [Scrum] 12.22
  9. 使用基于列表的表单控件
  10. python打印字符串全排列_Python实现全排列的打印