前端

MP4Box.js 获取视频旋转信息

技术

MP4Box.js 获取视频旋转信息

2024年05月22日 声明:本文部分内容使用 ChatGPT 生成 序言 公司的一个项目中用到 MP4Box.js 在上传视频前去解析视频的宽高,并且根据宽高的比例做一些拦截,只允许 16:9 横屏的素材。后来发现一个问题,部分竖屏的素材也被提交上来了。经过研究,发现这类视频可能是由手机拍摄的,带了旋转信息,因此 MP4Box.js 中的原始宽高有问题。 什么是 MP4Box.js MP4Box.js 是一个支持在浏览器中处理 MP4 文件的 JS 库,可以实现获取 MP4 文件的元数据信息、分割文件、提取媒体样本等高级处理能力。 通过 MP4Box.js 可以从 videoTrack 中的 width 和 height 中获取视频的宽高,对于一般的视频都是

技术

前端跨项目组件化及基于Docker的快速部署方案

> 2018年04月14日凌晨 天气🌧 最近静下心来写了几个项目,花了些时间重新整理了整套组件化方案和部署方案,记录一下。 跨项目组件化 前端的组件化不用多说了,发展到现在,无论是React的还是Vue,都提供了相当方便的组件化实现。在日常项目中,有些组件其实是可以跨多个项目使用的,将这些组件抽离出来作为单独项目,并复用到其他项目中去,一来可以避免重复造轮子,加快开发速度,二来维护效率也高,一些bugfix或者新特性直接在组件中更新,项目中只需要更新引用版本号即可,方便快捷。 跨项目的组件化方式也很多,开发阶段可以用npm link,相当于在主项目的node_modules 目录中创建了一个链向组件项目的软链,方便是挺方便,但是有几个问题。一是Eslint的目录递归检查是基于最终实际目录的,也就是说虽然Eslint默认排除 node_modules 目录,但它依然会对该目录中的软链项目进行检查,一旦组件项目的Eslint规则和主项目的Eslint不一致的话,主项目Eslint就没法通过,这个比较蛋疼,就得临时禁用Eslint或者修改组件项目的规则。作为组件项目应该保证少依赖,

技术

修复position:fixed在ios虚拟键盘弹出时错位的bug

问题描述:在使用bootstrap的navbar-fixed-top时,发现在iPhone上的微信里面,当点击input弹出输入法之后,顶部fixed的navbar消失,在输入法没有关闭的情况下,向上滚动,会发现navbar在半空中。 Google了一下,发现这个问题在iOS中很常见,Bootstrap也对此进行了说明(戳这里 [http://getbootstrap.com/getting-started/#support-fixed-position-keyboards])。 > Virtual keyboards Also, note that if you're using a fixed navbar or using inputs within a modal, iOS has a rendering bug that doesn't update the position of