主要使用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是當發生覆蓋的時候用的,可以不要,后面那個???
成功執行后的文件就是如下圖所示的合並后的文件並包含標題。