当前位置: 首页 > news >正文

简单采用windows批处理命令批量合并命名安卓B站缓存视频

概述

网上找一大圈,都是让下载某款付费软件,要不合并视频有水印,本文采用windows批处理方法,将视频进行合并,并且自动为转换后视频命名,无文件时长等使用限制,无水印问题。无需安装复杂的python等环境。

下载并使用ffmpeg

进入官网链接:Builds - CODEX FFMPEG @ gyan.dev

下载release中的ffmpeg-release-full.7z版本,下载后将ffmpeg.exe解压出来,放在C:/WINDOWS/system32中。

拷贝文件到电脑

将安卓手机中需要合并的文件拷贝到电脑的目录。

在安卓设备中,缓存的视频文件,一般是在

Android/data/tv.danmaku.bili/download

目录中,每个视频文件夹中,都有video.m4s、audio.m4s。

此处以D:\Temp目录为例

编写脚本

新建一个以.bat后缀的文本文件,打开文本编辑器,记事本等均可,输入以下代码。

@echo off
setlocal enabledelayedexpansionREM 设置大文件夹路径
set "root_folder=D:\Temp"REM 设置字符编码为UTF-8
chcp 65001 > nulREM 查找所有包含video.m4s文件的子文件夹
for /r "%root_folder%" %%d in (video.m4s) do (set "folder=%%~dpd"REM 获取父目录(去掉最后一个文件夹)for %%p in ("!folder:~0,-1!") do set "parent_folder=%%~dpp"set "entry_json=!parent_folder!entry.json"if not exist "%%~dpd\output.mp4" (if exist "%%~dpd\audio.m4s" (if exist "!entry_json!" (REM 读取entry.json文件内容set "output_name="REM 从字符串末尾向前搜索"download_subtitle"字段set "json_content="for /f "usebackq tokens=*" %%a in ("!entry_json!") do set "json_content=%%~a"set "substring=!json_content:*"download_subtitle":"=!"REM 删除字符串末尾的"}"set "subtitle=!substring:~0,-2!"set "output_name=!subtitle!"if defined output_name (echo Merging video and audio in %%~dpd and naming it "!output_name!.mp4"ffmpeg -i "%%~dpd\video.m4s" -i "%%~dpd\audio.m4s" -codec copy "%%~dpd\!output_name!.mp4") else (echo Merging video and audio in %%~dpd and naming it output.mp4ffmpeg -i "%%~dpd\video.m4s" -i "%%~dpd\audio.m4s" -codec copy "%%~dpd\output.mp4")) else (echo No entry.json found in !parent_folder!, merging video and audio in %%~dpd and naming it output.mp4ffmpeg -i "%%~dpd\video.m4s" -i "%%~dpd\audio.m4s" -codec copy "%%~dpd\output.mp4")))
)endlocal

将D:\Temp替换为实际存放B站缓存视频的位置,点击运行即可。

相关文章:

  • jenkins自动化部署详解
  • Tina-Linux -- 4. LVGL 8.3移植
  • 【全国青少年信息素养大赛算法创意初中组押题卷】
  • 防火墙最新技术汇总
  • 【学习笔记】后端(Ⅰ)—— NodeJS(Ⅱ)
  • Centos7.9上安装Oracle 11gR2 RAC 三节点(ASMlib管理asm磁盘)
  • Vue学习穿梭框Transfer组件
  • 贪心算法:划分字母区间
  • 包装类..
  • 如何彻底搞懂迭代器(Iterator)设计模式?
  • 反序列化漏洞(JBoss、apache log4、apache Shiro、JWT)Weblogic未授权访问、代码执行、任意上传
  • 《QT实用小工具·六十五》基于QPropertyAnimation实现的移动动画和控件覆盖
  • 内网安全之搭建ADCS证书服务
  • C++ 时间处理-从字符串中解析日期时间
  • 中银基金软件开发工程师春招群面记录
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Android Studio:GIT提交项目到远程仓库
  • Bootstrap JS插件Alert源码分析
  • CSS魔法堂:Absolute Positioning就这个样
  • C语言笔记(第一章:C语言编程)
  • Docker: 容器互访的三种方式
  • extract-text-webpack-plugin用法
  • HTTP中的ETag在移动客户端的应用
  • 从零开始在ubuntu上搭建node开发环境
  • 如何解决微信端直接跳WAP端
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 数据科学 第 3 章 11 字符串处理
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 微信开放平台全网发布【失败】的几点排查方法
  • 一道面试题引发的“血案”
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 树莓派用上kodexplorer也能玩成私有网盘
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​插件化DPI在商用WIFI中的价值
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # 达梦数据库知识点
  • #微信小程序(布局、渲染层基础知识)
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • ( 10 )MySQL中的外键
  • (1)(1.11) SiK Radio v2(一)
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (一)基于IDEA的JAVA基础1
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .a文件和.so文件
  • .equals()到底是什么意思?
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net framework profiles /.net framework 配置
  • .net 程序发生了一个不可捕获的异常
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表