博客园 - 程序猿小卡
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=718211
2020-12-08T00:17:14Z
程序猿小卡
https://www.cnblogs.com/chyingp/
feed.cnblogs.com
https://www.cnblogs.com/chyingp/p/mp4-file-format.html
5分钟入门MP4文件格式 - 程序猿小卡
最近经常回答团队小伙伴关于直播 & 短视频的问题,比如 “flv.js的实现原理”、“为什么设计同学给的mp4文件浏览器里播放不了、但本地可以正常播放”、“MP4兼容性很好,可不可以用来做直播” 等。
本文主要内容包括,什么是MP4、MP4文件的基本结构、Box的基本结构、常见且重要的box介绍、普通MP4与fMP4的区别、如何通过代码解析MP4文件 等。
2020-12-08T00:17:00Z
2020-12-08T00:17:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】最近经常回答团队小伙伴关于直播 & 短视频的问题,比如 “flv.js的实现原理”、“为什么设计同学给的mp4文件浏览器里播放不了、但本地可以正常播放”、“MP4兼容性很好,可不可以用来做直播” 等。
本文主要内容包括,什么是MP4、MP4文件的基本结构、Box的基本结构、常见且重要的box介绍、普通MP4与fMP4的区别、如何通过代码解析MP4文件 等。 <a href="https://www.cnblogs.com/chyingp/p/mp4-file-format.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/flv-getting-started.html
FLV协议5分钟入门浅析 - 程序猿小卡
FLV(Flash Video)是一种流媒体格式,因其体积小、协议相对简单,很快便流行开来,并得到广泛的支持。常见的HTTP-FLV直播协议,就是使用HTTP流式传输通过FLV封装的音视频数据。对想要了解HTTP-FLV的同学来说,了解FLV协议很有必要。
2019-08-12T00:43:00Z
2019-08-12T00:43:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】FLV(Flash Video)是一种流媒体格式,因其体积小、协议相对简单,很快便流行开来,并得到广泛的支持。常见的HTTP-FLV直播协议,就是使用HTTP流式传输通过FLV封装的音视频数据。对想要了解HTTP-FLV的同学来说,了解FLV协议很有必要。 <a href="https://www.cnblogs.com/chyingp/p/flv-getting-started.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/example-of-video-chat-using-webrtc.html
WebRTC:一个视频聊天的简单例子 - 程序猿小卡
在前面的章节中,已经对WebRTC相关的重要知识点进行了介绍,包括涉及的网络协议、会话描述协议、如何进行网络穿透等,剩下的就是WebRTC的API了。相关API太多,为避免篇幅过长,文中部分采用了伪代码进行讲解。详细代码例子可以在笔者的Github上找到,有问题欢迎留言交流。
2019-08-05T00:20:00Z
2019-08-05T00:20:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】在前面的章节中,已经对WebRTC相关的重要知识点进行了介绍,包括涉及的网络协议、会话描述协议、如何进行网络穿透等,剩下的就是WebRTC的API了。相关API太多,为避免篇幅过长,文中部分采用了伪代码进行讲解。详细代码例子可以在笔者的Github上找到,有问题欢迎留言交流。 <a href="https://www.cnblogs.com/chyingp/p/example-of-video-chat-using-webrtc.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/sdp-in-webrtc.html
WebRTC:会话描述协议SDP - 程序猿小卡
WebRTC主要在连接建立阶段用到SDP,连接双方通过信令服务交换会话信息,包括音视频编解码器(codec)、主机候选地址、网络传输协议等。下面先简单介绍下SDP的格式、常用属性,然后通过WebRTC连接建立过程生成的SDP实例进行进一步讲解。
2019-07-29T00:12:00Z
2019-07-29T00:12:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】WebRTC主要在连接建立阶段用到SDP,连接双方通过信令服务交换会话信息,包括音视频编解码器(codec)、主机候选地址、网络传输协议等。下面先简单介绍下SDP的格式、常用属性,然后通过WebRTC连接建立过程生成的SDP实例进行进一步讲解。 <a href="https://www.cnblogs.com/chyingp/p/sdp-in-webrtc.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/11198874.html
WebRTC:数据传输相关协议简介 - 程序猿小卡
WebRTC同时支持传输音视频数据、自定义应用数据。这其中,涉及多种协议,包括UDP、RTP/SRTP、RTCP/SRTCP、DTLS、SCTP。这些协议名字比较相似,很容易让人混淆,下面就简单介绍下,这些协议是做什么的,有什么区别,存在什么联系。
2019-07-17T01:22:00Z
2019-07-17T01:22:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】WebRTC同时支持传输音视频数据、自定义应用数据。这其中,涉及多种协议,包括UDP、RTP/SRTP、RTCP/SRTCP、DTLS、SCTP。这些协议名字比较相似,很容易让人混淆,下面就简单介绍下,这些协议是做什么的,有什么区别,存在什么联系。 <a href="https://www.cnblogs.com/chyingp/p/11198874.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/express-render-engine.html
Express:模板引擎深入研究 - 程序猿小卡
在Express的设计中,模板引擎属于核心模块之一,掌握、深入了解模板引擎,对于Express的学习、使用非常关键。本文通过例子,对Express的模板引擎进行深入浅出的介绍。
2019-06-24T01:12:00Z
2019-06-24T01:12:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】在Express的设计中,模板引擎属于核心模块之一,掌握、深入了解模板引擎,对于Express的学习、使用非常关键。本文通过例子,对Express的模板引擎进行深入浅出的介绍。 <a href="https://www.cnblogs.com/chyingp/p/express-render-engine.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/imweb-conf-2018-is-coming.html
Taro、Weex、Hippy 齐聚IMWebConf 2018! - 程序猿小卡
想了解 2018 前端前沿技术和发展趋势?想挖掘前端更深远的价值?就在这个秋季,第七届 IMWebConf 大会重磅来袭,我们邀请您一起参加这场盛宴,与前端大神们一起碰撞技术的火花,寻找你心中关于技术的答案。
2018-09-17T01:16:00Z
2018-09-17T01:16:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】想了解 2018 前端前沿技术和发展趋势?想挖掘前端更深远的价值?就在这个秋季,第七届 IMWebConf 大会重磅来袭,我们邀请您一起参加这场盛宴,与前端大神们一起碰撞技术的火花,寻找你心中关于技术的答案。 <a href="https://www.cnblogs.com/chyingp/p/imweb-conf-2018-is-coming.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/nodejs-learning-guide-github-got-1000-stars.html
一点感悟:《Node.js学习笔记》star数突破1000+ - 程序猿小卡
笔者前年开始撰写的《Node.js学习笔记》 github star 数突破了1000,算是个里程碑吧。
从第一次提交到现在,1年半过去了。突然有些感慨,想要写点东西,谈谈这期间的收获、心路历程,以及如何学习Node.js。
2018-06-05T23:35:00Z
2018-06-05T23:35:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】笔者前年开始撰写的《Node.js学习笔记》 github star 数突破了1000,算是个里程碑吧。
从第一次提交到现在,1年半过去了。突然有些感慨,想要写点东西,谈谈这期间的收获、心路历程,以及如何学习Node.js。 <a href="https://www.cnblogs.com/chyingp/p/nodejs-learning-guide-github-got-1000-stars.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/understanding-babel-preset-env.html
babel-preset-env使用指南 - 程序猿小卡
babel-preset-env是非常重要且常用的一个插件预设,掌握它的用法以及实现原理非常有必要。
本文主要内容包括:babel-preset-env是什么、入门实例、如何配置以支持特定版本的 node/浏览器、实现原理等。
本文所有例子可以在 笔者的github上 找到。
2018-06-05T00:15:00Z
2018-06-05T00:15:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】babel-preset-env是非常重要且常用的一个插件预设,掌握它的用法以及实现原理非常有必要。
本文主要内容包括:babel-preset-env是什么、入门实例、如何配置以支持特定版本的 node/浏览器、实现原理等。
本文所有例子可以在 笔者的github上 找到。 <a href="https://www.cnblogs.com/chyingp/p/understanding-babel-preset-env.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/how-to-write-a-babel-plugin.html
Babel插件开发入门指南 - 程序猿小卡
主要包括:Babel如何进行转码、插件编写的入门基础、实例讲解如何编写插件。
阅读本文前,需要读者对Babel插件如何使用、配置有一定了解,可以参考笔者之前的文章。
本文所有例子可以在 笔者的github 找到,欢迎访问笔者博客获取更多相关文章。
2018-06-04T00:16:00Z
2018-06-04T00:16:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】主要包括:Babel如何进行转码、插件编写的入门基础、实例讲解如何编写插件。
阅读本文前,需要读者对Babel插件如何使用、配置有一定了解,可以参考笔者之前的文章。
本文所有例子可以在 笔者的github 找到,欢迎访问笔者博客获取更多相关文章。 <a href="https://www.cnblogs.com/chyingp/p/how-to-write-a-babel-plugin.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/understanding-babel-polyfill.html
babel-polyfill使用与性能优化 - 程序猿小卡
babel只负责语法转换,比如将ES6的语法转换成ES5。但如果有些对象、方法,浏览器本身不支持,比如全局对象Promise、WeakMap等、静态函数Array.from、Object.assign等,实例方法Array.prototype.includes 等,此时需要使用babel-polyfill来模拟这些对象、函数、方法的实现。本文主要内容包括:什么是babel-polyfill,如何使用,如何通过按需加载进行性能优化。
此时,需要引入`babel-polyfill`来模拟实现这些对象、方法。
2018-06-01T00:17:00Z
2018-06-01T00:17:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】babel只负责语法转换,比如将ES6的语法转换成ES5。但如果有些对象、方法,浏览器本身不支持,比如全局对象Promise、WeakMap等、静态函数Array.from、Object.assign等,实例方法Array.prototype.includes 等,此时需要使用babel-polyfill来模拟这些对象、函数、方法的实现。本文主要内容包括:什么是babel-polyfill,如何使用,如何通过按需加载进行性能优化。
此时,需要引入`babel-polyfill`来模拟实现这些对象、方法。 <a href="https://www.cnblogs.com/chyingp/p/understanding-babel-polyfill.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/upgrade-nginx-to-support-http2-server-push.html
升级NGINX支持HTTP/2服务端推送 - 程序猿小卡
NGINX从1.13.9版本开始支持HTTP/2服务端推送,上周找时间升级了下NGINX,在博客上试验新的特性,升级工作主要包括:1、升级NGINX 2、修改NGINX配置 3、修改wordpress主题
2018-05-30T01:10:00Z
2018-05-30T01:10:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】NGINX从1.13.9版本开始支持HTTP/2服务端推送,上周找时间升级了下NGINX,在博客上试验新的特性,升级工作主要包括:1、升级NGINX 2、修改NGINX配置 3、修改wordpress主题 <a href="https://www.cnblogs.com/chyingp/p/upgrade-nginx-to-support-http2-server-push.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/mysql-access-denied-because-of-anonymous-user.html
记一次MySQL数据库拒绝访问的解决过程 - 程序猿小卡
最近在折腾wordpress博客,连接MySQL数据库时提示拒绝访问。经过排查,解决了问题。这里记录下解决问题的方案,以及解决的思路。如有遇到类似问题的读者可以参考下。
2018-05-25T00:33:00Z
2018-05-25T00:33:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】最近在折腾wordpress博客,连接MySQL数据库时提示拒绝访问。经过排查,解决了问题。这里记录下解决问题的方案,以及解决的思路。如有遇到类似问题的读者可以参考下。 <a href="https://www.cnblogs.com/chyingp/p/mysql-access-denied-because-of-anonymous-user.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/understanding-tcp.html
TCP入门与实例讲解 - 程序猿小卡
TCP是TCP/IP协议栈的核心组成之一,对开发者来说,学习、掌握TCP非常重要。
本文主要内容包括:什么是TCP,为什么要学习TCP,TCP协议格式,通过实例讲解TCP的生命周期(建立连接、传输数据、断开连接)
2018-05-21T00:14:00Z
2018-05-21T00:14:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】TCP是TCP/IP协议栈的核心组成之一,对开发者来说,学习、掌握TCP非常重要。
本文主要内容包括:什么是TCP,为什么要学习TCP,TCP协议格式,通过实例讲解TCP的生命周期(建立连接、传输数据、断开连接) <a href="https://www.cnblogs.com/chyingp/p/understanding-tcp.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/nodejs-multer-how-to-get-upload-percentage.html
Node.js:上传文件,服务端如何获取文件上传进度 - 程序猿小卡
multer是常用的Express文件上传中间件。服务端如何获取文件上传的进度,是使用的过程中,很常见的一个问题。这里整理出来,有同样疑问的同学可以参考一下。文章主要介绍如何利用progress-stream获取文件上传进度,以及该组件使用过程中的注意事项。
2018-02-05T00:39:00Z
2018-02-05T00:39:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】multer是常用的Express文件上传中间件。服务端如何获取文件上传的进度,是使用的过程中,很常见的一个问题。这里整理出来,有同样疑问的同学可以参考一下。文章主要介绍如何利用progress-stream获取文件上传进度,以及该组件使用过程中的注意事项。 <a href="https://www.cnblogs.com/chyingp/p/nodejs-multer-how-to-get-upload-percentage.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/express-cookie-parser-deep-in.html
Express使用进阶:cookie-parser中间件实现深入剖析 - 程序猿小卡
cookie-parser是Express的中间件,用来实现cookie的解析。不少人在使用过程中遇到问题,一般都是因为对cookie-parser的签名、验证机制不了解导致的。本文深入讲解cookie-parser的签名和验证机制,以及cookie签名是如何增强网站的安全性的。
2018-02-01T00:34:00Z
2018-02-01T00:34:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】cookie-parser是Express的中间件,用来实现cookie的解析。不少人在使用过程中遇到问题,一般都是因为对cookie-parser的签名、验证机制不了解导致的。本文深入讲解cookie-parser的签名和验证机制,以及cookie签名是如何增强网站的安全性的。 <a href="https://www.cnblogs.com/chyingp/p/express-cookie-parser-deep-in.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/a-telephone-interview-long-ago-2.html
转眼人到中年:前端老程序员无法忘怀的一次百度电话面试(二) - 程序猿小卡
顺利通过了百度电话一面,接着又参加了第二次电话面试。经过了无比煎熬的1小时后,却等来了一个让人无比疑惑的面试结果:“一面通过了。” 难道说有2次一面?这究竟是怎么回事?
2018-01-31T00:42:00Z
2018-01-31T00:42:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】顺利通过了百度电话一面,接着又参加了第二次电话面试。经过了无比煎熬的1小时后,却等来了一个让人无比疑惑的面试结果:“一面通过了。” 难道说有2次一面?这究竟是怎么回事? <a href="https://www.cnblogs.com/chyingp/p/a-telephone-interview-long-ago-2.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/nodejs-asymmetric-enc-dec.html
Node.js进阶:5分钟入门非对称加密方法 - 程序猿小卡
刚回答了SegmentFault上一个兄弟提的问题《非对称解密出错》。这个属于Node.js在安全上的应用,遇到同样问题的人应该不少,基于回答的问题,这里简单总结下。
非对称加密的理论知识,可以参考笔者前面的文章《NODEJS进阶:CRYPTO模块之理论篇》。
完整的代码可以在 《Nodejs学习笔记》 找到,也欢迎大家关注 程序猿小卡的GitHub。
2018-01-29T00:29:00Z
2018-01-29T00:29:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】刚回答了SegmentFault上一个兄弟提的问题《非对称解密出错》。这个属于Node.js在安全上的应用,遇到同样问题的人应该不少,基于回答的问题,这里简单总结下。
非对称加密的理论知识,可以参考笔者前面的文章《NODEJS进阶:CRYPTO模块之理论篇》。
完整的代码可以在 《Nodejs学习笔记》 找到,也欢迎大家关注 程序猿小卡的GitHub。 <a href="https://www.cnblogs.com/chyingp/p/nodejs-asymmetric-enc-dec.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/a-telephone-interview-long-age.html
转眼人到中年:前端老程序员无法忘怀的一次百度电话面试 - 程序猿小卡
2010年9月22日,中秋,记得那天下着零星的小雨。大部分同学都已回了家,深秋的校园显得格外空旷寂寥。我独自一人来到教学楼,等待那通来自上海的电话,紧张,懊恼的情绪在蔓延。9点整,电话如期而至。
没有太多的时间去诧异,电话那头,面试题一个接一个地抛了过来。我把耳机听筒紧紧地贴着耳朵,生怕听不清面试的题目,或者错过关键的信息。脑子飞快地转着,想着如何回答面试官的题目,以及怎么更有条理地组织我的回答。
2018-01-26T00:44:00Z
2018-01-26T00:44:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】2010年9月22日,中秋,记得那天下着零星的小雨。大部分同学都已回了家,深秋的校园显得格外空旷寂寥。我独自一人来到教学楼,等待那通来自上海的电话,紧张,懊恼的情绪在蔓延。9点整,电话如期而至。
没有太多的时间去诧异,电话那头,面试题一个接一个地抛了过来。我把耳机听筒紧紧地贴着耳朵,生怕听不清面试的题目,或者错过关键的信息。脑子飞快地转着,想着如何回答面试官的题目,以及怎么更有条理地组织我的回答。 <a href="https://www.cnblogs.com/chyingp/p/a-telephone-interview-long-age.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/chyingp/p/react-native-debug-on-ios-device.html
React Native:真机断点调试+跨域资源加载出错问题解决 - 程序猿小卡
闲来无事,折腾了一下React Native,相比之前,开发体验好了不少。但在真机断点调试那里遇到了跨域资源加载出错的问题,一番探索总算解决,目测是RN新版本调试服务的bug。
遇到类似问题的同学应该不少,这里做下记录,有需要的可以参考下。
2018-01-18T00:28:00Z
2018-01-18T00:28:00Z
程序猿小卡
https://www.cnblogs.com/chyingp/
【摘要】闲来无事,折腾了一下React Native,相比之前,开发体验好了不少。但在真机断点调试那里遇到了跨域资源加载出错的问题,一番探索总算解决,目测是RN新版本调试服务的bug。
遇到类似问题的同学应该不少,这里做下记录,有需要的可以参考下。 <a href="https://www.cnblogs.com/chyingp/p/react-native-debug-on-ios-device.html" target="_blank">阅读全文</a>