当前位置: 首页>編程日記>正文

无限提高视频fps

无限提高视频fps

目录

  • 加速还是补帧?
  • opencv脚本
  • 使用软件
    • 剪辑工具
      • 格式工厂
      • PR、AE
    • oCam录屏
    • 基于AI算法
      • DAIN_APP_Alpha0.40
      • SVFI.2.1
  • 结语

加速还是补帧?

最近做项目遇到一个需求,需要对AI推理卡的性能做一个测试,主要是想通过流水线(线程并发)的形式,对视频做目标检测。想要提高视频的输入速率,看看推理后实时输出的速率的变化,进而测一下硬件芯片的运算极限。

一般常见的视频都在25-30的范围,一些高清或者慢镜头的特殊视频,会有较高一些的帧率,如60帧。但是,如果想无限制提高视频帧率,有没有办法呢?

我对视频帧率这方面的知识了解不多,查找一些资料后发现,其实提高帧率的方式应该是在原有视频中插入一些帧,结果就是视频的时长不变,但是视频的质量变高了(每秒钟出现的画面数变多了)。

但是有些所谓提高帧率的方式,是压缩了视频时长,也就是没有改变视频的帧数,仅仅是缩短了帧与帧之间的时间间隔。

补帧本质上是视频总帧数的增加,而不是视频时长的缩短。

理解这些后,在提高视频帧率的道路上也许能少走些弯路。。

opencv脚本

在网上找到了一些基于opencv的所谓提高视频帧率的方法,有c++版本的,也有python版本的

大致的思想是:把原视频用opencv读出来,然后再按照设定好的帧率一帧一帧的写入到新视频中。

这是我找到的一版python的转换脚本:https://blog.csdn.net/HW140701/article/details/103495943

实测可以使用。我把25帧的视频作为输入,可以提高到设定好的帧率。

但是存在问题:

  1. 查看处理后的视频属性,确实升高到了对应的帧率,视频可以正常播放。但是会发现视频的时间缩短了,也就是把视频原有的每一帧之间的时间间隔变小了。简单说就是倍速播放了。
  2. 尝试把新视频放到服务器进行性能测试,但悲伤的是视频无法正常解码。找了一些帖子还是没有找到问题原因,因为服务器上的推理环境是c++版本的(opencv版本等问题),并且视频的解码和处理细节是相应硬件驱动提供的,感觉改不动了,需要另找新方法。

其实这里的脚本是在不改变视频信息的基础上做的提高帧率,排除后续视频解码的问题,这本质上是一种加速视频的手段。

使用软件

在脚本生成的视频解码失败后,又找到了若干视频剪辑、录制的软件,最终也算是找到了最好的方法。

这些软件本质上是采用补帧的方法,对视频的质量进行了优化,因此需要耗费较多的计算资源(有些需要显卡加速,否则会非常耗时)。

剪辑工具

格式工厂

最先想到了格式工厂,导入原视频,在导出的配置中,有修改视频帧率的选项,但是发现只能修改为特定的帧率,并且最高是60fps。不符合要求。

PR、AE

又尝试了PR、AE这两个做视频比较专业的软件,导出时候的配置最高也是60fps。

这里在找资料时候发现,这两款软件在对导入视频进行播放时,可以选择对视频序列进行设置,也就是可以让视频用一个自定义的帧率播放,这其实上也是倍速播放,并且没办法自定义帧率导出。不符合要求。

oCam录屏

这是原来本科时候经常用的一款录屏工具,非常的小,并且不用安装,解压就能用,如果有需求推荐使用。

惊喜的发现,录制视频的选项中,可以将最高帧率设置成144fps,这对于高帧率的要求算是基本达到了,我尝试着用录屏软件录制了原本25fps的视频,录制后的视频是144fps,并且服务器上解码没有问题,可以用来测试性能了。

处理后视频的时长没有变化,但是视频每秒画面刷新次数变多了(肉眼并不能看出来)。

但是要想无限提高帧率,可以做到吗?

基于AI算法

后来了解到视频补帧,需要借助一些AI算法,因为找到了基于算法的两款软件。

DAIN_APP_Alpha0.40

DAIN (Depth-Aware Video Frame Interpolation)

这款软件用到的算法来自论文 https://arxiv.org/abs/1904.00830

后来做成软件,不断更新,已经到了0.40版本,官网好像已经到了0.48,但是没有找到资源。

DAIN_APP_Alpha0.40
链接:https://pan.baidu.com/s/1d4GRkUrPUmMnK2wAUM5GkQ
提取码:q4l5

在网上找了一下教程,发现不同版本间区别还挺大的,一些设置选项什么的。

基本设置包括:

输入输出文件
在这里插入图片描述
设置帧率
在这里插入图片描述
选择显卡
在这里插入图片描述
其他都选默认即可,如果有特殊要求,可以再进行其他设置。点击最下边的Perform all steps,开始补帧

这个过程可以说是非常漫长,如果没有显卡建议不要使用(1分钟的视频 3060显卡 需要2小时)

不知道是设置的问题,还是视频本身的原因,最后导出的视频中,补出来的帧都非常的亮,和原来的帧看不出过渡的效果,最终的效果非常的差。但是看到网上有不少教程都没有提最终的效果如何,我也不太清楚是哪里出了问题。

SVFI.2.1

视频帧插值(VFI) 也是在论文中提出的方法:Huang, Zhewei, et al. “RIFE: Real-Time Intermediate Flow Estimation for Video Frame Interpolation.” arXiv preprint arXiv:2011.06294 (2020)

这款软件是基于该算法开发的,优点是要比DAIN_APP快了好多。这是目前较新的版本。

SVFI.2.1
链接:https://pan.baidu.com/s/1PJT7LDCZyKpVNQ63MAFLWg
提取码:5rza

网上有相关的教程,详细可以参考 https://www.bilibili.com/video/BV1uo4y1d7Cr

基本设置

选择输入输出文件、补帧倍率
在这里插入图片描述
点击一键补帧,出现报错,原因是显存不够了,我用的原视频分辨率是1280*720,需要把输出时候的降一点。

在这里插入图片描述
这里我改成了960*480
特别注意一下,他这里分辨率的乘号用的x,我找了一下英文的乘号没有这种写法,于是用中文的乘号 "×"试了一下,报错了
于是我就用了字母x代替了一下,结果可以了。

速度明显要快很多,大概10分钟就处理结束了(看了一下任务管理器,确实很吃显卡,显存基本上全程跑满),最终的视频可以正常播放,并且服务器上的测试也没有问题。

后续测试了一下导出400fps、800fps的视频,也都没有问题。

结语

提高视频fps有两个思路:

  1. 视频加速。保持原有视频的总帧数不变,缩短每一帧之间的时间间隔,达到提高fps的目的。优点是方便快捷,不需要算法支持。缺点是生成视频解码可能会有问题,并且没有优化视频的作用。
  2. 视频补帧。不改变视频的时长,使用相关算法为原视频补充更多的帧,达到提高fps的目的。优点是可以提高视频的质量,并且不会影响视频解码。缺点是相对来说耗时较长,需要显卡支持,并且生成的视频占用的存储空间会变大。

如果有显卡条件,推荐SVFI.2.1,目前来看算是可以无限提高视频fps的工具了。


https://www.fengoutiyan.com/post/17559.html

相关文章:

  • fps低和什么有关
  • 69fps
  • 如何提高视频帧率
  • 联盟fps怎么提高
  • fps无限
  • lol最高fps
  • 无限法则掉帧严重
  • 电脑怎么提高fps值
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機