m4s转MP4免费工具指南:用m4s-converter把B站缓存视频合并成MP4,一份讲透
【免费下载链接】m4s-converter一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter
"问你个事儿——"周五晚上,朋友把手机递过来,屏幕上是一个塞满.m4s文件的文件夹,"我 B 站缓存了三年的视频合集,下架前特意存的,现在一个都放不了,这玩意还能救吗?"
这个问题,恐怕是 m4s 转 MP4 话题里被问到最多的一次。答案是可以,而且不需要你懂任何编码知识。今天这篇文章就围绕"m4s 转 MP4"这件事,把 m4s-converter 这个免费的跨平台工具讲清楚:为什么 B 站缓存视频普通播放器打不开、这个工具是怎么无损合并的、怎么三分钟跑完整个缓存目录。
先说结论:bilibili 缓存视频为什么是个"半成品"
先看一个事实:你从官方客户端缓存一个视频,得到的不是一个视频文件,而是一个文件夹。里面躺着三样东西:
video.m4s—— 只有画面的轨道文件audio.m4s—— 只有声音的轨道文件entry.json—— 记录标题、UP 主、分 P 信息的"名片"
这就像网购分拣,一件完整的商品被拆成"外包装"和"说明书"两个包裹分别发货。每个包裹都完好无损,但收货人手里只有其中一半,谁都拼不出能用的成品。普通播放器只认一个完整的 MP4 容器,面对这两块"半成品"自然直接罢工。
注意,这里的关键词是半成品,不是坏品。画面和声音的数据都在,只是被放在了两个箱子里,缺少一个把它们装到一起的容器——这正是 m4s-converter 要干的活。
m4s 文件合并的核心思路:只搬家,不翻新
传统做法是把视频拉进转码软件重新编码一遍。听起来没问题,但代价是三件事:参数看不懂、画质有损失、动辄等几十分钟。为了换一个"箱子",把整个房子的装修都拆了重做,实在不划算。
m4s-converter 换了一条路:不重新编码,只做无损封装。
它调用 GPAC 的 MP4Box 把音视频轨道原样装进 MP4 容器——相当于搬家:家具、家电原封不动地搬进新房子,一件都不重做。数据完全不变,自然画质音质 100% 保留;数据只搬运不加工,速度自然也快得夸张。官方在固态硬盘上的实测数据很有说服力:
| 文件体积 | 合并耗时 |
|---|---|
| 1.46GB | 约 5 秒 |
| 11.7GB | 约 38 秒 |
几十个视频排队处理,你泡杯茶的功夫就全结束了。
它怎么知道你缓存了哪些视频:一条全自动流水线
m4s-converter 接手后的流程,可以用一句话概括:找到目录 → 识别身份 → 配对合并 → 归类命名 → 收工。
具体展开是四步:
- 自动定位 B 站官方缓存目录(
Videos/bilibili),递归扫描所有子文件夹,不需要你手动指定 - 自动读取每个视频文件夹里的
entry.json,拿到标题、UP 主、合集、分 P 等信息 - 把同一个文件夹里的
video.m4s和audio.m4s配对,交给 MP4Box 合成 - 按"合集名-UP主"建子目录,输出文件自动命名,运行完自动打开输出文件夹
期间还有个容易被忽略的贴心细节:合并前会校验已有输出文件的元数据和内容哈希,重复运行直接跳过已处理过的视频;缓存中断、没下完的视频会被标记为"未完成"跳过,绝不会给你拼出一个残缺文件。
顺带一提,Windows 和 Linux 版本内置了 MP4Box 的可执行文件(internal/linux/MP4Box、internal/windows/MP4Box.exe),第一次运行自动释放到临时目录,全程零依赖,双击就能跑。
弹幕也能保留:XML 弹幕转 ASS 字幕
如果你缓存视频就是为了收藏,那弹幕大概率是灵魂。工具默认会把 B 站缓存里的 XML 弹幕转成标准 ASS 字幕文件,本地播放器直接就能显示。字体、描边、滚动速度、透明度这些参数都在conver/setting.go里可以调整,弹幕转换逻辑则由common/synthesis.go统一调度。
m4s 文件转 MP4 的具体操作流程:三步走
第一步,拿到工具。不想碰命令行就直接下载对应系统的可执行文件;喜欢从源码走的话:
git clone https://gitcode.com/gh_mirrors/m4/m4s-converter cd m4s-converter第二步,确认缓存位置。Windows 一般在C:\Users\你的用户名\Videos\bilibili\,macOS 和 Linux 通常在~/Videos/bilibili/。每个视频文件夹里应能看到video.m4s、audio.m4s、entry.json三个文件。
第三步,执行转换:
./m4s-converter程序先弹出使用条款确认框,按回车同意后开始自动处理。转换结果统一放在缓存目录下的output文件夹,按合集分好子目录,VLC、PotPlayer、手机自带播放器都能直接打开。
进阶用法:几个参数应对个性化场景
场景一:视频缓存到了外置硬盘。默认路径找不到你的文件,用-c指过去:
./m4s-converter -c "/Volumes/Backup/bilibili"场景二:想要弹幕,但想重转一遍。同名文件默认自动重命名不覆盖,想直接覆盖用-o;暂时不想转弹幕用-a关闭。
场景三:部分视频合并不了。用-u把没能合并的音频/视频文件单独归拢到一个目录,方便你手动抢救。
场景四:macOS 用户找不到 MP4Box。需要先装好 GPAC(brew install gpac),再用-g指定路径;传-g select则会弹出一个文件选择框,图形界面点点就完事。
新手容易踩的三个坑
问:提示找不到 MP4Box?答:Windows 和 Linux 版首次运行会自动释放内置 MP4Box;macOS 版没有内置,需要先装 GPAC 再用-g指定路径。这是三个平台唯一的差异点。
问:转出来的视频没声音?答:优先检查audio.m4s是否完整。缓存中断常导致音频文件缺失或大小异常,工具会跳过这类"未完成"的视频,重新缓存一次再转即可。
问:弹幕不见了?答:弹幕转换依赖缓存里的 XML 弹幕文件。原始缓存里本来就没有弹幕数据时会自动跳过,这属于正常现象。想排查是否弹幕转换影响了流程,可以先加-a关掉弹幕功能对比一下。
最后说清楚边界,再动手
工具很好用,但它的使用边界必须讲清楚:仅限转换你本人通过官方客户端合法缓存的视频,转换结果严格用于个人备份,不要传播、分享或商用。使用即代表同意仓库中的免责声明。
现在就可以开始:
- 获取 m4s-converter(clone 或下载对应系统版本)
- 找到你的 bilibili 缓存文件夹,确认里面有 video.m4s、audio.m4s、entry.json
- 运行工具,回车同意条款,等它跑完
- 到 output 目录验收成果,本地播放器直接看
那些被 B 站下架、从此无处可看的视频,不该因为格式问题永远躺在缓存里。一次 m4s 转 MP4 的无损合并,就是把它们从"半成品"还原成能随时播放的完整备份——这个动作花不了几分钟,但留住的回忆能看很多年。
【免费下载链接】m4s-converter一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考