修复Windows10应用商店内哔哩哔哩应用下载MP4文件无法播放问题

前言

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

今年不知道哪个版本号更新后,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是最终你生成的可以用第三方播放器播放的视频文件路径。使用>进行输出重定向。