1. 程式人生 > 實用技巧 >使用ffmpeg合併B站快取的m4s格式音訊和視訊檔案

使用ffmpeg合併B站快取的m4s格式音訊和視訊檔案

主要使用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是當發生覆蓋的時候用的,可以不要,後面那個???

成功執行後的檔案就是如下圖所示的合併後的檔案幷包含標題。