最近有想要在b站上下载一些视频,但是目前只能在移动端缓存,并且格式不为普通的MP4格式,作为计算机专业学生当然要想办法解决这个问题啦

使用环境:win10 + Ubuntu 18.04子系统

指令神马的都在Ubuntu18.04子系统上运行的,比使用虚拟机量级轻,windows硬盘默认使用挂载方式,子系统访问磁盘时,C盘的位置为/mnt/c/,以此类推D、E盘等,也可使用Ubuntu虚拟机,需要互相导文件或共享文件夹

直接在子系统上添加源装ffmpeg:https://blog.csdn.net/lwgkzl/article/details/77836207

1. 在手机上缓存高清格式视频,缓存地址在一些教程中有提到过,如这个(https://blessing.studio/use-ffmpeg-to-concat-flv-videos-downloaded-by-bilibili-client/) ,即手机的 /Android/data/tv.danmaku.bili/download 目录下,目录结构:

10034455(视频 AV 号)
├── 1(视频的各分 P)
│   ├── danmaku.xml(弹幕文件)
│   ├── entry.json(单 Part 信息、标题等等)
│   └── lua.flv.bili2api.3(分段视频,一段差不多六分钟)
│       ├── 0.blv(就是改了后缀的 flv 文件)
│       ├── 0.blv.4m.sum(校验码)
│       ├── 1.blv
│       ├── 1.blv.4m.sum
│       ├── 2.blv
│       ├── 2.blv.4m.sum
│       └── index.json(储存分段信息)
├── 2
└── 3

关于blv格式的文件转换该教程已经很详细了,但是,后面发现除了这一种格式外,b站还有另一种格式的缓存方式,使用DASH技术,视频文件的缓存文件格式为m4s,分音频和视频

10034455(视频 AV 号)
├── 1(视频的各分 P)
│   ├── danmaku.xml(弹幕文件)
│   ├── entry.json(单 Part 信息、标题等等)
│   └──80
│       ├── audio.m4s
│       ├── video.m4s
│       └── index.json(储存分段信息)
├── 2
└── 3

需要将音频视频合并,还是使用ffmpeg,指令:
 

ffmpeg -i video.m4s -i audio.m4s -c:v copy -strict experimental output.mp4


简单粗暴,好像没什么问题 ヽ( ̄▽ ̄)ノ

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