点击上方“Datawhale”,选择“星标”公众号

第一时间获取价值内容

视频文件是多媒体数据中比较常见的一种,也是入门门槛比较高的一个领域。视频数据相关的领域任务包括视频物体检测、视频物体追踪、视频分类、视频检索和视频摘要抽取等。

视频数据与图像数据非常类似,都是由像素点组成的数据。在视频数据在非音频部分基本上可以视为多帧(张)图像数据的拼接,即三维图像的组合。由于视频数据与图像数据的相似性,在上述列举的视频领域任务中大都可以借助图像方法来完成。

文本将讲解视频抽帧的几种方法,具体包括以下几种抽帧方式:

  • 抽取视频关键帧(IPB帧)

  • 抽取视频场景转换帧

  • 按照时间进行均匀抽帧

  • 抽取制定时间的视频帧

在进行讲解具体的抽帧方式之前,我不得不介绍下FFmpeg。FFmpeg是一套可以用来编码、解码、合成和转换音频和视频数据的开源软件,提供了非常全面的音视频处理功能。如果你的工作内容是视频相关,那么ffmpeg是必须要掌握的软件了。FFmpeg提供了常见音视频和编解码方式,能够对众多的音视频格式进行读取,基本上所有的软件都会借助FFmpeg来完成音视频的读取操作。

FFmpeg的学习资料可以参考:

  • http://ffmpeg.org/documentation.html

  • https://blog.csdn.net/leixiaohua1020/article/details/15811977

1. 抽取视频关键帧(IPB帧)

视频关键帧(Video Keyframes)是用于视频压缩和视频编解码的帧,视频关键帧是包含了完整信息的帧,其他的非关键帧将会使用与关键帧的差值进行压缩。视频帧具体可以分为IPB帧三种:

  • I帧表示关键帧,是最完整的帧画面,一般视频封面都选择I帧;

  • P帧单预测帧,利用之前的I帧或P帧,采用运动预测的方式进行帧间预测编码;

  • B帧双向预测帧,利用双向帧进行预测编码;

一般情况下关键帧`I帧`是信息最多的帧,也是用途最多的帧。在视频检索和视频分类任务中一般都借助`I帧`来完成,在一个时长60s的视频中,可以抽取得到16个I帧、84个P帧和184个B,I帧数量少包含的信息却是最多的。

  • 使用ffprobe提取出IPB帧的时间:

  • 抽取IPB帧到jpg图片:

由于ffmpeg抽取帧并无法按照时间戳来命名,需要手动将ffprobe提取出来的帧时间与抽取帧的图片进行对应重命名。关键帧具体的定义和用途可以参考:https://link.zhihu.com/?target=https%3A//en.wikipedia.org/wiki/Key_frame

2. 抽取视频场景转换帧

在视频中可以按照视频的镜头切换可以将视频分为不同的场景(scene boundaries),为了直观感受可以观看下面一个视频。

http://www.scikit-video.org/stable/_static/scene_cuts.mp4

视频场景抽取算法一般是使用帧间的相似差异程度来衡量,如果视频帧大于某一个阈值则认为是一个新的场景,否则不是一个新的场景。在scikit-video中提供了颜色相似度和边缘相似度两种度量方式,思路非常简单:

https://github.com/scikit-video/scikit-video/blob/master/skvideo/measure/scene.py

但是在我自己试验的过程中发现scikit-video中的场景检测非常慢,一个视频需要几分钟才能计算得到结果。后来在阅读ffmpeg文档过程中发现,ffmpeg早就有场景检测的命令,而且速度飞快。

scikit-video的场景检测速度慢是以下原因:scikit-video中场景检测的实现方式是读取所有的视频帧,这个步骤非常耗时;而ffmpeg能够根据视频帧的压缩情况来选择性读取帧,速度就非常快了。但是scikit-video库还是很直观的,我也从库源代码学习到了很多。

如果ffmpeg有对应的功能命令,优先使用ffmpeg来完成。

3. 均匀抽帧

4. 抽取制定时间的帧

为什么上述两个命令时间差距这么大呢,也就是-i与-ss的位置换了一下。区别就是如果-ss在前面,则会使用关键帧信息来进行索引,则会非常快。

具体说明参考:https://trac.ffmpeg.org/wiki/Seeking

