首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mac端也可以做视频分帧啦!——性能测试视频分帧工具

一、当前现状背景      近期由于做了几个关于端外跳转到打车和检索页的性能优化项目,考虑到Mac端没有靠谱并且好用的视频分帧工具,于是决定自己基于ffmpeg写一个视频分帧的小工具,以便后续能够对于视频分帧性能测试场景有专属的测试工具...经过调研发现,Windows端大家都在用一个网上较多人使用的yyb_so_test的视频分帧小工具,而Mac端就没有找到类似的,下面我就自己使用的经验,给大家分享一下,我的Mac端使用的视频分帧小工具!...除去部分具备系统软件开发能力的大型公司(Microsoft、Apple等)以及某些著名的音视频技术提供商(Divx、Real等)提供的自有播放器之外,绝大部分第三方开发的播放器都离不开FFMpeg的支持,像Linux...1)缺少依赖库cv:全部依赖库:在本地通过命令下载安装依赖库pip3 install opencv-python,解决该问题:(2)运行权限问题,首次运行时Mac端会弹出类似的权限弹框,此时我们不要担心...7.拿到权限后,我们再次运行,看到这些打印就算是运行成功了;运行完成后,我们再去一级目录下查看分帧后的结果:打卡文件夹,查看视频分帧图片: 到这mac端的视频分帧工具就全部介绍完了,要是能够再分帧完成后把结果自动统计下来就更好了

