“快速掌握如何用FFmpeg在Python中截取定时间隔的MP4视频画面“

news2024/11/16 15:45:37

目录

 简介:

源代码:

源代码说明:

这段代码中,首先定义了输入视频文件名、字体文件路径和输出图像文件名格式。然后使用subprocess模块的call函数调用FFmpeg命令。FFmpeg命令被定义为一个列表,其中每个元素都是命令中的一个参数。命令中包含了输入文件、滤镜、帧速率和输出文件名格式等参数。最后,使用subprocess.call函数执行该命令。 

安装ffmpeg步骤:

效果如下所示:


 简介:

以下是几个使用 ffmpeg 截图的应用场景:

  1. 视频编辑:在视频编辑过程中,截屏是一种很有用的工具。通过截屏可以获取特定场景的静态图像,用于剪辑或其他操作。

  2. 视频监控:在视频监控领域,截屏可以用于生成缩略图、录像的关键帧等。

  3. 视频教育:在视频教育领域,截屏可以用于制作课件、教学视频中的配图等。

  4. 图像处理:在图像处理领域,ffmpeg 除了可以从视频文件中截屏,还可以进行图像处理,如缩放、剪裁、滤镜等操作。

  5. 网络媒体:在网络媒体领域,截屏可以用于生成视频封面、展示缩略图等。

源代码:

import subprocess

cmd = [r'd:\ffmpeg\bin\ffmpeg', '-i', r'D:\spiderdocs\tww.mp4', '-vf', "select='not(mod(n\,300))',drawtext=fontfile=/path/to/font.ttf:fontsize=30:text='%{pts\:hms}'", '-vsync', 'vfr', r'D:\spiderdocs\outputs\output_image_%03d.jpg']

subprocess.run(cmd, shell=True)

源代码说明:

这段代码中,首先定义了输入视频文件名、字体文件路径和输出图像文件名格式。然后使用subprocess模块的call函数调用FFmpeg命令。FFmpeg命令被定义为一个列表,其中每个元素都是命令中的一个参数。命令中包含了输入文件、滤镜、帧速率和输出文件名格式等参数。最后,使用subprocess.call函数执行该命令。 

FFmpeg命令中的参数含义如下:

  • input_video.mp4:输入视频文件的路径和名称。
  • -vf "select='not(mod(n,300))',drawtext=fontfile=/path/to/font.ttf:fontsize=30:text='%{pts:hms}'":指定要应用的滤镜。其中select='not(mod(n,300))'表示选择每300帧中的一帧进行处理,drawtext=fontfile=/path/to/font.ttf:fontsize=30:text='%{pts:hms}'表示在每个输出图像上添加一个时间戳,字体文件为/path/to/font.ttf,字体大小为30像素。
  • -vsync vfr:设置输出图像的帧速率与输入视频的帧速率相同。
  • output_image_%03d.jpg:输出图像文件的名称格式。%03d表示输出文件名中的数字部分应该是三位数,例如,output_image_001.jpg。

安装ffmpeg步骤:

  1. 下载ffmpeg的安装包。下载

  2. 解压安装包到指定目录。可以将安装包解压到任何你想要的目录中,例如C:\Program Files\ffmpeg。

  3. 将ffmpeg添加到环境变量中。在Windows操作系统中,右键点击计算机,选择“属性”,再选择“高级系统设置”,在“高级”选项卡下点击“环境变量”。在“系统变量”列表中找到“Path”变量,编辑它并在结尾处添加ffmpeg的安装目录。

  4. 点击“确定”保存更改,并关闭所有窗口。

  5. 打开命令提示符,输入“ffmpeg -version”命令验证安装是否成功。

效果如下所示:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/399276.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RocketMQ5.0.0消息消费<二> _ 消息队列负载均衡机制

目录 一、消费队列负载均衡概览 二、消费队列负载均衡实现 1. 负载均衡UML 2. 启动RebalanceService线程 3. PUSH模式负载均衡 三、负载均衡策略 四、参考资料 一、消费队列负载均衡概览 RocketMQ默认一个主题下有4个消费队列,集群模式下同一消费组内要求每个…

合并链表相关的练习

目录 一、合并两个有序链表 二、两数相加 一、合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2&…

熬夜30天吃透这九大Java核心专题,我收割了3个大厂offer

这次一共收割了3个大厂offer,分别是蚂蚁金服、美团和网易,特意分享这次对我帮助非常大的宝典资料,一共涉及九大核心专题,分别是计算机网络、操作系统、MySQL、Linux、JAVA、JVM、Redis、消息队列与分布式、网站优化相关&#xff0…

MySQL8启动错误“Neither found #innodb_redo subdirectory, nor ib_logfile* files”

今天做MySQL备份文件回复测试,用来检验MySQL备份文件可用性。 MySQL版本8.0.32 备份文件为腾讯云MySQL实例,版本8.0 使用xtrabackup恢复备份。执行过程顺利,启动MySQL时发生错误。提示如下: 注意,这里使用了systemctl stop mysql。虽然启动失败了,但是如果不执行这条…

全国青少年软件编程(Scratch)等级考试一级真题——2019.9

青少年软件编程(Scratch)等级考试试卷(一级)分数:100 题数:37一、单选题(共25题,每题2分,共50分)1.小明在做一个采访的小动画,想让主持人角色说“大家好!”3秒…

AcWing 3555. 二叉树

第一种做法是dfs。但是注意,如果是非常单纯的dfs,要把每个节点可以到达的所有节点都记录下来(父节点两个子节点)。如果只记录了子节点,没记录父节点,就失去了一个方向,肯定出错。 例如求2和6之…

