个人技术随想

星期天Pluma

前言

叔叔我啊,最讨厌不能赚钱的东西了。

今年不知道哪个版本号更新后,Windows应用商店里的B站客户端下载的视频即便设置导出为MP4文件,也无法直接用通用的视频播放器播放,这实在是有失体统。偌大一个公司开发的软件,怎么能“写错”这么基本的功能呢?

问题分析

MP4文件头为三个00字节,这是公开的标准。我们将从B站上随意下载的一个视频放到十六进制编辑器中,可以看到

1
2
3
4
5
6
7
Hex View  00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F

00000000 FF FF FF 00 00 00 20 66 74 79 70 69 73 6F 6D 00 ...... ftypisom.
00000010 00 02 00 69 73 6F 6D 69 73 6F 32 61 76 63 31 6D ...isomiso2avc1m
00000020 70 34 31 00 00 00 08 66 72 65 65 04 2B B2 37 6D p41....free.+.7m
00000030 64 61 74 00 00 00 5C 06 05 58 B3 E1 63 30 8C 3C dat...\..X..c0.<
00000040 9E 4F C2 39 81 09 7E AA A5 2E 20 42 49 4C 49 41 .O.9..~... BILIA

后面都是很正常的MP4文件内容,唯独在文件前端,多出了三个FF字节,这就是导致下载的视频文件无法被通用视频播放器播放的原因。我想肯定是程序员不小心写出来的bug啦,才不是叔叔想要赚钱呢!

解决方法

那么接下来,我们就帮粗心的程序员修复一下下载的文件,让它们能被正常播放吧!

如果电脑上有Linux环境(WSL也可以),那就是再方便不过的事情啦。只需要执行如下命令:

1
tail -c +4 YourLoveYourLife.mp4 > LemonRipe.mp4

其中,tail读取文件内容并输出到标准输出中。-c +NUM参数,代表从NUM位字节开始读取文件内容,如上面的-c +4表示从第4个字节开始读取文件(跳过前3个FF字节),YourLoveYourLife.mp4是你使用Windows哔哩哔哩客户端下载的视频文件路径,LemonRipe.mp4是最终你生成的可以用第三方播放器播放的视频文件路径。使用>进行输出重定向。

前言

前几天在咸鱼上买到了一块龙芯的电脑主板,CPU型号是龙芯(Loongson) 3A3000,芯片组似乎是780E。回来装系统的时候遇到了不少麻烦,这里记录一下,如果能帮到后来者,那自然是最好不过。

系统选择

实际上,我仍然推荐有条件的用户,使用龙芯官方适配的操作系统Loongnix,因为这是龙芯优化过的系统。

只不过,因为mips64el架构上的Loongnix是基于Fedora发行版的,且版本古老。我个人习惯的环境是Debian,只有LoongArch上的Loongnix才是基于Debian制作的。况且,Loongnix默认带一个GUI,连服务器版都带,我不是很喜欢先装后卸,因此我还是希望安装一个相对干净的Debian系统上去。

阅读全文 »

自从Eclipse基金会将Java EE转到Jakarta EE后,一些软件包的名称就发生了变化。而最新版的Tomcat 10,也将jakarta作为默认的命名空间。因此,从未来的角度考虑,我们新建Java Web项目的时候,就应该使用jakarta而不是javax了。

在IDEA里边,选用哪个命名空间,有一个选项可以直接切换。而如果使用的是开源的IDE Eclipse JEE版本,情况可能会让新手摸不着头脑。为了避免日后再次踩坑,这里记录一下,如何使用Eclipse jee新建一个web项目,并使用jakarta命名空间以兼容Tomcat 10或以上版本。

阅读全文 »

为什么要写这个呢?

主要吧,现在在Windows上,不管有什么多种多样的shell移植如Msys,Cygwin之类,用得最多最方便的,特别是和我目前主要使用的两个IDE/编辑器: Visual Studio与Visual Studio Code最相合的,肯定是Powershell。

但是,默认的Powershell自动补全非常难用,可以自动补全的参数就寥寥几个。我觉得还是可以稍微改进一下。

阅读全文 »

最近需要用Latex编写文章,总有为选择的环境发愁的时候,但Tex Studio的操作体验不能说非常好,字体显示,自动补全都比较麻烦。从易用性角度还是选用了VSCode。一开始以为配置VSCode使用LaTeX会非常麻烦,但实际上,这比想象中简单很多。

阅读全文 »

大家都知道可以用SSH密钥对进行身份验证,达到登录Linux主机,或者登录Git平台的目标。

但有一个问题,有时候你可能拥有几个不同的SSH私钥(虽然没什么使用多个密钥对的必要性),或者私钥文件文件名不是默认的~/.ssh/id_rsa,应该怎么指定需要使用的私钥文件路径呢?

几种常见的情景如下所示,更多详细内容,和标准的定义,请参考ssh_config手册,或在终端中键入man ssh_config查看。

阅读全文 »

我日常使用的双拼输入方案为小鹤双拼,在大部分现代输入法中均已内置,但在Windows 10系统内置的微软拼音不内置该双拼方案。

使用注册表,可以轻松向系统中添加该双拼方案。但之前在网上搜索时候,有些方法不知道为什么会失败。这里贴一个我用起来没问题的。

使用方法:

  1. 新建一个文本文件
  2. 将下列文本复制粘贴到该文本文件中
  3. 修改文件后缀名为.reg,双击合并该注册表
1
2
3
4
5
6
7
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\InputMethod\Settings\CHS]
"Enable Double Pinyin"=dword:00000001
"DoublePinyinScheme"=dword:0000000a
"Expand Double Pinyin"=dword:00000000
"UserDefinedDoublePinyinScheme0"="XiaoHe*2*^*iuvdjhcwfg xmlnpbksqszxkrltvyovt"

当你看到这篇文章的标题:

第N个我的第1篇文章

听起来很拗口对不对?其实就一个意思:我之前创建了好多个网站,写过很多次网站的第一篇文章,但出于各种原因,又重建这些网站和文章。

这次是趁着服务商打折,心血来潮弄了台不错的服务器,于是抛弃了以前的Wordpress,改用回Hexo作我的主页。同时,也备了个案,算是正儿八经提供网络内容服务了。

当然这个网站的核心内容还是没有变的,大概就是我一个人的碎碎念,随手写点小技术文章之类的放上来,希望能对大家有用。

第一篇文章有什么用处呢?我觉得可以用来写几个站点常用的功能(Tag),以后写文章时候可以复制这一部分的源代码。

阅读全文 »
0%