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

1024开始我们漫谈编程本质

祝各位工程师节日快乐哈~ 今年1024也算是自己过得第一个正经程序员节了,如果实习也算的话那就是第二个,也不知道自己开始关注1024是缘从何起,或许是因为喜欢上Coding开始,或许是喜欢程序员这个职业开始...,但是不管如何,从现在开始我会把每一个1024都当做是自己一个小节日,并且尽可能在每年这一天都能输出一些比较深度内容来表达自己对或是编程,或是职业,或是行业一个思考,来祝大家节日快乐。...那么今天文章标题是《1024开始我们漫谈编程本质》,首先会先真正了解下1024来历和意义,其次就是对编程这件事情思考和感悟,探究其本质,我们才能越发了解和掌握它。...核心地方就在于:编译器(英文:Compiler) 因为我们计算机CPU只能识别二进制指令,但是我们敲出来代码却都是英文单词或字母以及数字(高级语言),那么CPU在执行之前,我们就需要把我们代码改造成...关于编译器原理我推荐大家看下这个视频,全英文讲解十分易懂:【极简编译器原理】 不仅讲述了CPU功能、编译器将源代码转换为计算机可执行程序,还对编译原理中源代码 -> Token -> 抽象语法树

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

针对视频直播源码播放流程,我们可以做哪些优化?

与主播单向直播相比,连麦实现技术难点增大很多,具体如下: 音频混流,主播将自己声音与连麦者声音做混音。 视频混流,主播将自己画面与连麦者画面做视频合成。...推流、播放优化 考察发送端系统自带网络buffer大小,系统可能在发送数据之前缓存数据,这个参数调优也需要找到一个平衡点。...播放步骤分析: 根据协议类型(如RTMP、RTP、RTSP、HTTP等),与服务器建立连接并接收数据 解析二进制数据,从中找到相关流信息; 根据不同封装格式(如FLV、TS)解复用(demux); 分别得到已编码...H.264视频数据和AAC音频数据; 使用硬解码(对应系统API)或软解码(FFMpeg)来解压音视频数据; 经过解码后得到原始视频数据(YUV)和音频数据(AAC); 因为音频和视频解码是分开,...所以我们得把它们同步起来,否则会出现音视频不同步现象,比如别人说话会跟口型对不上; 最后把同步音频数据送到耳机或外放,视频数据送到屏幕上显示。

47420

我们AI基础是如何20年前就开始落后

老华2011年在斯坦福大学演讲片段也很好印证了这点,我们观点是这部机器特别之处是,它能够使用游戏方式,而我们还能否给它3D游戏方式,我们还能让它可以在游戏中玩游戏,我们开始了一家公司。...反而直接背刺了释迦一刀,凭借着对PC端游戏潜力敏锐嗅觉,面对已经被3DFXvoodoo显卡所有开始垄断个人电脑市场领域,久战不胜英伟达在新产品NV3带领下取得了一场难得胜利。...也许已经在历史不可阻挡车轮边第二次输在了信息革命起跑线上,当下看起来毫不起眼没有任何价值产业随时可能都会孕育出颠覆式新技术突破,高章原主产业规划策略和随意打压都会在不可名状地方反噬。...而仔细回想这么多年游戏玩家更是背负了无数污蔑与羞辱,使人们变成魔兽再到犯罪行为导火索,第九艺术享受者们至今仍然饱受着无端歧视和骂名,就像康德所说的人不是手段人本身就是目的。...希望大家多多一键三连加关注,之后我会给大家分享更多软件和硬件方面的知识,我们下期视频再见。

16140

常见触发函数事件(实现不同用户体验)

效果实现:鼠标非元素区域进入到该元素区域时候,但是离开时候是不会触发,而且在元素里面移动也是不触发,只有进入一瞬间会触发。...onmouseleave //鼠标离开元素范围操作 应用场景:一般是用到给用户提示。 效果实现:鼠标元素区域离开时候。...,这个时候如果是leave也就是离开元素范围操作,那么也就是说,我们外面进入到里面div时候是不会触发函数,但是离开这个父元素范围最大范围时候会触发,如果是out时候,那么我们从父元素就如到子元素时候...onseeking //用户开始重新定位视频或者音频时候触发 应用场景:播放视频或者音频时候更改播放进度。 效果实现:鼠标点击或者滑动播放时间条时候。...onseeked //用户重新定位视频或者音频时候触发 应用场景:播放视频或者音频时候更改播放进度。 效果实现:鼠标重新定位播放时间时候,这里滑动是不是可以触发呢?

88820

文本、图像到音视频,AIGC技术将如何重构我们数字世界?