视频数据处理方法!关于开源软件FFmpeg视频抽帧的学习相关推荐

  1. 主要介绍当前主流的激光雷达数据处理库、开源软件、商业软件等

    1.主要介绍当前主流的激光雷达数据处理库.开源软件.商业软件等.  英文主页:  http://opentopo.sdsc.edu/tools/listTools 2.日期 工具名称 工具类型 关键词 ...

  2. 视频添加文字用什么软件,视频添加文字怎么弄

    随着plog.vlog等视频形式的兴起,视频添加文字变得越来越流行.与其选择插入音频解说,还不如加文字来得生动有趣.那么,视频添加文字用什么软件?视频添加文字怎么弄?接下来,本文会教大家使用一款简单好 ...

  3. Ununtu16.04系统下编译安装ffmpeg、抽帧和计算图片时间点

    ffmpeg是开源的.功能强大的视频.音频.图像处理工具,在最近的工作中,需要从视频中抽取图像,并准确计算每张图片对应在视频播放中的时间点.在网上找了一圈发现,所有的参考资料基本分为两种: 1.通过c ...

  4. lazarus视频控件linux,开源软件之Lazarus:国产操作系统下写个跨平台截屏录屏软件...

    之前的开源系列文章里,我们介绍了类Delphi的开源IDE软件Lazarus,简单地讲就是让你在免费IDE里用Pascal(几乎就是Delphi编程语言object Pascal了)语言编程写软件.而 ...

  5. android+高仿视频录制,高仿微信视频录制, 涂鸦水印添加, 基于 ffmpeg 视频编辑

    功能主要包含5点: 1.基于ffmpeg的视频拍摄及合成; 2.自定义拍摄按钮, 长按放大并且显示拍摄进度; 3.自定义view, 实现手绘涂鸦; 4.自定义可触摸旋转缩放位移的表情文字view; 5 ...

  6. 分割视频的方法分享,快速将视频分成几段

    我们在剪辑视频的时候想要将一个长视频分割成几个小视频片段,该怎么办呢?其实方法有很多,都在等待大家挖掘,今天小编也要给大家分享一个可以简单分割视频的操作! 大家先来看看用这个方法分割后的视频是什么样的 ...

  7. 钉钉视频下载方法地瓜网络钉钉视频下载器

    大家好,今天教给大家如何下载钉钉视频! 由于春节的原因,很多学生需要在家上网课,有些网课是管理员禁止群成员下载的,只能观看,不能下载,今天教给大家如何下载管理员禁止下载的钉钉视频! 首先我们在群直播回 ...

  8. Linux主机安全加固方法使用开源软件fail2ban防护主机

    目录 常见的三种加固措施 一.主机基础安全加固(方法一) 1.密码足够的复杂 2.修改sh默认端口号 3.禁止 root 远程登录 4.Linux主机黑白名单限制远程连接地址 5.服务器之间通过密钥免 ...

  9. 视频加配音用什么软件?视频配音软件大分享

    大家在剪辑视频,会不会给视频配音呢?有时候我们会想要自己来配音,但又害怕声音不够好听,这时候该怎么办呢?这种时候你就可以使用一些专业的配音软件,里面有丰富的音频素材可以让你实现给自己的视频配音,这样不 ...

最新文章

  1. SMRT测序技术及其在微生物研究中的应用
  2. Selenium2+python自动化7-xpath定位
  3. 孙正义辞任阿里董事 阿里:软银仍有权提名一名董事进董事会
  4. 12c r2单实例 静默安装软件
  5. Flash上传文件(结合asp.net) (转)
  6. 190412每日一句
  7. 王者荣耀scratch版
  8. Java核心技术 基础知识网盘下载
  9. L298N芯片驱动电机
  10. Camel可视化操作(结合Gooflow)
  11. 玄奥八字V5.6 爆破实例2
  12. ASUS TUF Gaming B460M PLUS+RX570+BCM94360CD黑苹果EFI引导文件
  13. three.js 05-01 之 PlaneGeometry 几何体
  14. 自己怎么做网站,个人做网站的步骤
  15. deepin升级Linux内核,深度 deepin 20.1 (1005)系统开启内测:升级至 Linux Kernel 5.8 稳定内核...
  16. coron 小娜_Win10小娜近乎报废!教你卸载毫无用处的Cortana
  17. jdk安装包解压后如何安装(jdk下载安装)
  18. SyntaxError: Non-UTF-8 code starting with '\xca' in file main.py on line 3, but no encoding declared
  19. python怎么统计多少字符_python统计中文字符数量的两种方法
  20. java对excel的操作

热门文章

  1. PHP实现队列的原理
  2. 正则表达式的基本入门
  3. Eclipse下修改工程名
  4. Swift学习笔记-协议(Protocols)
  5. (转)利用ArcScene进行三维地形模拟
  6. 根据总用量计算每种包装规格的购买量和总价
  7. Datawhale组队学习周报(第019周)
  8. LeetCode实战:存在重复元素
  9. 普诺飞思获创新工场新一轮投资,加速神经拟态视觉传感技术商业化
  10. 计算机视觉怎样实现自我超越?更大规模更精准的数据