python中使用ffmpeg合并音频与视频_使用ffmpeg合并B站缓存的m4s格式音频和视频文件...

这篇博客介绍了如何利用bash脚本和ffmpeg静态编译版本,将B站缓存的m4s格式音频和视频文件进行合并。通过读取每个文件夹下的entry.json获取部分标题,作为合并后文件的名称。ffmpeg命令中,-i参数指定输入的音频和视频文件,-vcodec和-acodec copy保持原始编码,-y参数用于覆盖已有文件。最终,成功合并的文件包含了标题信息。
摘要由CSDN通过智能技术生成

主要使用bash和ffmpeg工具进行合并。

ffmpeg使用静态编译的版本,可以直接使用,不需要下载源包编译节省时间。

下载地址:https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz

使用下面脚本,可能需要改动一些地方 ,如目录下是否是64

07e27455c8d1ca51e8e1465cc5e7cc9e.png

可以看到P29的标题为“7-7”,对应在B站客户端的位置即下图标注处:

f8c78adc622cc1048afe8890cf3d1977.png

脚本如下,其中的判断可有可无,避免缺少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是当发生覆盖的时候用的,可以不要,后面那个???

成功执行后的文件就是如下图所示的合并后的文件并包含标题。

6fd309be8ac44417b5b4048bffab8add.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值