假日无事,手撸几行代码实现B站缓存数据视频合成,主要原理在:
1、查找m4s文件,二进制编辑,去除前9个0,并本地保存
2、调用ffmpeg进行音视频合成,需要注意中文路径问题(下载中文版的ffmpeg,放到系统path中)
代码如下:
#!/usr/bin/python # -*- coding: utf-8 -*- import sys import os import glob import re import time import json import io import argparse import concurrent.futures import subprocess import ffmpeg def parse_args(): parser = argparse.ArgumentParser(description='video and audio m4s to mp4') parser.add_argument('--workdir', type=str, default='D:\\bilibili\\', help='the dir to work ') parser.add_argument('--num_threads', type=int, default=8, help='the num of threads to combine video and audio file to mp4') args = parser.parse_args() return args def remove9zero(fn): with open(fn, 'rb+') as f: data = f.read() f.seek(0) f.write(data[9:]) f.truncate() def renamefile(oldfn, newfn): try: os.rename(oldfn, newfn) print("rename complete!") except FileNotFoundError: