利用FFmpeg自动批量处理m4s文件
缓存了一些视频m4s文件,只能用指定的软件打开,网上查了一下,需要去掉m4s文件开头的9个0,还要用FFmpeg将两个文件合并成一个文件。 经仔细研究缓存目录和其中文件,发现以下特点:
“缓存目录”中有很多“数字文件夹”,里面有两个m4s文件也是同样的数字开头,用记事本打开videoInfo.json文件,可以提取文件信息:
#组号 "groupId":2619789
#组名 "groupTitle":"高中历史纲要下"
#文件ID "itemId":1440176378
#文件名 "title":"实录|高中历史必修下|第1课《文明的产生与早期发展》"
手工去掉m4s文件前面9个0,将两个同名文件通过FFmpeg合并后生成对应的mp4,就能脱机播放了。最后还要参考videoInfo.json改成对应的汉字文件名。
现在流行AI,如何利用“AI豆包”帮我处理一下?方案如下:
作为python除学者,需要在win7环境(方便向下兼容)处理m4s文件。
1、指定缓存目录的路径,指定FFmpeg工具所在目录的路径,指定存放“处理结果”的路径。
如果没有找到FFmpeg,请提示下载地址。
2、遍历所有包含m4s文件的目录,以二进制的方式处理m4s文件:
如果“前9个字节是0x30”则移除(0x30 是字符 '0' 的 ASCII 值),保留原文件名和后缀名。
否则,可以直接进入下一步处理。
3、进入找到的目录,提取videoInfo.json文件中的信息。
4、从中提取"itemId"作为“文件ID”、"title"作为“文件名”、"groupTitle"作为“分组号”
显示处理进度:已处理“文件ID”、“分组号”、“文件名”。
5、在当前目录利用FFmpeg合并两个以“文件ID”开头的m4s文件,生成的mp4文件改名成“文件名”.mp4,
放在“处理结果”之“分组号”目录里面。
显示处理进度:已合并处理完成 “文件名”.mp4
FFmpeg 的命令行为 ffmpeg.exe -i 找到的第一个.m4s -i 找到的第二个.m4s -codec copy“文件名”.mp4
完成后返回到第3步,直到处理完所有目录。