主要使用bash和ffmpeg工具进行合并。
ffmpeg使用静态编译的版本,可以直接使用,不需要下载源包编译节省时间。
下载地址:https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
使用下面脚本,可能需要改动一些地方 ,如目录下是否是64
可以看到P29的标题为“7-7”,对应在B站客户端的位置即下图标注处:
脚本如下,其中的判断可有可无,避免缺少entry.json导致没有文件名造成合并后覆盖已经合并的文件:
for i in `ls` do part=$(grep -P -oi '\K(part":")\K[^"]*' $i/entry.json) if [ ! ${part} ] then part=$i fi ffmpeg -i $i/64/audio.m4s -i $i/64/video.m4s -vcodec copy -acodec copy -y -strict experimental Python核心技术进阶训练篇/"${part}.mp4" done
ffmpeg中的-i为导入的两个音视频文件,vcodec和acodec后面的copy即按原来的codec复制文件流,y是当发生覆盖的时候用的,可以不要,后面那个???
成功执行后的文件就是如下图所示的合并后的文件并包含标题。