windows下FFmpeg使用以及ffmpeg抽取视频的关键帧

音视频  2020年8月15日 pm12:46发布4年前 (2020)更新 城堡大人
143 0 0

FFmpeg 简介

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec。

FFmpeg是在 Linux 下开发出来的,但它可以在包括 Windows 在内的大多数操作系统中编译。

这个项目是由 Fabrice Bellard 发起的,现在由 Michael Niedermayer 主持。

可以轻易地实现多种视频格式之间的相互转换,例如可以将摄录下的视频avi等转成现在视频网站所采用的flv格式。

Window上FFmpeg的安装

FFmpeg下载Window版链接 : https://ffmpeg.zeranoe.com/builds/

  1. 下载Windows版本的FFmpeg,并解压到需要安装的目录
  2. 在[此电脑或者计算机]上[右键]——[属性]——[高级系统设置],在高级选项卡点击[环境变量]
  3. 在[系统变量]下找到[path],然后添加 D:\Install soft\ffmpeg20200812\bin (这是解压后我电脑上的目录)
  4. windowr+R键,运行cmd,输入ffmpeg -version

ffmpeg抽取视频的关键帧

ffmpeg -i aaa.mp4 -vf select='eq(pict_type\,I)' -vsync 2 -s 540*960 -f image2 core-%04d.jpeg

各个参数解释:

-i :输入文件,这里的话其实就是视频,

-vf:是一个命令行,表示过滤图形的描述, 选择过滤器select会选择帧进行输出:包括过滤器常量

pict_type和对应的类型:PICT_TYPE_I 表示是I帧,即关键帧。

-vsync 2:阻止每个关键帧产生多余的拷贝

-f image2 name_%02d.jpeg:将视频帧写入到图片中,样式的格式一般是: “%d” 或者 “%0Nd”

-s:分辨率,1920*1080

这样保存下来的关键帧的命名顺序是从1开始的,数字表示第几个关键帧。需要保存关键帧在原始视频中的帧的位置,参考Extracting the index of key frames from a video using ffmpeg。

PS:aaa.mp4  是视频文件

ffprobe -select_streams v -show_frames -show_entries frame=pict_type -of csv aaa.mp4 | grep -n I | cut -d ':' -f 1 > frame_indices.txt

会生成一个 frame_indices.txt 的文件,其中保存的即为关键帧在视频中的帧的索引位置。 再将生成的关键帧与索引对应起来:

ls -1 core*.jpeg > core.txt

paste core.txt frame_indices.txt > combine.txt

生成的 combine.txt中每一行即为{}\t{}.format(core1, frame1)。

参考文章

  1. 从视频中获取关键帧(I帧)
  2. windows下FFmpeg使用方法

 历史上的今天

  1. 2023: SystemServer的启动之一(0条评论)
  2. 2019: android.view.ViewRootImpl$CalledFromWrongThreadException(0条评论)
  3. 2019: 朱湘:海外寄霓君(节选)(0条评论)
  4. 2018: Android6.0修改默认输入法(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

从维熙:夜空中的木拐

非常凑巧,游览了好莱坞和迪斯尼,适逢圣诞节的黄昏。又从洛杉矶开车一路疾行,穿越加州南部地区,连夜向亚历桑那州的首府菲尼克斯飞驰。平日喧闹的高速公路,在这圣诞之夜出奇地安静,隔着车窗外望,四野一片迷茫。此时,公路两旁的灯光消失了往日的鲜亮,就像与人一路同行的月光一样,把地球上这个头号富国,变成了难...

朱湘:海外寄霓君(节选)

一霓妹,我的爱妻:你从般若庵十二月初五写的“第一封”信我收到了。我后天就要搬家,你的信可以寄到憩轩四兄第一次替你打的信封那里。我在芝加哥城里过得好些,身体也好,望你不要记挂。我到今天总共收到你八封信。你信内并不曾提到岳母大人同憩轩四兄的病,想必是都好了。你的奶水不够,务必要请奶妈子。照我如今这般...

[摘]Android 系统重启原因分析

重启原因分类1.上层造成重启system_server被杀watchdog重启重要线程阻塞2.kernel造成重启空指针非法地址3.kernel watchdog造成重启,原因不确定内存原因nand驱动log查看步骤及关键字1. 重启后的kernel.log或...

图片圆角+倒影+缩放

前言之前也介绍过图片圆角,倒影和缩放,由于放在不同页面,也没单独抽离出来,因此这里把代码独立出来。流水文,自己看而已正文缩放图片隐藏内容!付费阅读后才能查看!¥1 ¥3多个隐藏块只需支付一次付费阅读图片圆角对于圆角的,本站之前也专门有篇文章介绍多种方式。隐藏内容!付费阅读后才能...

Settings源码分析之蓝牙(1)

源码:Android 6.0应用:Settings目录:Settings\src\com\android\settings\bluetooth 上一回我们简单分析了Settings加载和启动过程(《Android 6.0 Settings源码简单分析》),现在我们来看看S...

Kotlin的基本语法2

前言记录一下Kotlin基本语法2,主要涉及选择结构语句,循环结构语句和区间等,记录于此,方便自己查阅。正文选择结构语句选择结构语句分为if条件语句和when条件语句。if条件语句if条件语句分为3种语法格式。if语句if语句是指如果满足某种条件,则进行该条件下的某种处理。var...