5 分钟无损合并 B站 m4s 缓存为 MP4:m4s-converter 完整上手指南
5 分钟无损合并 B站 m4s 缓存为 MP4:m4s-converter 完整上手指南
【免费下载链接】m4s-converter一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter
凌晨追完的纪录片、攒了大半年的课程,某天再点开却提示"文件已损坏"。翻到 B站缓存文件夹,满屏 m4s 后缀,双击一个都打不开。别删——这些文件没坏,只是被"拆开"存了。m4s-converter 是一个跨平台小工具,能把 B站缓存的 m4s 音视频无损合并成标准 MP4,零转码、几秒完成,让你的收藏随时能播、能存、能迁移。
动手之前,先搞懂 m4s 到底是什么
B站客户端缓存视频时,不给一个完整文件,而是把画面和声音分成两个独立文件:video.m4s(纯视频轨道)和audio.m4s(纯音频轨道),再配一份记录标题、时长的元数据。它的设计初衷是边下边播、省流量,但对普通用户来说,绝大多数播放器根本不认识 m4s,认的也只有一个轨道——结果就是"有画无声"或"有声无画"。
这带来的麻烦很具体:文件一旦离开 B站客户端环境就很难再被完整读取,换电脑、放进 NAS、投到电视几乎全被卡住;视频下架后,缓存文件失去关联信息,更容易出现异常。
m4s-converter 的思路是"拼回"而非"重做"。它扫描缓存目录,自动判断哪个是画面、哪个是声音,再调用内置的 GPAC MP4Box 引擎把两轨直接装进同一个 MP4 容器,不重新编码任何一帧画面。识别逻辑写在 识别模块,合成动作在 合成模块 完成。打个比方:m4s 像是一幅画被拆成"左半边"和"右半边"两张图分开放,转码是拿两张图重新画一遍、难免走样,而 m4s-converter 只是把两张图拼回完整的一幅——原图一笔没动。
三步合成第一个 MP4:双击路线和命令行路线
先说结论:合成结果会按"合集名-UP主"分目录,整齐放在缓存目录下的output文件夹里,完成后自动帮你打开。下面两条路线任选其一。
双击路线(Windows,最省事):解压后双击m4s-converter.exe,看到免责声明按回车同意,程序自动走完"扫描 → 识别 → 合成 → 打开输出文件夹",全程无需任何设置。
命令行路线(macOS / Linux):先拿到程序(源码克隆地址为https://gitcode.com/gh_mirrors/m4/m4s-converter),然后:
./m4s-converter # 直接运行,自动识别默认缓存目录首次运行会自动释放内置的 MP4Box 引擎,之后直接开工。默认缓存路径在 Windows 下通常是Videos\bilibili,macOS/Linux 默认在~/Videos/bilibili,如果你的缓存不在这里,就用到下一节的-c。
基础用法之外:藏在参数里的三个开关
默认流程之外,几个参数能覆盖大多数"特殊"情况。它们都遵循"谁需要 → 怎么用"。
- 缓存放在移动硬盘、路径不标准→ 用
-c指向真实缓存目录:
./m4s-converter -c "/Volumes/Media/bilibili_cache" # 手动指定缓存目录- 只想看纯画面、不要弹幕→ 加
-a关闭自动生成的弹幕字幕;想调字体、字号、滚动速度、屏蔽词等十余项样式,改 弹幕样式设置 里的默认值再重跑。弹幕本身是缓存里的 XML 转成的 ASS 字幕(弹幕字幕转换),所以在任意播放器里都能开关。 - 有些 MP3、视频碎片没法合并,想留个底→ 加
-u,把它们统一收进output下的"未合并文件"目录,方便手动处理。 - 系统里缺 MP4Box 引擎→ 加
-g select弹出文件选择框手动挂载(参数定义见 命令行参数)。
另外有个贴心细节:合成超大合集时想停,直接按Ctrl+C,程序不会立刻强杀,而是等当前这个文件合完再干净退出,不会给你留半个残缺的 MP4。
拿证据说话:无损合成有多快
空口无凭,下面是项目方在固态硬盘上给出的真实记录(m4s-converter 列为实测,传统转码为同规模重编码的常见水平估算,仅供参考):
| 缓存文件大小 | m4s-converter 耗时 | 传统转码估算耗时 | 画质变化 | 操作成本 |
|---|---|---|---|---|
| 1.46 GB | 约 5 秒(实测) | 约 2 分钟(估算) | 无损失 | 一条命令 |
| 11.7 GB | 约 38 秒(实测) | 约 18 分钟(估算) | 无损失 | 一条命令 |
数据口径说明:以上为项目 README 中给出的固态硬盘测试记录,转码耗时是常见估算值。核心结论不变——零转码意味着几乎不耗时、画质零损失,这也是它相对格式工厂一类重编码工具最大的价值。
顺带一提:合成后的 MP4 体积通常比两个 m4s 之和略小,这是去掉了缓存里的冗余索引,画面和声音质量与原缓存一致,别把"变小"理解成"被压缩"。
避坑手册:高频问题速查
Q:提示"找不到 m4s 文件",但我明明看到文件在?A:多半是-c指错了层级,应指向"下载目录"这一层,而不是某个单 P 子目录。也可能是网络中断导致缓存残缺,程序会按规则跳过未完成项。建议删除该视频缓存文件夹、重新缓存后再转。
Q:弹幕显示乱码怎么办?A:ASS 字幕依赖系统中文字体渲染,请确认装了黑体、微软雅黑或思源黑体等中文字体。仍不理想就调弹幕样式里的字体名称与字号。
Q:重复运行会不会重复合成?A:不会。工具会给每次合成生成哈希记录并写入 title/artist/album 元数据,下次运行会精确识别"这个 MP4 就是我合过的",直接跳过。已转换内容在日志里会提示"跳过已合并文件"。
Q:中途按了 Ctrl+C,文件会不会坏?A:不会。程序会等当前文件合成完毕再退出,已完成的 MP4 完整可用。
Q:手机缓存的视频也能转吗?A:可以。工具兼容安卓端缓存结构(entry.json+video.m4s/audio.m4s+danmaku.xml),选对缓存目录即可,相关分支也在 识别模块 中。
Q:我只想提取背景音乐,可以吗?A:工具专注"合并"而非"抽取",但用-u能把未合并的音频统一汇总到output下的"未合并文件"目录,方便你自行取用。
收尾
技术的意义,是让你辛苦攒下的东西不再轻易溜走——用 5 分钟跑一次 m4s-converter,把"拆开"的音视频拼回一个个标准 MP4,从此换电脑、传手机、投电视都能自己说了算,你的收藏由你做主。
最后提醒一句合规边界:请只转换你本人通过官方客户端合法缓存的内容,转换结果严格限于个人备份,切勿传播或商用。
【免费下载链接】m4s-converter一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
