视频逐帧播放查看神器-android闪黑闪白等分析辅助工具

背景

刚好有学员朋友在群里问道有没有什么播放软件可以实现对视频的逐帧即一帧一帧播放。在做android系统开发时候经常会偶尔遇到有时候是闪黑,闪白等一瞬间现象的问题。这类问题要分析的话就不得不需要对设备录屏,然后对录屏进行逐帧播放查看现象,看看到底是怎么回事,比如闪黑,闪白看肯定就是中间有一帧黑了,或者白了,导致前后帧的视觉差异太大,但是这个又是一瞬间的现象,导致给人就是闪黑,闪白现象。
可能很多人说直接上马哥使用的winscope不就行了么,但是很多时候可能是个偶现问题,你不一定可以复现,不一定有winscope等。所以就不得不先拿录制的视频来进行分析,分析就需要对视频进行逐帧进行播放,那么下面马哥就给大家推荐几个工作中可以逐帧播放的视频播放器。

VLC播放器

这个播放器只要做音视频开发的一般都知道哈,但是很少人可能知道VCL其实还支持逐帧播放,具体操作如下
在这里插入图片描述点击 “工具”进入“自定义界面”
在这里插入图片描述
在这里插入图片描述
只要点击逐帧播放这个按钮就可以实现对视频一帧一帧播放。

QuickTime播放器

在这里插入图片描述在这里插入图片描述

这个逐帧播放使用很简单,只需要在播放解码键盘上向左向右按键既可以

ffplay:

这个是个完全命令行的播放器,不可以鼠标操作,具体逐帧播放其实是有按键可以控制的,这个按键就是“s”这个按键

While playing:
q, ESC              quit
f                   toggle full screen
p, SPC              pause
m                   toggle mute
9, 0                decrease and increase volume respectively
/, *                decrease and increase volume respectively
a                   cycle audio channel in the current program
v                   cycle video channel
t                   cycle subtitle channel in the current program
c                   cycle program
w                   cycle video filters or show modes
s                   activate frame-step mode
left/right          seek backward/forward 10 seconds or to custom interval if -seek_interval is set
down/up             seek backward/forward 1 minute
page down/page up   seek backward/forward 10 minutes
right mouse click   seek to percentage in file corresponding to fraction of width
left double-click   toggle full screen

就是这里的
s activate frame-step mode
可以一帧一帧问步伐进行播放

具体详情试看方式:
投屏专题部分:
https://mp.weixin.qq.com/s/IGm6VHMiAOPejC_H3N_SNg

更多framework详细代码和资料参考如下链接

hal+perfetto+surfaceflinger
https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg
在这里插入图片描述

其他课程七件套专题:在这里插入图片描述
点击这里
https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw

视频试看:
https://www.bilibili.com/video/BV1wc41117L4/

更多framework假威风耗:androidframework007

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

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

相关文章

2020真题-架构师案例(五)

问题1(13分) 针对该系统的功能,孪工建议采用管道-过滤器(pipe and filter)的架构风格,而王工则建议采用仓库(reposilory)架构风格。满指出该系统更适合采用哪种架构风格&#xff0c…

CentOS 7 + DockerCompose 离线安装达梦数据库8.0

# DB_NAMEDMDB:设置数据库名称 # INSTANCE_NAMEDBSERVER:设置数据库实例名称 # PAGE_SIZE32:设置数据库页面大小为 32 KB # EXTENT_SIZE32:设置数据库扩展大小为 32 个页面 # CASE_SENSITIVEy:设置数据库区分大小写 # …

【C++题解】1581. 马里奥的银币1

问题:1581. 马里奥的银币1 类型:数组找数 题目描述: 马里奥有很多银币,有一天他得到了一张魔法卡,只要使用这张魔法卡,就可以使得他的银币里面的最大的银币金额变得更大。如果他最大的银币是偶数的金额&a…

C# 西门子Seven读取,写入数据

