B站视频自动合成

B站视频自动合成

未经允许不得转载!

bilibili App 下下来的文件是分离的:纯视频合纯音频,单独每个都是不完整,这里我利用FFmpegshell脚本来实现自动化合成。
脚本只针对一个目录下多p的情况,多目录多p的情况可以根据脚本自行修改。
备注: 安卓版B站缓存下来的文件位置为/Android/data/tv.danmaku.bili/download/

前置

下载FFmpeg,去FFmpeg官网下一个,可以是独立程序,也可以是
下载shell模拟器,我这里用的是git附带的git-bash,可以去git官网下载,最好下Portable版。

执行的脚本

#!/bin/bash

echo "Copyright (c) 2020 Yahuan Jin. All rights reserved."

## v3
### * fix 带空格的标题的文件不能合并生成
### * 版增加目录树的排序: | sort -n
### * ffmpeg 静默执行,不打印日志: -loglevel quiet
### * 去除控制台的警告输出: awk: cmd. line:1: warning: regexp escape sequence `\"' is not a known regexp operator
## v2
### * 版自动遍历目录树(支持多p自动遍历)

## ffmpeg 的根目录
FFMPEG_DIR="/D/jyh.program.portable/Captura/Captura-Portable/Codecs"
## ffmpeg 主程序路径
FFMPEG_PATH="${FFMPEG_DIR}/ffmpeg"
## 存放b站缓存的文件的根目录
SOURCE_DIR="/F/bilibili/202060761"
## 合并b站缓存的文件的目标目录
TARGET_DIR="/F/bilibili/target"

## ffmpeg 的目标文件夹不能自动创建,需要手动创建
if [ ! -d $TARGET_DIR ]; then
    mkdir -p ${TARGET_DIR}
fi

echo "starting..."

## 遍历目录树
for i in `ls -l ${SOURCE_DIR} | awk '{print $9}' | sort -n`;
do
    source_base_path="${SOURCE_DIR}/${i}"
    video_path="${source_base_path}/64/video.m4s"
    audio_path="${source_base_path}/64/audio.m4s"
    entry_json_path="${source_base_path}/entry.json"

    ## 拿出标题
    # target_name=`cat ${entry_json_path} | awk -F '"title":' 'match($2,/\"([^\"]*)\"/,a){print a[1]}'`
    ## 拿出实际标题
    target_name=`cat ${entry_json_path} | awk -F '"page_data":' 'match($2,/"part":"([^"]*)"/,a){print a[1]}'`
    ## 标题中的所有空格替换为'_'(shell 中带空格会被当成参数分割符)
    target_name_final=$(echo ${target_name} | awk '{gsub(/ /,"_")}1')
    #echo "target_name=      "${target_name}
    #echo "target_name_final="${target_name_final}

    target_path="${TARGET_DIR}/${target_name_final}.mp4"
    #echo "target_path="${target_path}

    command="${FFMPEG_PATH} -i ${video_path} -i ${audio_path} -codec copy ${target_path} -loglevel quiet"
    #echo "${command}"

    #echo "${target_path}"
    $(${command})
    echo "finish ==> "${target_path}
done 

echo "ending..."

执行脚本

  1. 打开git-bash
  2. 然后执行脚本
     # 脚本的路径和名字根据实际情况自己修改
     sh /f/bilibili/bilibili_merge_v3.sh
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值