python + ffmpeg 将某站的缓存视频文件批量转换为MP4格式 您所在的位置:网站首页 夸克缓存视频转换 python + ffmpeg 将某站的缓存视频文件批量转换为MP4格式

python + ffmpeg 将某站的缓存视频文件批量转换为MP4格式

2024-07-12 04:24| 来源: 网络整理| 查看: 265

这是一篇很无聊的文章,之所以写它是因为这周还没写博客,但是好像没啥可写的,刚好今天突发奇想,想要把某站的APP缓存视频文件转化为mp4 格式,方便在电脑上看,方法很简答,很快就做完了,所以,又一篇水文诞生了,罪过,罪过。

水文警告!水文警告!这是一篇毫无营养的水文!

一、题外话

话说某站可真是个好地方,原本我只是在上面看看动漫,看看别人做的鬼畜视频而已。但最近我发现上面有好多学习的课程,全部免费无广告,真心不错,对于热爱学习的我来说,这里简直就是天堂。

二、准备工作 1. 安装 ffmpeg

请参考本人另外一篇文章:https://blog.csdn.net/qq_38863413/article/details/105017775

2. 安装ffmpy pip install ffmpy 三、分析缓存视频的目录结构

首先查看目录的结构:

在这里插入图片描述 这里我多说几句,某站的缓存视频的文件根目录可以在app中查看你的缓存目录信息,我用的是android 机器,我的位置是:/Android/data/tv.danmaku.bili/download ,我选取了我缓存的一个视频根目录: 76426972 。 目录的结构如上图所示: 首先第一层子目录是章节号,然后每一章节目录里面有一个文件夹,我们暂时称它为 av_path 吧,因为有audio.m4s 和 video.m4s 。通过分析之后我得知 danmaku.xml 貌似是弹幕文件,entry.json 中存储了视频的章节信息,名称等信息。这可以为转化后的视频命名,不错不错,省事了。

看一下 entry.json 都保存了什么,将其内容复制到 浏览器控制台查看一下。

在这里插入图片描述 信息很全面,可以使用 entry.page_data.part 为输出视频命名。

编写代码 from ffmpy import FFmpeg import os import json # 缓存视频的根目录 root_path="/home/qianqianjun/视频/78693479" av_path="64" # 视频输出的目录 output_path="/home/qianqianjun/视频/Tensorflow2.0教程" os.makedirs(output_path,exist_ok=True) chapters=os.listdir(root_path) for chapter in chapters: # 获取缓存视频文件目录 audio_path=os.path.join(root_path, chapter, av_path, "audio.m4s") video_path=os.path.join(root_path, chapter, av_path, "video.m4s") # 获取输出视频名称 entry_path=os.path.join(root_path, chapter, "entry.json") with open(entry_path, encoding="utf-8") as f: entry=json.load(f) name=entry['page_data']['part'] output=os.path.join(output_path,"{}.mp4".format(name)) if os.path.exists(output): continue # 使用ffmpeg 合并视频和音频 translator=FFmpeg( inputs={ video_path:None, audio_path:None }, outputs={ output:'-c:v copy -strict experimental' } ) translator.run() print("视频 {}.mp4 转换成功".format(name)) # 这里仅演示转换一个视频,批量转换需要删除下面的一行。 exit(0)

转换成功了,视频可播放: 在这里插入图片描述

代码没啥可说的,就这样吧,都说了这是一篇水文了嘛……



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有