查看详情

【转】你真的了解当年看过的AVi么

感谢 “珠思码记” 授权转载,微信搜索 “珠思码记” 关注公众号。 自从接手优酷的web播放器之后,点了快一年的播片儿技能点,感觉技术面变得越来越偏门,至少在前端界播片儿(音视频)技术一直水花甚少,真是一入片儿技深似海,从此前端是路人。 想在被世人遗忘之前 出书立传,又恐无人问津。 哈哈扯远了,既然一只脚伸到音视频技术这个泥潭里搅和了一圈之后,总要写点什么。这篇主要是来闲聊,从大家打小看过的片儿里扯一扯音视频格式的前世今生。 主要是讲故事,感兴趣的话可以一看。不感兴趣的话,可以直接点赞打赏红包转账了[手动狗头]。 想必很多人的硬盘里都会有这些奇奇怪怪的文件吧。文件名啥的可能各有不同,但扩展名大家一定耳熟能详:.avi .rmvb .mkv .3gp bla bla~。 而且随着时间的推移,当你在网上down片儿的时候,发现有些已经不常见了,新的又冒了出来。那这些都是什么玩意儿呢? 那我要先解释一个概念 敲黑板 0x01 封装格式/编码格式 可以看出,上面像mkv avi什么的都是视频的封装格式,或者说容器格式。如果把视频的内容比作酒的话,那所谓封装格式其实就是这个酒瓶。有酒瓶才好运输(网络传输下载)和保存(文件形式放在硬盘上) 详情 »

查看详情

理解 MPEG 的 MOVIE ATOM

原文地址: https://www.adobe.com/devnet/video/articles/mp4_movie_atom.html @Maxim Levkov 本文是来自 Adobe 的工程师撰写的,用于帮助大家学习 moov atom 以及对比了整个 Adobe Flash Player 支持的视频流格式,加深对 moov atom 的功能和位置的理解。有助于我们进一步理解视频编解码想过的知识。 User level Advanced 要在Adobe Flash Platform上播放的视频文件比较简单。但是,经常令人困惑的一个不太能够理解 moov atom, 它包含有关视频文件相关的信息。moov atom 也被叫做 Movie atom,它里面定义视频的时间尺度,时长,显示特性,以及含有用于在电影每个轨道信息。moov atom 的最佳位置取决于所选的传输方式。本文深入研究moov atom 周围的细节, 详情 »

查看详情

React-360 框架最新进展

由于 react-360 已经很久没有进行代码变动了,让人都很怀疑这个项目是不是快要关停了,最近 OC6 也没有发布新的 设备,让人还是很担心这个项目的未来。 不过最近开发者一,统一回复了大家 传送门 #75 作者回答了关于 WebXR 的集成和最近一些变化, 大概总结下: 作者表示一直在默默的工作,但是需要有明显的变化才会加快目前代码的变动,新的架构方式,可以关注 packages 增加内容 WebXR 草案上周才刚刚结束,因此我们会保持等待的姿势等待 WebXR 正式推出,当前代码的设计会非常方便的进行对 WebXR 的支持 计划取消掉 React-Native 的引入,我们会自己实现模块管理和渲染的方式,这位有助于提升在 Oculus go 或者 Oculus Quest 上的渲染速度 总之,大家需要等待,并保持耐心。 详情 »

查看详情

十月天

已是金秋,今年赶上70周年大庆,明显可以感觉到各个地方浓厚的氛围。从中钢大厦的灯光,到绿地中心的“我爱我的祖国”。从另一个角度是最近两年贸易战和香港事件给予国人空前的爱过情怀。60周年的时候,自己还在读高中,那个时候还有点小军事迷,10年过去后明显加快了建设的节奏。十年不长,十年也不短,变化总是无言中,但是还是应该谢谢祖国,谢谢给予我们平稳的发展,给予年轻人机会。 九月份,已经似乎感受到人少了很多。大概这是一个健康的节奏,没有人可以预料未来的走向,但有的人选择相信,有的人选择跟随自己。这都是合理的取舍,经过反复实验,找到自己内心所想就好。 回家几天,一直下着雨。北上后很少感受漫长的雨天,家里房子拆了重建了七层,虽说模样大变了,但是内心还是能够想起这里的点滴,大概岁月的无情在于会不停给予周遭事物的变化,岁月的友情在于给予生命难以抹去的记忆。我想,大概你会怀念这些日子,也会仔细计划未来的日子。 回成都的第一天,特意找了老同学打球,难得有这样的聚会,十年前,这是特常见的事情,十年后天各一方的队友,虽然跳不高了,但还是可以保持曾经的默契配合。假期剪完了飞哥的视频,计划下周送给他,我相信这份力量能给予走到他想走到的目标。国庆和 JQ 聊了很多,其实大概我也在想是不是所谓突然现身的幸运,哈哈哈都没有觉得怎么努力,可是记得更深刻是狗焕的那句感叹。 未来值得你期待~ 详情 »

