Bean Deng

Shanghai
Bean Deng
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 中获取视频的宽高,对于一般的视频都是

群晖 DSM7.2 Web Station 网页服务重复无法删除的问题

群晖

群晖 DSM7.2 Web Station 网页服务重复无法删除的问题

今天遇到一个问题,记录一下,解决方案参考:https://community.synology.com/enu/forum/1/post/161835?reply=502868 问题截图如下(当时忘记截图了,该截图摘自上述文档): 解决方法: 1. ssh 登录群晖 2. 执行 sudo synopkg stop WebStation,停止 Web Station 服务 3. 删除 /usr/syno/etc/packages/WebStation/Service.json 中需要删除的服务(注意记录一下 service_id,下一步需要用到) 4. 删除 /usr/syno/etc/

三件小事

随笔

三件小事

2023-09-09 于家中 讲一下最近发生的三件小事。 第一件事情是昨晚回到家准备打游戏时,耳机戴到头上感觉很松,拿下来发现,我一千多的雷蛇新款梭鱼THX空间音效双模无线耳机一侧的旋转轴断掉了。淘宝找了半天零件,只有梭鱼 X 的,没有我这款的零件可以买下来更换。联系客服想问问怎么修,让我走公众号自助报障,填了一堆信息,拍了很多照片,最后申请结果认定是人为损坏,不予受理。 想了想,可能是时候告别游戏了。毕竟已经是 30 多岁的人了。而且这几年在游戏上所能获得的快乐也越来越少了。自己越来越菜,一起玩的朋友也越来越少。一直想做一些能够提升自己快乐的事情,而游戏已经是一个对我来讲 ROI 比较低的事情了,需要花很多精力,经常玩到凌晨两三点,透支健康;还会被老婆说;而且从中所获得的快乐和成就感也在日益降低。一直以为我可以一直玩游戏玩下去,但总有那么几个时刻,脑海中会闪现出这样的念头,是时候“告别”游戏了。当然,我所指的告别,也不是说一点都不玩,而是说不再像以前一样,每天投入几个小时去玩。 第二件事,是今天中午,也就是刚才去星巴克点了杯美式,啡快的口令是:

关于成长的思考

思考

关于成长的思考

2023年07月28日 最近参加了公司的一个管理培训计划,上了很多次课,也做了很多课堂及课后作业,也参加了导师对于最后演讲答辩的指导,以及最后的导师点评和分享环节。 给我最大的收获,并不是课堂上学到的一些理论知识,也不是关于管理培训课程本身所带来的目标、团队、文化等主题能力的提升。当然,这些知识本身都会有一定的吸收,于我而言,这些内容并不是什么新鲜的内容,从工作至今,也参加过大大小小很多次类似的培训了。参加这次培训,给我最大的收获是,我重新认识到了阅读的意义。 近些年来,于我自己而言,随着娱乐生活的丰富,很少再去花精力阅读。日常的阅读基本停留于知乎热榜里的内容、工作所需的专业知识、长/短视频里零碎的信息等。我这些阅读更多的是技能和信息的获取,很少真正去「阅读」,去获得更加沉淀的精华内容。变得更加功利化,只获取表面的、需要的信息。而其余的时间更多用来娱乐了。 但我越来越发现,那些我生活中遇到的我所「崇拜」的管理者,几乎每一个的阅读量都非常大。在听他们讲话的时候,每每都能感受到他们阅历的丰富,常常都能够旁征博引,举出很多历史上的例子,或者一些名人的话。先不论这些阅读

上海居转户落户完整经历

生活

上海居转户落户完整经历

上海居转户落户完整经历 2023年05月08日 万里长征,终于到了最后一步,是时候把历时3年多的上海落户的经历记录下来了,帮助后人。 有史可证最早开始准备落户这件事情,是在2020年7月7日,当时所在 HX 公司的一个同事居转户成功了,找他打听了解了一下,才发现上海落户这件事情并不是那么遥不可及。5年3倍这个渠道,对于我们计算机行业的人来说,还是很容易实现的。 由于早些年加入创业公司以及后来自己创业时,都是按很低的标准交的社保,实际达到3倍社保标准是从2019年4月开始。5年3倍渠道要求近4年累计有36个月达到3倍社保基数,也就是到2022年3月之后,才能满足落户要求。小孩2023年报小学,所以当时定的计划是2023年完成上海落户,考虑到2022年3月就可以满足要求,留了这么多 buffer,应该可以赶得上。 理想是美好的,现实是残酷的,中间发生了不少插曲,回过头来看,最终只差几天,刚好错过小学入学信息登记的时间点。 当时为了达成2023年上海落户的目标,我设计了3个计划: * Plan A,正常居转户 * Plan B,自己之前创业的公司还一直