回顾技术发展,我们可以发现,每一轮技术变革,都带来了产业级投资机会。先行觉悟的人,会在其中获取巨大利益,而后知后觉的人大几率是被社会推动着走。...而如今 AIGC 技术似乎就是革命性生产工具。 AIGC 技术正在经历新一轮变革浪潮,其交互方式也生成文本、代码、图片正朝着更多元、更自然形式上发展。...历史总在循环往复,互联网交互形式最初也是文本、到图像、到音视频再逐步发展到如今互动音视频(直播)。...现在 AIGC 也正朝着更加逼真的方向发展,随着技术不断升级和深入,AIGC 将可预见地颠覆音视频领域。 大咖经验分享 AIGC 已经开始重塑音视频哪些细分领域了?...4 月 26 日(周三)晚 20:00,「TVP 技术夜未眠」第七期来啦,本期我们特别邀请了腾讯云直播、媒体处理专家工程师 赵军老师与上海交通大学电子工程系教授、图像所副所长、腾讯云TVP 宋利老师,与我们一起探讨

71710

从零开始仿写一个抖音App——基于FFmpeg极简视频播放器GitHub地址

——写一个基于 FFmpeg 极简 Android 视频播放器 一、FFmpeg源码食用 注意事项: 1.需要一些 git 知识,git中文文档。...这个是正常现象,因为我们有专门脚本来编译代码,Clion只是作为一个编辑器来使用,所以报红地方不影响我们接下来操作。...1.首先我们在 从零开始仿写一个抖音App——音视频开篇 这篇文章中介绍了怎样将 so 文件引入 android 项目然后在 jni 层调用,这里我就不一一赘述了。...最后一章就来介绍一个用 FFmpeg 解码极简视频播放器。...1.首先这个视频播放器非常简单,简单到啥也没有,只是将从文件中解码出来图像绘制到 surface上面。

2.7K31

12种提升视频质量方法

这些方法同样适用于在线课堂、体育转播或者线上教会活动,每个人都可以使用这些方法提升他们直播视频质量。 下面让我们尽快开始学习如何提升直播视频质量吧!...如果视频无法可靠地摄像头传输到流媒体平台,那么所输出视频将出现卡顿和停滞。这其实是很容易避免! 除此之外,你可以利用CDN源站传输视频我们接着往下看。...如果任何人都能盗取你视频流URL(DASHMPD或者HLSm3u8),将其插入到视频播放器中,然后开始重新播放内容,那么你将损失惨重。...图片来自Unsplash,由 Luke Chesser 制作 视频延迟或者首屏延迟:测量用户按下播放键后到视频显示用时 缓冲持续时长&百分比 开始次数 视频开始前退出:当用户按下播放键,他会在第一帧显示前就会离开吗...这些数据是如何发挥作用?以EBVS(Exit Before Video Start,视频开始前退出)指标为例,如果数值较高,说明很多人正在点击播放键,然后还没有看视频离开了你平台。

83040

addEventListener() 方法

该事件在拖动元素进入放置目标时触发 dragleave 该事件在拖动元素离开放置目标时触发 dragover 该事件在拖动元素在放置目标上时触发 dragstart 该事件在用户开始拖动元素时触发...canplay 事件在用户可以开始播放视频/音频(audio/video)时触发。 canplaythrough 事件在视频/音频(audio/video)可以正常播放且无需停顿和缓冲时触发。...pause 事件在视频/音频(audio/video)暂停时触发。 play 事件在视频/音频(audio/video)开始播放时触发。...playing 事件在视频/音频(audio/video)暂停或者在缓冲后准备重新开始播放时触发。 progress 事件在浏览器下载指定视频/音频(audio/video)时触发。...ratechange 事件在视频/音频(audio/video)播放速度发送改变时触发。 seeked 事件在用户重新定位视频/音频(audio/video)播放位置后触发。

90610

0开始播放器-第二季-第2章-Android NDK 工程建立和 JNI 基本用法

注:参考自bilibili系列视频0开始播放器-第二季-第2章-Android NDK 工程建立和 JNI 基本用法,更详细内容可以视频获取https://www.bilibili.com...类似写c++时CMake。 1.把c++工程放到安卓工程同级目录,这是写跨平台应用中,较常用做法。...3.配置NDK位置 在local.properties中,配置ndk.dir ndk.dir=C\:\\NDK 此时编译,会报错ffmpeg等依赖找不到,我们先通过修改CMakeLists.txt,不引用...jni基础使用 jni全称java native interface, java可以通过jni接口调用c/c++方法。.../com/yao/playerJNI.java (即有native方法类),执行完之后,就会在同一目录下生成一个.h文件。