查看详情

新博客改造的一些有趣的技术要点

最近随着 Ghost 升级,博客主题也做了一些动效的调整,这里面有一些比较有意思的细节,可以和大家分享下。 Ghost-Theme 落地页动画衔接 从首页列表点击进去,实际上是比较简单的 transition 过渡,主要是利用透明度变化和背景图片的放大缩小来完成的。 .cover, .overlay{ content: ''; display: block; position: absolute; top: 0; left: 0; right: 0; height: 100%; background-color: #000; background-position: center center; opacity: .2; background-size: cover; } .cover{ opacity: 0; transition: opacity 1.5s, transform 2s; transition-timing-function: cubic-bezier(0.5, 0, 0.2, 1); background-color: 详情 »

查看详情

Ghost 版本升级

Ghost 是一款 Node.js 上非常好用的的内容发布平台。 The professional publishing platform 由于博客是 15年暑假弄得,那个时候 Node 版本还比较低,而且那个时候 Ghost 还并非是一个特比出色的产品。不像现在非常强大,有很多的主题可以选择,更加人性化的后台管理。 升级到 1.x 由于我已经很多年没有升级了,这次升级需要先从 0.x 的版本升级到 1.x 的版本,然后再升级到 2.x 的版本保持和 Ghost 的产品线一致。 无论如何都先请备份好你的博客 JSON 数据 资源和图片(content/images) 这目录。 你可以在后台 labs 选项里看到 export 选项,然后选择导出即可获得博客的 JSON 数据资源。 而图片目录需要自己去服务器上进行拷贝。 安装 Ghost-cli ghost-cli 详情 »

查看详情

WebVR 可用性探测

Chrome 在 72 或者之后的版本开始支持 WebVR 的 API (75+ 移至 WebXR 的草案之中)。包括所有集成 Blink 内核的浏览器都会默认支持这个 API。但是实际上,我们做 VR 开发体验的时候还是希望能在合适的头显设备(HMDs)进行功能展示。 我们看下 caniuse 对 WebVR 的支持情况 其中显示: 这个意思是目前依旧需要手动开启功能,对于 Oculus 或者 HTC vivi 的头显,集成 Chrome 内核的浏览器都对该功能表示支持。 由于国内厂商集成内核版本的问题导致一些移动端浏览器默认开启了对 webVR 的支持,但是实际效果并不是理想。 我们常规检测是 if (typeof navigator.getVRDisplays === 'function') { navigator.getVRDisplays().then(displays => { if (displays.length) { // support 详情 »

查看详情

Web Video MimeCodec 究竟代表什么意思?

大家才开始学习 MediaSource 的时候,我们都会好奇,其中指定 mimeCodec 的行为: var mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"'; if ('MediaSource' in window && MediaSource.isTypeSupported(mimeCodec)) { var mediaSource = new MediaSource(); //console.log(mediaSource.readyState); // closed video.src = URL.createObjectURL(mediaSource); mediaSource.addEventListener('sourceopen', sourceOpen); } else { console.error('Unsupported MIME type or codec: ', 详情 »

查看详情

Oculus 自动唤起 VR 模式

移动设备相对传统 PC , 对 Web 的限制相对而言会更加严格一点,尤其 Webkit 针对 网页的权限限制非常严格。 比如我们常见的自动播放,随着 Safari 的限制,后面 Chrome 也开始限制音视频的自动播放功能。 同样的对于头显类设备,注入 Facebook Oculus 系列(Go, Quest 等),三星 MR 等,作为移动设备对音视频同样采取了一些限制。我们在开发 VR 的时候,必然需要唤起 VR 模式, 类似自动播放 的策略,我们也需要做唤起 VR 的手势交互逻辑。 当然唤起失败后,我们需要在界面出现点击的按钮,让用户手动点击。 // display 是 之前 navigator.getVRDisplays() 获取的关于可用头显设备对下 display.requestPresent([ { source: canvasElement, }, ]) .then(() => { console.log( 详情 »

查看详情

《天气之子》圣地巡礼

《天气之子》 已经热映许久,大陆上映也基本确认消息 新海诚新作《天气之子》上映倒计时 。 当然新海诚的作品,由于很多写实的手法,导致观众可以在动画里看到很多现实的场景的重绘,比如言叶之庭的 新宿御园,比如你的名字里面东京,统一《天气之子》大量采景是在东京完成的,因此你可以看到台场,新宿的诸多场景。 感谢 @小希在日本 提供的搜集信息,这里汇总一下一些动画电影里的场景。 后续有新的,也会在这里更新。 详情 »