TimedRotatingFileHandler 不会自动清除旧日志的问题

Python

TimedRotatingFileHandler 不会自动清除旧日志的问题

2023年04月23日 话不多说,直接贴代码: file_handler = TimedRotatingFileHandler( "logs/log", when="midnight", backupCount=365, encoding="utf-8", ) file_handler.suffix = "%Y%m%d.log" file_handler.setFormatter(log_formatter) 这是我几年前写的一段写日志文件的代码,前几天发现并没有按照预期只保留 365 个日志文件。研究了一下,发现了问题所在。TimedRotatingFileHandler 中对于 midnight 的操作是这样的: elif self.when == 'D'

GitLab CI 配置自动化打包上传 Python 库

技术

GitLab CI 配置自动化打包上传 Python 库

2023年04月23日 自己之前有些 python 脚本类的项目,会用到一些通用的能力,如读取配置、打日志等,每次都 copy 一份 utils 目录有些不够优雅,于是撸了一个公共库,方便自己使用。 为了能配合 GitLab CI,setup.py 需要做一些小调整,版本号不需要手动输入了,直接读取 $CI_COMMIT_TAG,代码如下: import os import setuptools with open("README.md", "r") as fh: long_description = fh.read() setuptools.setup( name="yuanfen&

使用 GitLab CI 自动部署 Ghost 主题

CI

使用 GitLab CI 自动部署 Ghost 主题

> 2022年05月24日,居家隔离的第 N 天 今天收到了 Ghost 5.0 发布的邮件,第一时间更新了下,发现主题里有些功能已经不兼容了,于是准备对主题做下更新。在看 Ghost Integrations 的时候发现有个 GitHub 的插件特别好用,支持通过 GitHub Actions 自动部署你的主题。但是我自己的项目用的都是 GitLab,找了一圈,没有官方的插件。于是尝试自己通过 GitLab CI 来实现。 大致看了下基于 GitHub Actions 自动部署的实现方式,通过官方提供的一个 TryGhost/action-deploy-theme 的步骤,代码很简单,总共 40 行,我们来看下它做了什么: const path = require('path'

回顾2021 展望2022

日志

回顾2021 展望2022

> 2022年01月07日~2022年01月19日 又到一年回顾时,慵懒的周五下午,从柜子中翻出已经落灰的 QC35-II,打开 QQ 音乐,听着「重温50首不朽的经典英文老歌」,换了下桌面背景以便清晰显示 QQ 音乐的歌词,打开 Typora,完成各项准备工作。 回顾 2021 年,大致有这些大事: * 换了工作,从红星来到喜马,回到互联网公司,进入 WLB 的生活 * 提前还完了房贷的商业贷款部分,公积金贷款部分每月公积金还完之后还有盈余 * 上线了「星际战区」,作为自己的独立项目 * 虚拟货币回了一些本,并彻底退出了 * 猿奋的 20 万高新补贴到账 2021 年初定下的目标完成情况: * [x] 一年不安装抖音、知乎 APP * [ ] 发表 12 篇博客 * [x] 小工具集扩充 5

群晖 Let's Encrypt 配置多个泛域名 SSL 证书自动更新

群晖

群晖 Let's Encrypt 配置多个泛域名 SSL 证书自动更新

> 2021年01月08日 之前一直用的 syno-acme [https://github.com/andyzhshg/syno-acme] 配合群晖的计划任务实现泛域名 SSL 证书的更新,但是最近想切换域名,但是又要保持原有域名一段时间可用。syno-acme 的方案只支持默认证书的配置,群晖上多个证书的配置确实比较麻烦,几年前也折腾过。 不过调研了下发现,Let's Encrypt 支持将多个域名绑定到同一个证书里,于是找了下解决方案,果然有位兄弟基于 syno-acme 做了些修改 [https://10001blog.xslinc.com/?p=89],支持多个域名。不过这位兄弟是 Hard Code 的,不够通用化,于是对 syno-acme 做了些改进,并提交了 Pull request [https://github.com/andyzhshg/

fastboot FAILED (remote: Operation not permitted) 的问题

Android

fastboot FAILED (remote: Operation not permitted) 的问题

这两天买了台安卓测试设备,由于我们的项目需要系统签名,所以不得不重新刷系统。 在 fastboot flash system 的时候,每次都在最后要完成的时候报一个错误: target reported max download size of 536870912 bytes Sending sparse 'system' 1/4 (524284 KB)... OKAY [ 15.543s] Writing 'system' 1/4... OKAY [ 3.548s] Sending sparse 'system' 2/4 (524284 KB)... OKAY [ 15.483s]