读取数据要知道的: 1.plc存储区 2 数据存储在哪个地址上 M区:00 03 20 3 读取数据的长度 ①0x83 M存储区间 ②0x84 DB块 ③0x81 I存储空间 ④0x82 Q 输出存储空间 Socket socket; socket三次握手 1.连接 if(socket!null &&…

获取正版免费的xshell

1,安装 xshell官网 打开xshell官网站点:NetSarang Homepage CN - NetSarang Website 请认准,百度的xshell中文网都是要收费的 1,点击 xshell的下载 点击进入xshell的下载页面,或者直接访问所有下载 - NetSarang Webs…

实验2-4-2 求N分之一序列前N项和**注意小细节

//实验2-4-2 求N分之一序列前N项和//计算序列 1 1/2 1/3 ... 的前N项之和。#include<stdio.h> #include<math.h> int main(){int N;double sum0.0;scanf("%d",&N);for(int a1;a<N;a)sum(1.0/a);//这里必须是1.0 不可以是1&#xff01;&#x…

C# 归并排序

栏目总目录 概念 归并排序是一种分而治之的排序算法。它将一个大数组分成两个小数组&#xff0c;递归地对这两个小数组进行排序&#xff0c;然后将排序好的小数组合并成一个有序的大数组。这个过程一直递归进行&#xff0c;直到数组被拆分成只有一个元素的数组&#xff08;自然…

VirtualBox创建共享磁盘

VirtualBox创建共享磁盘 目录 VirtualBox创建共享磁盘1、划分共享磁盘1.1、【管理】->【工具】->【虚拟介质管理】1.2、【创建】->【VDI&#xff08;VirtualBox 磁盘映像&#xff09;】->【下一步】1.3、【预先分配全部空间】->【下一步】1.4、【分配大小】->…

网络协议二 : 使用Cisco Packet Traceer工具模拟网络环境,集线器,网桥,交换机,路由器,IP,同一网段

1. 安装 Cisco Packet Tracer baidu 网盘地址&#xff0c;感谢大神分享 安装&#xff0c;破解&#xff0c;中文化&#xff0c;都有说明&#xff0c;建议使用7.x的那个版本&#xff0c;感觉比8.x的翻译要完整一点 https://pan.baidu.com/s/18iWBOfhJJRhqgQqdNQcfMQ?pwddcch#…

什么是技术作家风格指南?

技术写作风格指南旨在提供必要的格式风格&#xff0c;以帮助技术作家为读者创建引人入胜且一致的内容。然而&#xff0c;技术写作与普通的自由写作有很大不同。目的是将复杂的技术主题分解为易于理解的内容&#xff0c;以帮助读者了解如何使用产品或服务。 在本文中&#xff0…

salesforce 当 opportunity 的关联对象存在的话,如何将 currency 字段设置为不可修改

创建一个触发器&#xff1a; trigger OpportunityTrigger on Opportunity (before update) {for (Opportunity opp : Trigger.new) {if (opp.CurrencyIsoCode ! Trigger.oldMap.get(opp.Id).CurrencyIsoCode) {// 检查关联对象是否存在&#xff0c;假设关联对象是CustomObject…

Ubuntu系统如何快速访问github

ubuntu系统下&#xff0c;常常因为国内网络原因无法访问github官网或者也无法使用使用git clone指令&#xff0c;搭建梯子又过于复杂&#xff0c;可使用修改hosts文件&#xff0c;添加IP地址的方法改进。 修改Hosts文件&#xff1a; 1.打开DNS查询网站&#xff1a;DNS查询。 …

FreeModbus学习——eMBInit初始化

FreeModbus版本&#xff1a;1.6 在mb.c文件中 先看一下静态变量的定义 /* ----------------------- Static variables ---------------------------------*/static UCHAR ucMBAddress; static eMBMode eMBCurrentMode;ucMBAddress是从机地址&#xff0c;eMBCurrentMode是M…

【大数据】StarRocks的同步物化视图怎么用呢

同步物化视图认识 StarRocks 中的同步物化视图&#xff0c;是对于基表的数据变更自动同步更新到物化视图中&#xff0c;且无需手动调用刷新命令。目前仅能基于 Default Catalog 中的单个基表创建&#xff0c;是一种特殊的查询加速索引。同步物化视图的管理成本和更新成本都比较…

C++ 八股(2)

1.函数调用的参数是以什么顺序压栈的&#xff0c;为什么&#xff1f; 从右向左压栈的。因为C, C支持可变参函数。 可变参函数就是参数个数可变的函数&#xff0c;如printf()就是可变参函数 void func(int a,...){} 2.有一个函数 在main函数中通过&#xff1a;string s fun…

焦化超低排放解决方案

在环保政策日益严苛与可持续发展理念深入人心的当下&#xff0c;朗观视觉小编认为焦化行业作为传统重工业的重要组成部分&#xff0c;正经历着一场前所未有的绿色变革。其中&#xff0c;“焦化超低排放”不仅是对环境保护的积极响应&#xff0c;更是行业转型升级、实现高质量发…

【开发问题记录】启动某个微服务时无法连接到seata(seata启动或配置异常)

问题记录 一、问题描述1.1 问题复现1.1.1 将Linux中的部分微服务启动1.1.2 在本地启动当时出错的服务 1.2 解决思路1.2.1 Nacos中seata相关的信息1.2.2 Linux中seata相关的信息 二、问题解决2.1 seata的配置错误2.1.1 Nacos中seata的配置问题2.1.2 命名空间问题的发现 2.2 网络…

ChatGPT:ThreadPoolTaskExecutor 定义在 controller 类里面和定义在 controller 的方法里面有什么区别

ChatGPT&#xff1a;ThreadPoolTaskExecutor 定义在 controller 类里面和定义在 controller 的方法里面有什么区别 在 Spring Boot 应用中&#xff0c;ThreadPoolTaskExecutor 是一种用于管理线程池的执行器&#xff0c;通常用于异步任务的执行。将 ThreadPoolTaskExecutor 定义…

wpf基础

在 WPF (Windows Presentation Foundation) 中&#xff0c;Style 是一种强大的资源&#xff0c;允许你定义一组属性值&#xff0c;这些值可以被多个控件实例共享。使用 Style 可以减少重复的 XAML 代码&#xff0c;并且使得 UI 的一致性和可维护性得到提高。 以下是一些 Style…

SQL与NoSQL的区别

SQL&#xff08;关系型数据库&#xff09; 数据结构:基于表格的结构化数据模型&#xff0c;遵循关系代数原则。每个表有固定的模式&#xff0c;包含列和行&#xff0c;且列具有预定义的数据类型。数据关系:支持复杂的关系表达式和JOIN操作&#xff0c;实现多个表之间的关联和引…