1、你需要缓存文件。这一步简单,略过。
2、你的这个需求,网络上现有教程大多告诉你用什么软件,我试了试,不太好用。选择使用ffmpeg(具体操作教程可参考这个老兄的:https://blog.csdn.net/qq_44243059/article/details/130111399)。
3、用这个老兄的方法走到最后一步走不通,主要原因是哔哩哔哩对缓存的m4s文件做了点处理,需要修改一下才可以(具体操作见另一个老兄的:https://www.bilibili.com/video/BV1gv4y1M7yn/?t=108,这个帖子下有一个叫做黄色水彩笔的给了python代码,我把他的python代码贴在下边,加了一行调用代码举例)。
按照Up说的方式修改成功了,根据这个原理,我写了一段Python代码,可以自动化破解m4s了。源码如下
def fix_m4s(target_path: str, output_path: str, bufsize: int = 256*1024*1024) -> None:
assert bufsize > 0
with open(target_path, 'rb') as target_file:
header = target_file.read(32)
new_header = header.replace(b'000000000', b'')
new_header = new_header.replace(b'$', b' ')
new_header = new_header.replace(b'avc1', b'')
with open(output_path, 'wb') as output_file:
output_file.write(new_header)
i = target_file.read(bufsize)
while i:
output_file.write(i)
i = target_file.read(bufsize)
fix_m4s('F:/6242325/6242325_da7-1-30216.m4s', 'F:/6242325/audio.m4s')
4、昨晚第三步后就可以用ffmpeg合并视频了。