Git常见问题:Your branch and ‘xxx/xxx‘ have diverged

报这个错就是因为你和远程库出现分叉了,具体表现是是由于同一个分支有多人修改,多人commit造成的 用户1操作 用户2操作 T1 git co -b brv_1 git co -b brv_1 T2 git add test2.java git commit -m m2 git push T3 git add test1.java git comm…

VR全景博物馆,打造7*24小时的线上参访体验

导语:博物馆作为人们了解历史、文化和艺术的重要场所,现在可以通过VR全景技术来进行展览,让参观者身临其境地感受历史文化的魅力。本文将介绍博物馆VR全景的特点、优势,以及如何使用VR全景技术来丰富博物馆的展览和教育活动。什么…

数据库:Mysql数据库安装及使用

目录 一、数据库介绍 1、基本概念 2、数据库类型 3、版本演变 二、Mysql安装 1、官网下载yum安装 2、手动配置yum安装 三、Mysql基本操作 1、登录与改密 2、检测数据库健康 3、 库的创建与使用 4、数据类型 5、修饰符 6、表的创建与使用 7、分组查询 8、查询排…

hive之正则函数研究学习regex/regex_replace/regex_extract

首先学习这个之前要先知道一些正则的基本知识。 随便百度一下正则表达式 – 元字符 | 菜鸟教程 字符描述\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,n 匹配字符 "n"。\n 匹配一个换行符。序列 \\ 匹…

残酷现实:大部分的App小程序,日活<100

残酷现实:99%的APP小程序&#xff0c;日活<100 日活跃用户数量(DAU&#xff09;是一个核心指标 Daily Active Users 互联网的难度系数一路拉高 只有流过血的战士&#xff0c;才能意识到战场的残酷 趣讲大白话&#xff1a;赵本山小品台词&#xff0c; 残酷的现实已直逼我心理…

千访 | 互动千万!小红书博主修炼手册

采访手记&#xff1a; 截止到目前&#xff0c;姜老师的护肤成分室在小红书的粉丝量已达150W。在赛道内卷的美妆区&#xff0c;突破真人出镜讲解&#xff0c;采用二次元漫画&#xff0b;变美内容结合&#xff0c;成为护肤动画领域的头部大号。 接下来&#xff0c;就让我们通过…

[算法]希尔排序——插入排序的升级

参考&#xff1a;《漫画算法-小灰的算法之旅》 目录 1、希尔排序的思想 2、例子 3、希尔排序代码 4、希尔排序的优化 5、希尔排序是不稳定排序 问&#xff1a;什么情况下插入排序的工作量会比较小呢&#xff1f; 答&#xff1a;首先&#xff0c;当数组元素较小时&#xf…

基于Halcon的MLP(多层感知神经网络)分类器分类操作实例

一、介绍 人工神经网络(Artificial Neural Network,ANN)简称神经网络(Neural Network,NN)或类神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。 MLP神经网络是一种基于神经网络、动态的分类器。MLP分类器使用神经…

C51---智能感应垃圾桶

1.器件&#xff1a;C51、蜂鸣器、SG90舵机、HC-SR04超声波测距 2.实现功能&#xff1a;超声波感应&#xff0c;舵机转动打开垃圾桶&#xff0c;蜂鸣器发出提示&#xff0c;LED灯亮 3.代码&#xff1a; #include "reg52.h" #include "intrins.h" //距离小…

关于进程与进程调度

目录什么是进程进程管理进程的结构体(PCB)里的属性并行与并发什么是进程 一个运行起来的程序就是进程. 比如文件名是以 exe 结尾的就是一可执行文件(程序) 双击QQ.exe文件, 这个程序就跑起来了, 它在系统中形成了一个进程, 那我们怎么看到进程呢? 可以打开任务管理器, 点开进…

Spark MLlib 模型训练

Spark MLlib 模型训练决策树随机森林GBDTSpark MLlib 开发框架下 : 监督学习 : 回归 (Regression) , 分类 (Classification) , 协同过滤 (Collaborative Filtering)非监督学习 : 聚类 (Clustering) 、频繁项集 (Frequency Patterns) 例子分类 : 算法分类 : 算法分类算法子分类…

探究SMC局部代码加密技术以及在CTF中的运用

前言 近些日子在很多线上比赛中都遇到了smc文件加密技术,比较出名的有Hgame杭电的比赛,于是我准备实现一下这项技术&#xff0c;但是在网上看了很多文章&#xff0c;发现没有讲的特别详细的&#xff0c;或者是无法根据他们的方法进行实现这项技术&#xff0c;因此本篇文章就是…

Springboot怎么快速集成Redis?

前言其实在Springboot中集成redis是一个非常简单的事情&#xff0c;但是为什么要单独输出一篇文章来记录这个过程呢&#xff1f;第一个原因是&#xff0c;我记性不是太好&#xff0c;这次把这个过程记录下&#xff0c;在新的项目搭建的时候或者需要在本地集成redis做一些其他相…

51红外循迹智能车——红外循迹模块设计

目录 赛道环境 红外传感器的特征 TCRT5000传感器 LM339单限电压比较器 LM339简介 ​编辑 单限电压比较器仿真 红外循迹模块的设计 红外循迹模块原理图 红外循迹模块原理图讲解 赛道环境 上图为赛道示意图&#xff0c;两端为黑色&#xff0c;中间为白色 红外传感器的…