用 m4s-converter 把B站缓存m4s转成MP4:零画质损失
【免费下载链接】m4s-converter一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter
你缓存好的视频,打开缓存文件夹一看,竟是两个播放器都不认的 m4s 文件。m4s-converter 把它们装回 MP4,不重编码,也不负责下载。
m4s-converter 转换原理:不转码,只合并
B站缓存的 m4s,像一部电影的画面和声音被拍在两条胶片上。m4s-converter 把两条胶片重新接成一条,逐帧通过,一帧都不碰。它做的,只是把两路轨道拼回标准容器。它不做的,是重新编码和转码。
为什么B站缓存的m4s文件是拆开的
为了在线播放更流畅,B站把画面和声音拆成两路,各自独立缓存。两路都完好,但没有任何播放器认识这种"双轨"形态。
自测一下:打开视频的缓存文件夹。看到两个.m4s文件加一份 json 信息文件,缓存就是完整的,可以开工;只剩一个 m4s 或 json 信息缺失,说明缓存中断过。
m4s-converter 快速上手:从缓存到MP4三步
拿到工具。从项目的发布页下载对应系统的可执行文件,Windows 双击即可运行。想自己编译的话,拉取源码:
git clone https://gitcode.com/gh_mirrors/m4/m4s-converter找到缓存。默认缓存目录在用户主目录Videos下的bilibili文件夹。随便打开一个视频子文件夹,确认有 m4s 文件和信息文件就能开工。
运行合成。
./m4s-converter首次运行会先显示使用条款,按任意键开始。
之后全是自动的:递归扫描缓存目录,配对画面与声音轨道。它读取标题和分P来给文件命名,并把 XML 弹幕转成 ASS 字幕。
固态硬盘上,1.46GB 约 5 秒 ⚡,11.7GB 约 38 秒。
转好的 MP4 统一放在缓存目录下的output子文件夹,按剧集归入子目录,结束还会自动打开它。
m4s-converter 命令行参数速查
-c "路径":手动指定缓存目录。缓存放在移动硬盘或别的磁盘时适用-a:关闭弹幕字幕的自动生成。想要干净画面时适用-o:合成时覆盖同名文件。想重跑并替换旧版本时适用-u:把未合并的文件归入汇总目录。想筛查哪些没成功时适用-g "路径":手动指定 MP4Box 的位置,-g select会弹出选择框。macOS 先装好 GPAC 再用它指过去-h/-v:查看帮助和版本信息
m4s-converter 合成失败怎么办
现象:屏幕提示"未缓存完成,跳过合成"。 原因:缓存中途断过,文件不完整。 处理:回B站重新缓存这条视频,再跑一次。
现象:转出来的 MP4 没有声音。 原因:音频轨道文件缺失或损坏。 处理:重新缓存后再转。
现象:没有弹幕字幕。 原因:缓存时没有弹幕数据。 处理:先确认视频本身播放正常,字幕不必强求。
现象:macOS 上找不到 MP4Box。 原因:macOS 版不内置 MP4Box。 处理:先安装 GPAC,再用-g指定路径。
m4s-converter 没有下载视频的功能,它只处理你本人合法缓存的内容,结果仅供个人备份。那俩没人认的 m4s,终于又能播放了。
【免费下载链接】m4s-converter一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考