40840

软件推荐(PotPlayer)-- PC播放最佳实践

阅读完本篇我期望你能够明白,在这个如您所愿盛世,播放器不仅仅局限于播放离线文件,流媒体技术发展、计算机更新迭代、程序员码不停蹄,也为在线播放奠定夯实基础,让我们一起来实践一下吧。...可能你们已经听出来我韩国口音了,对,我来自韩国。我아버지(阿布几)由于翻译问题。有的地方你可能看到是叫姜龙喜欧巴,有的地方又可能叫姜勇囍欧巴。...超强解码,市场上绝大部分视频、音频格式能够播放 支持流媒体,m3u8等流媒体格式,贴链接就可以播放 支持自定义播放界面、调整大小、个性化设置程度高 可截图、可加减速播放、UI美观 什么是流媒体?...ataola与播放器 最开始是用爱奇艺万能播放,在这之前也听说过快播,仅仅是听说过而已,因为我差不多是2015年开始接触电脑,所以我没用过,巧妙地避开了快播时代。...其一是,它高可定制化和个性化,就如我现在这个主题,是扁平化程度非常高,主流播放器你播放它还是会存在一个放大缩小叉叉,然后最下面一条菜单栏,但是用它的话,在你鼠标焦点离开它后,这些都会消失,是不是很神奇

2.3K10

浏览器事件

oncanplay: 事件在用户可以开始播放视频/音频时触发。 oncanplaythrough: 事件在视频/音频可以正常播放且无需停顿和缓冲时触发。...ondurationchange: 事件在视频/音频时长发生变化时触发。 onemptied: 当期播放列表为空时触发 onended: 事件在视频/音频播放结束时触发。...onloadedmetadata: 事件在指定视频/音频元数据加载后触发。 onloadstart: 事件在浏览器开始寻找指定视频/音频触发。 onpause: 事件在视频/音频暂停时触发。...onplay: 事件在视频/音频开始播放时触发。 onplaying: 事件在视频/音频暂停或者在缓冲后准备重新开始播放时触发。 onprogress: 事件在浏览器下载指定视频/音频时触发。...onratechange: 事件在视频/音频播放速度发送改变时触发。 onseeked: 事件在用户重新定位视频/音频播放位置后触发。

2.3K20

没想到成人网站用技术都甩我们几条街!

它还允许我们以不同位置查看“瀑布型”报表 Q:我不得不假设前端最重要和最复杂功能是视频播放器。视频之前添加广告、标记视频亮点、更改视频速度和其他功能,您如何保持播放性能、功能和稳定性?...jquery和jqueryUI正在慢慢地离开,因此我们将回到纯js中更高效面向对象编程。在某些情况下,框架也非常有趣。...我们开始使用Picture-in-Picture API,在我们一些页面上播放浮动视频,主要是为了获得用户对这个想法反馈。...例如,一些iOS移动设备不允许我们在全屏模式下自定义视频播放器,它们强制使用原生QuickTime播放器。我们在想新点子时必须考虑到这一点。...Go, Vertica 用在需要地方 对于前端,我们主要用普通Javascipt,我们正慢慢舍弃JQuery,我们刚刚开始使用框架,主要是Vue.js Q:局外人角度来看,成人网站似乎非常相似:

2.3K20

前端成神之路-WebAPIs07

触屏事件 1.1.1 触屏事件概述 移动端浏览器兼容性较好,我们不需要考虑以前 JS 兼容性问题,可以放心使用原生 JS 书写效果,但是移动端也有自己独特地方。...然后用盒子原来位置 + 手指移动距离 手指移动距离: 手指滑动中位置 减去 手指刚开始触摸位置 拖动元素三步曲: (1) 触摸元素 touchstart: 获取手指初始坐标,同时获得盒子原来位置...原理就是: 当我们手指触摸屏幕,记录当前触摸时间 当我们手指离开屏幕, 用离开时间减去触摸时间 如果时间小于150ms,并且没有滑动过屏幕, 那么我们就定义为点击 代码如下: //封装tap,解决click...移动端视频插件 zy.media.js H5 给我们提供了 video 标签,但是浏览器支持情况不同。 不同视频格式文件,我们可以通过source解决。...但是外观样式,还有暂停,播放,全屏等功能我们只能自己写代码解决。 这个时候我们可以使用插件方式来制作。 我们可以通过 JS 修改元素大小、颜色、位置等样式。 1.6.

3.5K10

解析视频直播平台源码中对-世界杯超大规模场景下码率控制

