使用ffmpeg合併B站快取的m4s格式音訊和視訊檔案
阿新 • • 發佈:2021-01-11
主要使用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是當發生覆蓋的時候用的,可以不要,後面那個???
成功執行後的檔案就是如下圖所示的合併後的檔案幷包含標題。