
面试和编程基础
文章平均质量分 72
面试题,基础知识,编译错误
hongge372
擦附件阿卡劳动法加阿斯离开打飞机三
展开
-
虚函数的缺陷-通过虚函数表访问私有虚函数
前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个.转载 2021-10-16 17:36:16 · 790 阅读 · 0 评论 -
OpenGL-坐标系
笛卡尔坐标系二维绘图:笛卡尔坐标有一个X轴和一个Y轴组成,X轴为水平方向,Y轴为垂直方向,X和Y相互垂直二维笛卡尔坐标系三维绘图:笛卡尔坐标多了一个Z轴,Z轴同时垂直于X和Y轴。Z轴的实际意义代表着三维物体的深度三维笛卡尔坐标系坐标裁剪:窗口是以像素为单位进行度量的。开始在窗口中绘制点、线和形状之前,要把指定的笛卡尔坐标对翻译成屏幕坐标,我们可以通过指定占据窗口的笛卡尔区域来转换,这个区域叫做裁剪区域。PS:x,y,z,w:指的不是四维,其中w指的是缩放因子视口在显示转载 2021-09-16 19:00:38 · 770 阅读 · 0 评论 -
C++中 overload 、override、overwrite 之间的区别
Overload 重载在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数不同(包括类型、顺序不同),即函数重载。(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;请注意,重载解析中不考虑返回类型,而且在不同的作用域里声明的函数也不算是重载。重载可以理解为一个类内部的函数重载,较好理解,此处不举例。Override 覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;...转载 2021-07-12 23:13:37 · 537 阅读 · 0 评论 -
c++学习笔记
1、结尾分号:class,namespace,function结尾不带分号。其他的都带。原创 2021-06-08 17:12:14 · 161 阅读 · 0 评论 -
C++——std::String
写在前面这一篇博客系统学习一下C++中String类的相关函数。这个类在之前做题的时候就经常遇到,其实说白了,它也就是一个vector < char >。但是,它又有一些独特的函数,可以在做题的时候简化代码,提高效率。所以在这一篇博客,就根据CPlusPlus官网中< string >中的内容做一个整理。自己整理之外,还有一些优秀的整理资料可供参考:std::string用法总结。string类与头文件包含string即为字符串。string是C++标准库的一个重要的部分,转载 2021-04-12 12:31:46 · 2409 阅读 · 0 评论 -
std::string用法总结
在平常工作中经常用到了string类,本人记忆了不好用到了的时候经常要去查询。在网上摘抄一下总结一下,为以后的查询方便:string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化string类的字符操作:const char &operator[](int n)const;const char &at(int n)const;char &operator...转载 2021-04-12 12:29:48 · 2329 阅读 · 0 评论 -
C++11教程:C++11新特性大汇总
C++11 是第二个真正意义上的 C++ 标准,也是 C++ 的一次重大升级。C++11 增加了很多现代编程语言的特性,比如自动类型推导、智能指针、lambda 表达式等,这使得 C++ 看起来又酷又潮,一点也不输Java和C#。虽然学习 C++11 需要花些时间,但这是非常值得的;C++11 非常实用,它不但提高了开发效率,还让程序更加健壮和优雅。程序员应该乐于升级换代已有的知识,而学习和使用 C++11 早就是大势所趋,请大家不要抗拒。有些 C++11 新特性只是局限于某些特定的应用场景,...转载 2021-04-05 16:25:11 · 584 阅读 · 0 评论 -
c11有什么新特性
作者:丁冬链接:https://www.zhihu.com/question/39263529/answer/80487228来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1.“永不返回”_Noreturn_Noreturn void suicide() { abort(); // Actually, abort is _Noreturn as well}2.编译期断言_Static_assert_Static_assert(_..转载 2021-04-05 16:22:58 · 357 阅读 · 0 评论 -
C11 标准新特性
C11标准是C语言标准的第三版(2011年由ISO/IEC发布),前一个标准版本是C99标准。相比C99,C11有哪些变化呢1、 对齐处理alignof(T)返回T的对齐方式,aligned_alloc()以指定字节和对齐方式分配内存,头文件<stdalign.h>定义了这些内容。alignof( 类型标识 )返回 std::size_t 类型值。返回由类型标识所指示的类型的任何实例所要求的对齐字节数,该类型可以为完整类型、数组类型或者引用类型。若类型为引用类型,则运算符返回被转载 2021-04-05 16:22:11 · 2045 阅读 · 0 评论 -
C++11常用新特性快速一览
最近工作中,遇到一些问题,使用C++11实现起来会更加方便,而线上的生产环境还不支持C++11,于是决定新年开工后,在组内把C++11推广开来,整理以下文档,方便自己查阅,也方便同事快速上手。(对于异步编程十分实用的Future/Promise以及智能指针等,将不做整理介绍,组内使用的框架已经支持并广泛使用了,用的是自己公司参考boost实现的版本)1. nullptrnullptr 出现的目的是为了替代 NULL。在某种意义上来说,传统 C++ 会把 NULL、0 视为同一种东西,这取决于编译器转载 2021-04-05 16:20:47 · 146 阅读 · 0 评论 -
Android插件化(一)
插件化(一)组件化和插件化的区别:组件化是将一个app分成多个模块,每个模块都是一个组件(module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件,但是最终发布的时候将这些组件合并成一个统一的apk,这就是组件化开发。 插件化开发和组件化不同,插件化开发就是将整个app拆分成很多模块,每个模块都是一个apk(组件化的每个模块是一个lib),最终打包的时候将宿主apk和插件apk分开打包,插件apk通过动态下发到宿主apk,这就是插件化。插件化的好处:宿主和插件分开编译 是转载 2021-03-30 12:25:47 · 232 阅读 · 0 评论 -
html <div>标签元素
HTML DIV目录Html div介绍 DIV标签使用说明 Div作用 html div演示代码一、Html DIV介绍 - TOP这里htmldiv是指html源代码里的div标签。如在html中DIV代码片段:<div class="yangshi">演示</div>二、DIV标签使用说明: - TOP1)、在DIV+CSS切图布局重构技术中,提到div,而在html中代码布局使用最多标签为div,2)、故我们通常将...转载 2021-03-30 11:13:19 · 352 阅读 · 0 评论 -
前端小程序笔试面试题
前言随便打开一个招聘网站, 你会发现市场上对小程序的需求还挺高的,虽然小程序一部分开发起来还是挺简单ok的,但一些常用的东西还是需要了解一下,因此总结了一篇有关小程序的面试题,希望对你我都帮组。目录:前端HTML+CSS笔试题面试题前端JS笔试题面试题前端Vue笔试题面试题前端小程序笔试题面试题前端面试必备宝典--知识点深入整合篇1、微信小程序有几个文件WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要转载 2021-03-30 11:10:21 · 2741 阅读 · 0 评论 -
OCRunner 第零篇:从零教你写一个 iOS 热修复框架
为什么要热修复在软件开发过程中,很难避免 BUG 的存在,尤其是对于一些达到一定规模的 App 因为协作模式错综复杂,就很容易带着问题上线。一旦问题上线之后,问题就麻烦了,不仅需要重新打包、测试,而且还需要重新提交审核,而这种修复问题的方式往往是低效且漫长的。因此,在开发一个 App 的过程中,稳定性的就变成了一个难题,唯一的原因就是不希望带着问题上线导致用户对 App 失去信任。热修复就可以很好的解决这类棘手的问题,因此带着好奇之心,研究了一下热修复在 iOS 端的可行性,实现 了一个较为转载 2021-03-30 11:07:28 · 1705 阅读 · 0 评论 -
2019JS必看面试题
1. javascript的typeof返回哪些数据类型.答案:string,boolean,number,undefined,function,object2. 例举3种强制类型转换和2种隐式类型转换?答案:强制(parseInt,parseFloat,number)隐式(== ===)3. split() join() 的区别答案:前者是将字符串切割成数组的形式,后者是将数组转换成字符串4. 数组方法pop() push() unshift() shift()答案:push转载 2021-03-30 11:06:31 · 1425 阅读 · 0 评论 -
2019JS必看面试题
前端小程序笔试面试题前言随便打开一个招聘网站, 你会发现市场上对小程序的需求还挺高的,虽然小程序一部分开发起来还是挺简单ok的,但一些常用的东西还是需要了解一下,因此总结了一篇有关小程序的面试题,希望对你我都帮组。目录:前端HTML+CSS笔试题面试题前端JS笔试题面试题前端Vue笔试题面试题前端小程序笔试题面试题前端面试必备宝典--知识点深入整合篇1、微信小程序有几个文件WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构转载 2021-03-29 21:37:31 · 254 阅读 · 0 评论 -
opengl常见面试题
-渲染管线流程(腾讯,网易互娱,完美世界,米哈游···几乎都问过)渲染管线通常被分为四个阶段:应用阶段,几何阶段,光栅化阶段,像素处理.阶段。接下来将介绍每个阶段的大概任务:(1) 应用阶段:应用阶段是指在CPU端进行处理的阶段,包括物理碰撞检测、物理模拟、动画计算等任务,对于3D游戏来说,游戏中包含大量的模型,3D模型中保存着模型的顶点坐标,法线,切线,颜色等数据,这些数据一般通过向量进行存储,CPU从模型中获取这些顶点信息数据,并将这些数据传送给GPU作为最开始的输入数据。然后将数据送到渲.转载 2021-03-24 18:18:25 · 6601 阅读 · 0 评论 -
opengl官网
https://www.khronos.org/registry/OpenGL-Refpages/gl4/转载 2021-03-23 23:18:37 · 1711 阅读 · 0 评论 -
GLSL 详解(高级篇)
7. 预处理GLSL 中预处理指令的使用也跟 C 语言的预处理指令相似。以下代码是宏及宏的条件判断: 12345678 #define#undef#if#ifdef#ifndef#else#elif#endif 注意与 C 语言中不同,宏不能带参数定义。使用#if,#else和#elif可以用来判断宏是否被定义过。以下是一些预先定义好的宏及它们的描述: 1234 __LIN...转载 2021-03-22 18:58:35 · 5556 阅读 · 1 评论 -
GLSL 详解(基础篇)
上节在绘制三角形的时候,简单讲解了一些着色器,GLSL 的相关概念,可能看的云里雾里的。不要担心,在本节中,我将详细讲解着色语言 GL Shader Language(GLSL)的一些基本的概念。PS:无特殊说明,文中的 GLSL 均指 OpenGL ES 2.0 的着色语言。概览OpenGL ES 的渲染管线包含有一个可编程的顶点阶段的一个可编程的片段阶段。其余的阶段则有固定的功能,应用程序对其行为的控制非常有限。每个可编程阶段中编译单元的集合组成了一个着色器。在OpenGL ES转载 2021-03-22 18:57:15 · 11478 阅读 · 2 评论 -
OpenGL矩阵变换的数学推导
说起OpenGL的矩阵变换,我是之前在我们的项目天天P图、布丁相机中开发3D效果时才比较深入地研究了其中的原理,当时一开始时,也只是知道怎么去用这些矩阵,却不知道这些矩阵是怎么得来的,当出现一些莫名其妙的问题时,如果不了解其中的原理,就不知道如何解决,于是想彻底搞懂其中的原理,还好自己对数学挺有兴趣,于是从头到尾把推导过程研究了一遍,总算掌握了其中的奥秘,不得不佩服OpengGL的设计者,其中的数学变换过程令人陶醉,下面我们一起来看看。 这些矩阵当中最重要的就是模型矩阵(Model Matrix)、视图矩阵转载 2021-03-22 18:32:18 · 449 阅读 · 0 评论 -
【面试必读(编程基础)】OpenGL ES 2.0渲染管线
https://blog.youkuaiyun.com/chrisfxs/article/details/53291604http://codingnow.cn/opengles/1504.htmlOpengl es 2.0实现了可编程的图形管线,比起1.x的固定管线要复杂和灵活很多,由两部分规范组成:Opengl es 2.0 API规范和Opengl es着色语言规范。下图是Opengl es 2.0渲染管线,阴影部分是opengl es 2.0的可编程阶段。1. 顶点着色器...转载 2021-03-22 14:23:00 · 453 阅读 · 0 评论 -
第三课:矩阵
齐次坐标(Homogeneous coordinates) 变换矩阵(Transformation matrices) 矩阵简介 平移矩阵(Translation matrices) 单位矩阵(Identity matrix) 缩放矩阵(Scaling matrices) 旋转矩阵(Rotation matrices) 累积变换 模型(Model)、观察(View)和投影(Projection)矩阵 模型矩阵 观察矩阵 投影矩阵 复合变换:模型观察投影矩阵(MVP转载 2021-03-19 11:16:48 · 881 阅读 · 0 评论 -
视频DCT变换与量化
一、变换域编码——整数DCT\quad将空间域描述的图像,经过某种变换后得到变换域中的数据,达到改变数据分布形式、减少有效数据量的目的。\quad变换包含DCT(离散余弦变换)、DST(离散正弦变换)等,这里我们主要讨论DCT。在图像视频压缩中采用的变换都是正交变换,因为正交变换不改变信源熵值,完全可以通过反变换重建原图,且压缩程度高。变换的好处在于使得数据分布发生改变,变换系数向低频方向集中,利于编码。\quad采用DCT变换的图像、视频压缩基本框架如下:\quadH.264采用整数DCT变化,转载 2021-03-19 00:30:18 · 1193 阅读 · 0 评论 -
编解码学习--x264代码剖析(十五):核心算法之宏块编码中的变换编码
简介:<h1 style="text-align:center"><strong>x264<span style="font-family:宋体">代码剖析(十五):核心算法之宏块编码中的变换</span>编码</strong></h1> <p></p> <p> 为了进一步节省图像的传输码率,需要对图像进行压缩,通常采用变换编码及量化来消除图像中的相关性以减少图像编码的动态范x2...转载 2021-03-19 00:28:50 · 857 阅读 · 0 评论 -
概述·离散余弦变换(DCT)及其实现过程
1974年,K. R. Rao、N. Ahmed、T. Natarajan三位教授创立了离散余弦变换(Discrete Cosine Transform, DCT)。在数字信号、数字图像处理领域,离散余弦变换的效果能够接近理论上的最佳变换——Kahunen-Loeve变换(K-L变换)。本文介绍了DCT的相关背景,并从算法、硬件、应用三个层面做了概述。〇、DCT的历史与背景1807年,法国数学家、物理学家傅里叶(Jean Baptiste Joseph Fourier)提出了傅里叶变换(Four转载 2021-03-19 00:23:36 · 5878 阅读 · 0 评论 -
HEVC-环路滤波 之去块效应滤波
HEVC系列的目标:1、对基本概念的进行了解,不深入公式推导当中。在学习进行之前存在的疑问,学习之后是不是都一一解决了?2、在一段时间忘记相关概念的时候,是不是可以通过阅读之前的记录 最快的回忆起相关概念。环路滤波是什么?环路滤波在编解码框架的哪个部分?环路滤波是为了解决什么问题的?环路滤波用了哪些技术?环路滤波的流程是怎样的?一、 环路滤波是什么?环路滤波顾名思义就是在环路上面对数据进行滤波操作,而所谓的滤波操作就是将数据乘上某一个权重数据。二、环路滤波在编码框架的...转载 2021-03-19 00:08:24 · 829 阅读 · 0 评论 -
h264解码之环路滤波
代码以ffmpeg为例,h264解码代码在h264.c里。环路滤波(Loop Filter)部分 FFmpeg的H.264解码器调用decode_slice()函数完成了解码工作。这些解码工作可以大体上分为3个步骤:熵解码,宏块解码以及环路滤波。 环路滤波主要用于滤除方块效应。decode_slice()在解码完一行宏块之后,会调用loop_filter()函数完成环路滤波功能。loop_filter()函数会遍历该行宏块中的每一个宏块,并且针对每一个宏块调用ff_h...转载 2021-03-19 00:06:14 · 662 阅读 · 0 评论 -
音视频编解码(一) —— H264基本概览(一)
前言对于做过音视频的开发者,编解码都不陌生,接下来这几篇就详细的看一下音视频编解码相关知识。H264编码基本下面我们就看一下什么是H264编码,部分内容来自百度。H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。这个标准通常被称之为H.264/AVC(或者AVC/H.264或者H.264/MPEG-4 AVC或MPE转载 2021-03-18 21:13:15 · 1254 阅读 · 1 评论 -
OpenGl面试题(持续更新)
1.什么是model,view,project矩阵?世界矩阵(World Matrix)、视图矩阵(View Matrix)以及投影矩阵(Projection Matirx);世界矩阵确定一个统一的世界坐标,用于组织独立的物体形成一个完整的场景;视图矩阵就是我们能看到的那部分场景,由虚拟摄像机负责拍摄;投影矩阵就是3维物体的平面影射.把三维场景在一个二维的平面上显示.2.说一下新OpenGL和老版本OpenGL的区别。主要是固定流水线转变成了可编程流水线。可编程...转载 2021-03-18 20:42:03 · 1689 阅读 · 0 评论 -
OpenGL与Unity Shader常用基础面试题
OpenGL与Unity Shader常用基础面试题仓木生命不息,战斗不止............155 人赞同了该文章搜集了一些面试的时候问的图形学相关的题目,并且整理了下来,后续会不断的完善。1、三大主流的Shader Language?HLSL、GLSL、CG2.OpenGL的渲染流程?(不同的管线流程应该是有去别的,大体上是这样的)读取顶点数据→执行顶点着色器→组装图元→光栅化图元→执行片段着色器→写入帧缓冲区→显示在屏幕上。3、Unity S..转载 2021-03-18 20:21:18 · 1805 阅读 · 0 评论 -
Unity as a Library into Android Project
简介最近这段时间公司内闷着头想把Unity干入Native项目,早在16年初的时候,那时候也是闲的蛋疼,曾经跑通了安卓和iOS的Unity做为库集成到Native项目的流程,后来加入新公司,又基于2018版的Unity集成过一次,iOS用PBX脚本方式集成的,Android是自己写的Copy脚本完成的,最近发现2019.3Unity已经完美支持了Unity as a Library,所以尝试了一下,里面还是又很多坑,不过磨磨时间都是可以FIX的。官方文档环境依赖Android Studio `3转载 2021-03-19 12:13:10 · 508 阅读 · 0 评论 -
让面试官颤抖的 HTTP 2.0 协议面试题
Http协议,对于拥有丰富开发经验的程序员来说简直是信手拈来,家常便饭。虽然天天见,但是对于http协议的问题,可能很多人在没有积极准备的情况下,不一定能很好的回答出来。今天,我们就来讲讲http 2.0和之前版本的区别。一、HTTP定义HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。二、HTTP发展史三、HTTP 2.0 vs HTTP 1.0 性能HTTP 2.0 的出现,相比于 HTT.转载 2021-03-18 00:16:33 · 134 阅读 · 0 评论 -
必考的10道http协议面试题(附答案)
现在是移动互联网高速发展的数据时代,各种各样的浏览器和服务器应运而生,那么在不同的浏览器和服务器之间它们是怎样沟通的呢,总不可能一个种类下就对应着一种开发和规则,如此这般程序员们可忙不过来。所以,是所有的浏览器和服务器接受使用同一种规范,http协议就是实现不同版本的浏览器和服务器之间的数据交互,今天这篇文章总结http协议面试题,java零基础的新手们可以先在这篇文章中了解一下http的相关知识。1、http协议的请求方式是什么?答:HTTP是一个基于TCP/IP通信协议来传递数据,包括htm..转载 2021-03-18 00:12:25 · 9804 阅读 · 0 评论 -
TCP/IP三次握手和HTTP过程
1、TCP连接手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RE转载 2021-03-18 00:09:02 · 746 阅读 · 0 评论 -
面试装逼指南——基于RTP/RTCP的无线视频传输自适应带宽控制
RTP协议是IP网络中针对实时业务的一种传输协议,一般构架在UDP协议之上。另外,它也是一个数据封装协议,实时业务数据封装于RTP包的数据域中。RTP协议的设计目的是提供实时数据传输中的时间戳信息及各数据流(音/视频等)同步功能。RTP提供序列号(Sequence Number)以恢复数据包的顺序,实现丢包检测,为实时传输提供网络拥塞等信息; 提供时间戳(Timestamp)用于媒体同步,使接收端按正确的速率回放数据; 提供同步源标志(Source Identification)使接收端有可能获转载 2021-03-18 00:07:14 · 510 阅读 · 0 评论 -
ffmpeg-hls实现分析
0 引言本文将关注于FFmpeg中的HLS相关实现,相关代码在libavformat/hls.c中(我所使用的Ffmpeg版本是4.0的),分析hls_demuxer的主要实现逻辑。本文作为我之前的HLS综述的后续文章,也是ffmpeg框架分析的后续文章。前者介绍了HLS协议相关的理论部分,后者介绍了FFmpeg主要框架分析(本文主要关注demuxer);要是你对此感兴趣建议了解下。1 ff_hls_demuxer的主要对外接口#define OFFSET(x) offsetof(H...转载 2021-03-18 00:01:02 · 1014 阅读 · 0 评论 -
HTTP协议经典面试题整理及答案详解
HTTP协议经典面试题整理及答案详解万猫学社欢迎关注微信公众号:万猫学社,获得更多Java技术干货。7 人赞同了该文章无论你是Java、PHP开发者,还是运维人员,只要从事互联网行业,面试时都可能被问到HTTP协议相关知识。历时多天的呕心沥血,为你总结了HTTP协议的经典面试题。由于涉及内容比较繁杂不方便记忆,建议收藏起来,时不时看一遍或者面试前突击复习。什么是HTTP报文?HTTP报文是HTTP协议在客户端和服务端之间传送的数据块。HTTP报文由哪三部分组成?...转载 2021-03-17 23:37:27 · 358 阅读 · 0 评论 -
直播常见面试题
音频信号压缩编码的标准主要有 G.7xx 系列、MPEG-x 系列、AC-x 系列。 音频编解码中常用的技术包括:AD/DA转换、压缩编码、数字信号处理、信道编码/调制。 经采样、编码但未压缩的语音信号(对应G.711编码)为:PCM。 音频编码方法包括三大类:波形编码、参数编码、混合编码。1. 音视频不同步?1.1 音视频同步算法主要原因:显示时间戳 PTS 和解码时间戳 DTS 其他原因:采样率速度、设备支持的分辨率,码率,帧率、以及服务器拉流1.2 解决音视频不同步的思路:从根源上转载 2021-03-17 23:02:28 · 2689 阅读 · 0 评论 -
5分钟入门MP4文件格式-mp4的ftyp
本文主要内容包括,什么是MP4、MP4文件的基本结构、Box的基本结构、常见且重要的box介绍、普通MP4与fMP4的区别、如何通过代码解析MP4文件 等。写作背景:最近经常回答团队小伙伴关于直播 & 短视频的问题,比如 “flv.js的实现原理”、“为什么设计同学给的mp4文件浏览器里播放不了、但本地可以正常播放”、“MP4兼容性很好,可不可以用来做直播” 等。在解答的过程中,发现经常涉及 MP4 协议的介绍。之前这块有简单了解过并做了笔记,这里稍微整理一下,顺便作为团队参考文档,如有错漏转载 2021-03-17 22:51:00 · 5577 阅读 · 1 评论