Chrome浏览器中的视频解码硬件加速

Google Chrome version history 可以知道,2011 年 3 月 发布的 10.0.648 版本的 Chrome 浏览器就已经支持视频的硬件加速能力。从 chromium/chrome 88 开始,视频的硬件加速已经成为默认配置

即便如此,因为视频的硬件解码需要 GPU 的特殊支持,而目前的视频编解码标准又比较丰富,我们如何判断 Chrome 在解码视频的时候是否启用了硬件加速呢?

阅读更多...

在解决问题之前首先要正确的定义问题

多年以前,我阅读了一本至今都让我受益匪浅的书:《你的灯亮着吗?》。工作中,我总会按照书中的内容来训练自己解决工作中遇到的问题。作为一名测试开发工程师,在定位 BUG 时,我也会用到该书中介绍的问题解决思维模式。

在这本书的第一章「这是谁的问题」中提到:

初出茅庐的问题解决者总是在还没有定义好问题的时候就仓促的给出解决方案。迫于外界环境的压力,经验丰富的问题解决者有时也耐不住性子。在这种情况下,尽管他们能找到很多方法来解决问题,但是不一定对症。

我们一直在孜孜不倦的追求解决问题的方法、策略、妙招,却从来没有仔细想过,问题究竟是什么?

阅读更多...

如何阅读并使用开源项目

我会经常浏览并借鉴很多开源项目的代码来完成自己的工作,有很多时候这种方法让我的工作效率非常高。阅读并借鉴开源项目的成果,让我得以站在巨人的肩膀上,使得我可以更高效的工作。

不知道你也是否和我一样?如果你也和我一样,那么我们是否思考过?我们在引用别人的代码完成自己的项目时,我们的项目是否变成了一个如下图所示的四不像呢?

阅读更多...

用 FFmpeg 把以秒为周期的帧序号信息写入到视频

利用 FFmpeg 的 drawtext 滤镜,我们可以把特定的文本信息绘制于视频之上。FFmpeg 的 drawtext 滤镜可以绘制的文本信息可以参见文档 Text expansion 中的描述。例如,我们可以把视频的帧号信息描绘在视频上:

1
$ ffmpeg -i test.mp4 -vf drawtext=text=%{n}:x=50:y=50 -y output.mp4

有时候,我们想绘制一些特殊的内容,比如:当前帧是每秒中的第几帧?这是一件有趣的事情,但是 drawtext 却没办法支持这种内容的绘制。在大多数场景下,我们几乎用户到这种特殊的功能,但是,如果遇到了,我们如何解决呢?

阅读更多...

视频压缩标准发展简史

多年以来,人们设计出许多不同的算法来压缩视频。视频压缩虽然听起来是一个很现代的词,但其实它从模拟视频开始,已经有很长的历史了。在本篇文章中,我会向大家一一介绍视频压缩史上的里程碑事件,正是这些事件的发生才有了今天的视频压缩。从过去到现在,各类视频压缩方法由最初的概念最终演化成现今的标准。很多压缩标准今天还在使用,人们也一直在继续开发和完善新的标准。[1]

本文仅仅是对文献[1:1]的进一步整理,用时间轴的形式把视频压缩算法的演进历程更好的表现出来。

帧间压缩首次出现

英国的 R.D. Kell 提出将帧间压缩用于模拟视频,这一概念随后便延续下来并应用在今天的数字视频上。

1929

差分脉冲编码调制

阅读更多...

GraphQL 实践

纸上得来终觉浅,绝知此事要躬行。

GraphQL 初探一文中,对 GraphQL 进行了初步的介绍和分析。在对 GraphQL 有了一定认识之后,总想着能在实践中真正的体验一下 GraphQL。实践是检验真理的唯一标准嘛,与其轻信与网络上的各种对比分析,倒不如真正的去体验一下。

恰好近期有一个小型的项目需要优化,于是就在该小型项目基础上实践了 GraphQL。之前,该项目是基于 django 框架开发的 REST API,此次实践,采用 Graphene-Django 为该项目增加了对应的 GraphQL API。

阅读更多...

GraphQL 初探

早在 2019 年的时候,我在 InfoQ 上读到了一篇携程介绍其关于 GraphQL 探索的文章:全面解析 GraphQL,携程微服务背景下的前后端数据交互方案。这是我第一次接触到 GraphQL 的概念,当时并没有做深入的了解和学习,后来,在工作中,这个概念也在脑海中慢慢的淡化了。

今年 3 月份的时候,我在 InfoQ 上读到了爱奇艺关于 GraphQL 落地的文章:减少重复开发,GraphQL 在低代码平台如何落地?。刚开始觉得这个概念似曾相识,于是就搜索了一下,然后勾起了初次听到 GraphQL 的记忆。接下来,我在 InfoQ 上搜索了和 GraphQL 相关的内容,才发现原来有很多文章已经在介绍 GraphQL。同时,我在 GitHub 的文档中发现 GitHub 也提供了 GraphQL API 文档,技术的敏感性促使我下定决心来仔细&深入的了解 GraphQL。

于是,我在 manning 上找到了 GraphQL in Action(我一般会试图在这个站点找到希望了解的技术领域的最新的书籍), 然后参照这本书,开启了我的 GraphQL 之旅。

阅读更多...

不同分辨率视频的推荐码率

视频的清晰度会受到多种因素的影响:分辨率,帧率,色深……对于UGC类型的视频业务而言,为了保证整站视频的质量,需要对用户上传的视频质量进行一点的判断。虽然不是绝对准确,但是,码率也是一种相对有效的评估指标。[1]

在YouTube的帮助文档中,就提供了一份建议用于指导用户设置其上传的视频的编码参数[2]。本文对码率的推荐数据进行了摘录。

阅读更多...

github commit messages中的emoji使用指南

在git commit messages中使用emoji表情可以包含很多有用信息,并且能够提升commit message的阅读体验。但是,需要注意的是,在commit message中,emoji不能乱用,否则容易导致误解。为了解释并标准化commit message中的emoji,Gitmoji项目应运而生。

我们在commit message中使用emoji的时候,也应该尽量遵循Gitmoji的规范,避免引起不必要的误会。

阅读更多...
  • Copyrights © 2020-2024 Wang Wei
  • 本站访问人数: | 本站浏览次数:

请我喝杯咖啡吧~

微信