在本月重庆云栖大会飞天技术汇专场中,阿里云高级算法专家黄海宇分享了题为《超大规模直播码率控制》议题,生产链路角度来说世界杯怎么让观众看到更加清晰视频。...我们通常概念是清晰度越高码率越高,要求用户下行带宽更高。 第二,码率控制影响用户流畅度影响,用户播放网络各不相同,当用户带宽大于视频码率时,才够流畅播放。...我们先看一下整个视频编码过程是怎么样: 下图上面这条线是一个1080P视频转成1080P视频进行播放一个流程,首先是解码,这一步是不会有视频清晰度损失;然后是视频编码,比如说一个视频25...在播放时候肯定不希望能够看到一个清晰度剧烈抖动视频,这对人眼观看是极其糟糕,于是我们尝试用一种叫CQP方式进行视频编码,这实际是确定了视频编码量化步长,这个情况下可以得到清晰度相对稳定视频...第一个波动很好解释,因为中场休息时很多观众离开,中途精彩进球会回来一部分观众,下半场开始又有很多观众继续观看。

80400

HTML中DOM 对象事件

oncanplay 事件在用户可以开始播放视频/音频(audio/video)时触发。...onloadedmetadata 事件在指定视频/音频(audio/video)元数据加载后触发。 onloadstart 事件在浏览器开始寻找指定视频/音频(audio/video)触发。...onpause 事件在视频/音频(audio/video)暂停时触发。 onplay 事件在视频/音频(audio/video)开始播放时触发。...onplaying 事件在视频/音频(audio/video)暂停或者在缓冲后准备重新开始播放时触发。 onprogress 事件在浏览器下载指定视频/音频(audio/video)时触发。...onratechange 事件在视频/音频(audio/video)播放速度发送改变时触发。 onseeked 事件在用户重新定位视频/音频(audio/video)播放位置后触发。

1.4K20

再谈BOM和DOM(7):HTML DOM Event 对象属性及DOM事件详细列表

oncanplay 事件在用户可以开始播放视频/音频(audio/video)时触发。...onloadedmetadata 事件在指定视频/音频(audio/video)元数据加载后触发。 onloadstart 事件在浏览器开始寻找指定视频/音频(audio/video)触发。...onpause 事件在视频/音频(audio/video)暂停时触发。 onplay 事件在视频/音频(audio/video)开始播放时触发。...onplaying 事件在视频/音频(audio/video)暂停或者在缓冲后准备重新开始播放时触发。 onprogress 事件在浏览器下载指定视频/音频(audio/video)时触发。...onratechange 事件在视频/音频(audio/video)播放速度发送改变时触发。 onseeked 事件在用户重新定位视频/音频(audio/video)播放位置后触发。

2.1K40

《101 Windows Phone 7 Apps》读书笔记-Subservient Cat

默认情况下,MediaElement在加载时自动播放视频(对于网络视频来说,只要缓冲了足够视频流,它就开始播放),但是,我们可以将AutoPlay属性设置为false,来更改这种设置。...界面上来看,使用MediaElement元素很直接。但是,也有很多需要说明地方。下面例举了5个需要注意点: 1. 一个应用程序frame只能包含一个MediaElement!    ...否则,如果我们需要播放多个视频,那么我们需要复用同一个MediaElement,或者将不使用MediaElementelement tree中移除。 2....➔ 在页面加载时,视频就自动开始播放(因为代码中AutoPlay属性没有设置为false),但是我们不想播放整个视频来展示猫咪所有动作。相反,我们只应该播放视频前1.5秒。...但是,事实证明这种担心是多余,因为在页面离开时,MediaElement会暂停所播放视频

94490

「JavaScript 」动画基础 - 03

触屏事件 1.1.1 触屏事件概述 移动端浏览器兼容性较好,我们不需要考虑以前 JS 兼容性问题,可以放心使用原生 JS 书写效果,但是移动端也有自己独特地方。...然后用盒子原来位置 + 手指移动距离 手指移动距离: 手指滑动中位置 减去 手指刚开始触摸位置 拖动元素三步曲: 触摸元素 touchstart: 获取手指初始坐标,同时获得盒子原来位置...当我们手指离开屏幕, 用离开时间减去触摸时间 如果时间小于150ms,并且没有滑动过屏幕, 那么我们就定义为点击 代码如下: //封装tap,解决click 300ms 延时 function tap...移动端视频插件 zy.media.js H5 给我们提供了 video 标签,但是浏览器支持情况不同。 不同视频格式文件,我们可以通过source解决。...但是外观样式,还有暂停,播放,全屏等功能我们只能自己写代码解决。 这个时候我们可以使用插件方式来制作。 我们可以通过 JS 修改元素大小、颜色、位置等样式。 1.6.

1.1K20
领券