30510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    视频帧里的I帧、P帧、B帧是什么?

    什么是I帧、P帧、B帧?I帧:intra picture,帧内编码帧。...I帧特点:1)I帧是一个全帧压缩编码帧;2)解码时仅用I帧的数据就可重构完整图像;3)I帧描述了图像背景和运动主体的详情;4)I帧不需要参考其他画面而生成;5)I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量...);6)I帧是帧组GOP的基础帧(第一帧),在一组GOP中只有一个I帧;7)I帧不需要考虑运动矢量;8)I帧所占数据的信息量比较大。...I帧或P帧;4)P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧;5)由于是差值传送,P帧的压缩比较高。...IDR帧也是I帧的一种,那么IDR帧与普通I帧有何区别呢?一个IDR帧之后的所有帧都不能引用该 IDR 帧之前的帧的内容;而对于普通的I帧,其后的P帧和B帧可以引用该普通I帧之前的其他I帧。

    45910

    【Linux网络编程】数据链路层 | MAC帧 | ARP协议

    以太网帧格式 源地址和目的地址是指网卡的硬件地址(也叫 MAC 地址), 长度是 48 位,是在网卡出厂时固化的; 帧协议类型字段有三种值,分别对应 IP、 ARP、 RARP; 帧末尾是 CRC 校验码...如何解包 以太网报头是一个固定的,前面14个字节去掉以及最后4个字节去掉就是数据内容 如何封装 直接加上对应的字段即可 如何分用 将有效载荷交给上层,以太网帧格式有一个类型字段,0800...交换机内部会记录两个区域的主机mac地址信息,这样可以实现一个大的碰撞域划分成两个小的碰撞域。 因此,交换机的作用是划分碰撞域,减少碰撞概率。...ARP协议 ARP 不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议 作用 ARP 协议建立了主机 IP 地址 和 MAC 地址 的映射关系 在网络通讯时,源主机的应用程序知道目的主机的...ARP协议工作流程 源主机发出 ARP 请求,询问“IP 地址是 192.168.0.1 的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填 FF:FF:FF:FF:FF:FF

    16810

    MAC地址_MAC地址格式_以太网的MAC帧_基础知识

    以太网的MAC帧引入:由于总线上使用的是广播信道,因此网卡在网络上每收到一个MAC帧,首先要用硬件检查MAC帧中的MAC地址.如果是发往本栈的帧,那么就收下,否则就丢弃....MAC帧的比特同步;第二个字段是帧开始定界符,表示后面的信息就是MAC帧2.目的地址和源地址都是6B,就是网卡的MAC地址3.类型:2B,指出数据域中携带的数据应交给哪个协议实体处理.4.数据:46B-...,算法采用32位CRC,注意不检验前导码.接收方可能收到的无效MAC帧包括以下几种:MAC帧的长度不是整数个字节通过MAC帧的FCS字段的值检测出帧有误码MAC帧的长度不在64~1518字节之间接收方收到无效的...网卡从网络上每收到一个无误码的帧,就检查帧首部中的目的MAC地址,按以下情况处理:- (1)如果目的MAC地址是广播地址(FF-FF-FF-FF-FF-FF),则接受该帧。...- (2)如果目的MAC地址与网卡上固化的全球单播MAC地址相同,则接受该帧- (3)如果目的MAC地址是网卡支持的多播地址,则接受该帧。- (4)除上述(1)、(2)和(3)情况外,丢弃该帧。

    68440

    【音视频原理】视频帧的 I P B 帧概念 ① ( 码率 帧率 分辨率 视频信息 | I 帧 - 内部编码帧 | I 帧 - 关键帧压缩法 | P 帧 - 前向预测帧 )

    of Pictures ) 的 第一帧 , 画面组 内 还有 P 帧 和 B 帧 ; I 帧 是 P 帧 和 B 帧 的 参考帧 ; I 帧 的 质量 决定了 同组 P 帧 和 B 帧 解码后的 一系列...Frames ) " , 是 视频编码 中的一种 帧类型 , P 帧 采用 前向预测编码方式 , 根据 本帧 ( P 帧 ) 与 相邻的 前一帧 ( I 帧 或 P 帧 ) 的 不同点来压缩本帧数据...I 帧 才能完成解码 ; P 帧 只记录了 与 I 帧 不同的内容 , 也就是 只有 与 I 帧的 差异部分 , 相同的部分没有 ; 解码 P 帧 , 必须 先解码 I 帧 ; I 帧 解码完成后 ,...将 I 帧 与 P 帧 合并 , 才能得到完整的 P 帧 ; 3、P 帧顺序不能颠倒 P 帧 的 压缩效率较高 , 因为它 只 包含了 与参考帧 I 帧 的差异数据 , 而不是完整的 画面帧数据 ; 由于...P 帧 依赖于前面的 I 帧 或 P 帧 , 因此在视频流中 , P帧必须按照正确的顺序进行传输和解码 , 否则会导致图像出现错误 ; 下图中 , P1 帧 解码 依赖于 I 帧 , P2 帧解码 依赖于

    1.3K10

    交换技术:MAC地址、广播域、帧交换

    MAC泛洪 泛洪的目的是学习不在 MAC 地址表中的目标服务器的 MAC 地址,交换机会将帧泛洪或复制到所有端口,除了学习帧的位置,任何连接到交换机的设备都将读取帧目标 MAC 地址并丢弃它,除非有匹配项...帧切换操作 交换机检查目标 MAC 地址的帧头并查找 MAC 地址表以做出转发决定,然后将帧从与主机连接的目标 MAC 地址关联的交换机端口转发出去。...交换机使用帧中的 MAC 地址来做出转发决策。 交换机转发帧并且不帧重写 MAC 地址。...然后交换机会将源 MAC 地址 (host-2) 添加到 MAC 表中,交换机将单播泛洪(MAC 学习)帧从除学习帧的端口 (Gi1/2) 之外的所有端口传出,该广播帧仅包含目标 MAC 地址,具有匹配目标...MAC 地址的服务器 1 接收帧并向交换机发送回复帧,交换机使用 server-1 的 MAC 地址更新 MAC 地址表。

    1.7K10

    LoRaWAN协议解析 第4章 MAC帧格式

    本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/ 2 梳理解析 LoRaWAN第4章,主要讲述了MAC帧格式,对所有涉及的字段都做了解释。...可同时携带数据和命令的MAC帧 一般来说,应用除了数据,出于管理需要,肯定还会涉及命令。比如基站要查询节点状态,或者节点要请求变更信道等。...所以LoRaWAN协议设计上利用FOpts把数据和命令揉在一个MAC帧里,这样可以提高交互效率,有效地降低功耗。这在寸土寸金,哦不,寸库仑(电量单位)寸金的物联网应用中,是一个很有必要的设计。...3 源码解析 这章的处理基本都在 \src\mac\LoRaMac.c 中,下面按照MAC帧格式的字段逐个解析下。...,完成整个MAC层的数据组帧。

    1.1K30

    Linux网络-MAC协议

    Linux网络-MAC协议 零、前言 一、数据链路层 二、以太网协议 1、认识以太网 2、以太网原理 3、以太网格式 4、MAC地址 5、认识MTU 三、ARP协议 四、RARP协议 零、前言 本章主要讲解...Linux网络中的数据链路层-以太网协议 一、数据链路层 示图: 数据传输大部分是跨网段进行的,而多个主机共同组成一个网段,不同的网段通过路由器连接(路由器同样也是主机),所以数据跨网段传输实质就是数据在主机间传输...地址), 长度是48位,是在网卡出厂时固化的 帧协议类型字段有三种值,分别对应IP、ARP、RARP; 帧末尾是CRC校验码 注:收到MAC帧后,对收到的MAC帧进行CRC校验,如果校验失败则说明数据发送过程中产生了碰撞...MAC帧如何将报头与有效载荷进行分离: 以太网MAC帧的帧头和帧尾都是固定长度的,因此当底层收到一个MAC帧后,直接提取出MAC帧当中固定长度的帧头和帧尾,此时剩下的就是有效载荷了 MAC帧如何决定将有效载荷交付...: 在MAC帧的帧头当中有2个字节的类型字段,因此在分离出报头和有效载荷后,根据该字段将有效载荷交付给对应的上层协议即可 4、MAC地址 MAC地址: MAC地址用来识别数据链路层中相连的节点 长度为

    2.5K10

    LoRaWAN协议中文版 第4章 MAC帧格式

    载荷: FHDR FPort FRMPayload 图7.MAC载荷结构 FHDR: DevAddr FCtrl FCnt FOpts 图8.帧头结构 图9.LoRa帧格式元素(即图5~8)...4.2 MAC头(MHDR字段) Bit# 7..5 4..2 1..0 MHDR bits MType RFU Major MAC头中指定了消息类型(MType)和帧编码所遵循的LoRaWAN规范的主版本号...4.3 MAC载荷(MACPayload) MAC载荷,也就是所谓的“数据帧”,包含:帧头(FHDR)、端口(FPort)以及帧载荷(FRMPayload),其中端口和帧载荷是可选的。...4.3.1 帧头(FHDR) FHDR是由终端短地址(DevAddr)、1字节帧控制字节(FCtrl)、2字节帧计数器(FCnt)和用来传输MAC命令的帧选项(FOpts,最多15个字节)组成。...4.3.2 端口字段(FPort) 如果帧载荷字段不为空,端口字段必须体现出来。端口字段有体现时,若FPort的值为0表示FRMPayload只包含了MAC命令;具体见章节4.4中的MAC命令。

    1.8K40

    Deploy frp on mac and linux

    在 Mac 和 Linux 上部署 frp, 实现内网穿透 在 Mac 和 Linux 上部署 frp, 来实现内网穿透, 使得外网可以访问内网的服务, 例如家里的 NAS, 服务器等等....如下图: 其中frp_0.x.x_darwin_amd64.tar.gz是 Mac 版本的客户端程序, frp_0.x.x_linux_amd64.tar.gz是 Linux 版本的客户端程序....解压后包含以下文件: frpc 客户端程序 frps 服务端程序 frps.toml 服务端配置文件 frpc.toml 客户端配置文件 LICENSE 许可证文件 服务端: 具有公网 IP 的Linux.../frpc -c frpc.toml 启动客户端 分别配置守护进程 服务端: Linux 可以完全参考官方文档, 使用systemd方便地控制 frps 服务端的启动、停止、配置后台运行以及开机自启动...客户端: Mac MAC上可以使用launchd来配置守护进程, 使得 frpc 客户端程序在后台运行.

    11410

    HCIE | 以太网数据帧、MAC地址介绍

    2020 以太网数据帧、MAC YuLong XiaoZhan 玉 龙 小 栈 以太网链路传输的数据包称做以太帧,或者以太网数据帧。...二层交换机设备维护CAM表,而CAM表中存放的是MAC地址。今天给大家介绍一下以太网数据帧格式和MAC地址格式。 以太网数据帧 以太网II帧格式 ?...Ethernet_II 帧类型值大于等于1536 (0x0600)。 以太网数据帧的长度在64-1518字节之间。 802.3帧格式 ?...协议 5、0x8864表示该帧的上层封装的是PPPoE协议 6、0x8809表示帧的上层封装的是LACP协议 二层MAC地址 定义: 所有遵循IEEE802标准的网卡都必须要有一个MAC地址(Serial...由于数据封装成帧需要封装MAC地址,当数据帧被路由器转发到其他广播域时会对数据帧中的源目MAC地址进行重复封装,所以只要重复的MAC地址不在同一个广播域就不会出现问题。

    3.9K31

    Easy Tech:什么是I帧、P帧和B帧?

    I帧、P帧和B帧 Easy-Tech #002# 在本篇文章中,我们将学习I帧、P帧和B帧的工作原理以及它们的用途。 好,我们先从现代视频压缩中最基本的概念开始——帧内预测和帧间预测。...现在,看完对帧内预测和帧间预测的快速介绍,让我们来学习I帧、P帧和B帧吧! 什么是I帧?...想要理解B帧的作用,我们需要先理解呈现/显示顺序和解码顺序的概念。 以I帧和P帧为例。如果你只使用这两种类型的帧,那么每一帧要么参考自身(I 帧),要么参考前一帧(P 帧)。...参考B帧和非参考B帧 我们在上文中学过,B帧可以参考两帧或者多帧,通常,(根据其位置)一帧在前,一帧在后。我们也已知道,I帧不参考任何帧,P帧只参考前面的帧。...那么问题来了——任何帧都能使用B帧作为它的参考帧吗? 答案是肯定的。 如果B帧可以作为参考帧,它就被称为参考B帧。 如果B帧不用作参考帧,它便被称为非参考B帧。

    3.4K20

    视频中的 I 帧,P 帧,B 帧

    由于压缩处理的方式不同,视频中的画面帧就分为了不同的类别,其中包括:I 帧、P 帧、B 帧。I 帧是内部编码帧(也称为关键帧),P 帧是前向预测帧(前向参考帧),B 帧是双向内插帧(双向参考帧)。...简单地讲,I 帧是一个完整的画面,而 P 帧和 B 帧记录的是相对于 I 帧的变化。如果没有 I 帧,P 帧和 B 帧就无法解码。...I 帧 I 帧(Intra coded frames):I 帧图像采用帧内编码方式,即只利用了单帧图像内的空间相关性,而没有利用时间相关性。...由于 I 帧不依赖其它帧,所以是随机存取的入点,同时是解码的基准帧。 I 帧主要用于视频播放的初始化,I 帧图像的压缩倍数相对较低。I 帧图像是周期性出现在图像序列中的,出现频率可由编码器选择。...P 帧是差别帧,P 帧没有完整画面数据,只有与前一帧的画面差别的数据。 若 P 帧丢失了,则视频画面会出现花屏、马赛克等现象。

    3.7K20

    UDP的FPGA实现(中) | UDP段、IP包、MAC帧结构

    三、数据链路层(MAC帧) ? MAC帧是数据帧的一种,所谓数据帧,就是数据链路层的协议数据单元,包括三部分:帧头、数据部分、帧尾。...前导码和帧起始符不算MAC帧组成,所以MAC帧的固定长度为6+6+2+4=18。 MAC帧的帧头包括三个字段,前两个字段分别为6字节长的目的地址字段和源地址字段,第三个字段为2字节的类型/长度字段。...因为以太网是变长的,所以每个帧之间需要前导码来确认。字段长度为:7个字节。 帧开始符(SFD) 不算MAC帧成分,8’hd5:表明下一字段为为目的MAC字段。...目的MAC地址: 长度为:6个字节,指明帧的接受者。(board:00_0a_35_10_fe_c0) 源MAC地址: 长度为6个字节,指明帧的发送者。...最小帧长64B – MAC帧18B的首部地址和尾部就得出数据字段的最小长度。

    3.3K30

    Linux :MAC 地址克隆方法

    一般大部分人仅知道如何对Windows系统的网卡进行克隆,而本文将向大家展示在 Linux 上进行 MAC 地址克隆的方法。...一般大部分人仅知道如何对 Windows 系统的网卡进行克隆,而本文将向大家展示在 Linux 上进行 MAC 地址克隆的方法。 ?...虽然 MAC 地址由厂商指定,但用户可以改变它,这就是传说中的“MAC 地址欺骗”。本文将向大家展示如何在 Linux 上玩 MAC 地址欺骗。 为什么要玩 MAC 地址欺骗? 想要理由?...你可以在 Linux 运行的时候改变 MAC 地址。需要注意的是当 MAC 地址转换的那一会时间,你的网络会掉线。当电脑重启时 MAC 地址又会变回原来的。下面介绍几种方法来改变你的 MAC 地址。...00:01 fi $ sudo chmod 755 /etc/network/if-up.d/changemac ---- via: http://xmodulo.com/2014/02/spoof-mac-address-network-interface-linux.html

    8.6K50

    音频帧、视频帧及其同步

    今天介绍下音频帧、视频帧的主要参数和分析方法,以及音视频的同步等,主要内容如下: 音频帧 视频帧 PTS与DTS 音视频同步 音频帧 音频帧的概念没有视频帧那么清晰,几乎所有视频编码格式都可以简单的认为一帧就是编码后的一副图像...帧大小 帧大小指每帧的采样数,这个值的恒定的,具体如下: ?...FrameSize 帧长度 帧长度指压缩时每一帧的长度,包括帧头及填充位,因为有填充和比特率变换,所以帧长度不是恒定的,这个填充位具体从帧头中第 9 位获取,如果是 0 则无填充位,如果是 1 则有填充位...P 帧:前向预测帧,表示与前一帧(I 或 P 帧)之间的差别,需要参考前面的 I 帧或 P 帧才能生成完整的图片,相较 I 帧更具压缩性,节省了空间,所以 P 帧也成为增量帧。...B 帧:双向预测编码帧,表示与前后两帧的差异,需要参考前面的 I 帧或 P 帧及后面的 P 帧来生成一张完成的图片,压缩性最大。

    4.2K10

    视频编码的三种帧:I帧,B帧,P帧

    在视频压缩编码中,所有的帧被分成了三个种类,I帧,B帧和P帧,其实就是Intra-Prediction帧,Bi-prediction帧和Prediction帧。...顾名思义,就是帧内预测帧,双向预测帧以及(单向)预测帧。...(inter prediction),帧内预测的话就是在找参照块的时候,只在当前帧内寻找;而帧间预测的话,找参照块的时候会在相邻的帧之间去找相似块。...因此,基于上述所说, 如果说当前帧是只在当前帧内寻找参照块的话,那么该帧就是I帧 如果在已经编码的帧里面寻找参照块的话,那么它是P帧 如果既在已编码的帧里去寻找参照块,又在未来将要被编码的帧里去寻找参照块的话...,那么该帧就是B帧。

    2.3K20
    领券