日常小工具之:不花一分钱,不限制视频大小,用 python 和 ffmpeg 批量视频转格式,并保存到 iphone / ipad

news2024/11/23 2:36:09

应用背景

  • 2008 年左右买的一个系列视频,全都是 .rmvb 的格式,想移到 iphone 里面,但是显示解码格式不支持
  • 上 知乎 看格式转换的工具发现这些工具需要把视频上传上去处理,而且很慢,而且有些还限制视频大小····

在这里插入图片描述

  • 我觉得有必要通过 python 的小脚本来完成这些小事情

解决方案

  • 使用 ffmpeg 工具进行视频格式转换
  • 使用 python 写个简单脚本进行批量处理
  • mp4 格式的视频批量拖入到 iphone

1. ffmpeg 工具安装

  • 可以参考文章:Mac 安装 FFmpeg (无需brew命令)
  • ffmpeg 下载地址 在这里

2. 使用 ffmpeg

  • 为了方便,我把 ffmpeg 放到了我要处理的视频文件夹目录下
  • 然后再这个文件夹中写脚本来处理文件
    在这里插入图片描述
import os
# 通过 python 执行 cmd 命令
os.system("./ffmpeg -i ./初级/初03过去时.rmvb ./初级/初03过去时.mp4")

在这里插入图片描述

  • 警告⚠️:如果使用我的代码进行批量处理,最好保证要转换的 视频名称 中没有 空格 否则对应的文件会转换不成功~
  • 比如 沙雕 视频.rmvb 更名为 沙雕_视频.rmvb 然后再应用本文的代码

3. 批量处理所有视频文件夹中的文件

  • 这部分我用的 jupyter notebook 写脚本的,大家自行参考有用的代码拿去
import os
# 视频文件夹中
dirs = os.listdir("./")
dir_paths = [os.path.join("./", dir_) for dir_ in dirs]
dir_paths
['./中A级',
 './ffmpeg',
 './中B级',
 './未命名1.ipynb',
 './高级',
 './未命名.ipynb',
 './.ipynb_checkpoints',
 './初级']
# 判断当前 .rmvb 文件是否已经存在对应的 .mp4 文件,比如对于 a.rmvb 如果已经生成过 a.mp4 那么就返回 True
def get_mp4(files, filename):
    basename = os.path.basename(filename)
    if basename.split(".")[0] + ".mp4" in files:
        return True
# 构造所有的 .rmvb 文件路径,已经生成过 .mp4 格式的文件不重复处理
filepath_lst = []
for dir_path in dir_paths:
    try:
        files = os.listdir(dir_path)
        filepaths = [os.path.join(dir_path, file) for file in files if not get_mp4(files, file)]
        filepath_lst.append(filepaths)
    except:
        pass

filepath_lst
[['./中A级/中A07双宾宾补.rmvb',
  './中A级/中A04完成时态.rmvb',
  './中A级/中A09句型小结.rmvb',
  './中A级/中A05情态动词.rmvb',
  './中A级/中A06论比较级.rmvb',
  './中A级/中A08被动语态.rmvb',
  './中A级/中A03将来时态.rmvb',
  './中A级/中A02 be goig.vmark',
  './中A级/中A01代词介词.rmvb',
  './中A级/中A02 be goig.rmvb'],
 ['./中B级/中B05状语从句.rmvb',
  './中B级/中B04what句型.rmvb',
  './中B级/中B07动名词态.vmark',
  './中B级/中B06不定式态.vmark',
  './中B级/中B06不定式态.rmvb',
  './中B级/中B09逻辑主语.rmvb',
  './中B级/中B07动名词态.rmvb',
  './中B级/中B02名词从句.rmvb',
  './中B级/中B03定词从句.rmvb',
  './中B级/中B09逻辑主语.vmark',
  './中B级/中B08分词概念.rmvb',
  './中B级/中B01副词状语.rmvb'],
 ['./高级/高级07ps级.rmvb',
  './高级/高级05成语.rmvb',
  './高级/高级08六级.rmvb',
  './高级/高级02倒装.rmvb',
  './高级/高级01虚拟.rmvb',
  './高级/高级01虚拟.vmark',
  './高级/高级09白领.rmvb',
  './高级/高级03省略.rmvb',
  './高级/高级06四级.rmvb',
  './高级/高级04转换.rmvb'],
 ['./.ipynb_checkpoints/未命名1-checkpoint.ipynb',
  './.ipynb_checkpoints/未命名-checkpoint.ipynb'],
 ['./初级/初01主系表.rmvb',
  './初级/初04不定式.rmvb',
  './初级/初06定 语.rmvb',
  './初级/初05therbe.rmvb',
  './初级/初07祈使句.rmvb',
  './初级/初语音B).rmvb',
  './初级/初语音A).rmvb']]
from tqdm import tqdm

# 根据 filepath_lst 中的内容构造对应的 mp4 文件生成路径,并完成 ffmpeg 的视频转格式任务,
# 也就是 A.rmvb -> A.mp4
newpath_lst = []
for oldpaths in tqdm(filepath_lst):
    for old_path in tqdm(oldpaths):
        olds = os.path.splitext(old_path)
        new_path = olds[0] + ".mp4"
        print(new_path)
        
        try:
            os.system(f"./ffmpeg -i {old_path} {new_path}")
        except Exception as e:
            print(e)
            
        

在这里插入图片描述

4. 将 .mp4 的文件批量拖入 iphone 中保存

  • MP4 的视频直接拖到文稿底下
    在这里插入图片描述
  • 就可以在 iphone / ipad文件 中进行查看了
  • 如果没有 文件 这个 app,直接在苹果的 app store 中搜索 文件 下载就行,这是苹果自带的一个应用~
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/193647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

规则引擎-drools-3.4-drl文件构成-rule部分-结果部分Action

文章目录drl文件构成-rule部分结果部分 RHSsetinsert && insertLogicalmodify && updatedeletedrl文件构成-rule部分 drl文件构成,位于官网的第5章位置,也是drools作为规则引擎应用的最核心部分。 其中rule模块,包括属性&am…

Linux命令使用错误记录

问题描述 今天在使用jenkins自动部署的时候,查看日志也是打印成功的,如下图: 自以为是成功,没有看项目启动日志。当访问接口的时候,返回的还是原有数据,没有更新数据接口。 解决思路 首先,打…

春晚背后的“新技术”,腾讯技术助力央视频春晚“新看法”

伴随着《难忘今宵》音乐的响起,兔年春晚圆满落幕。今年,我们和中央广播电视总台一起打造了“竖屏春晚HDR及菁彩声”技术方案,并在“央视频”客户端上线。让你“听”得更沉浸,“看”得更清晰。三维菁彩声,观看春晚“如临…

【Flume】Flume原理简述及示例实践

文章目录1. Flume是什么2. Flume三大组件3. Flume高级应用场景3.1 多路复用3.2 整合4. 示例实践4.1 配置4.2 运行4.2.1 运行结果输出4.2.2 设置后台运行1. Flume是什么 Flume是一个高可用,高可靠,分布式的海量日志采集、聚合和传输的系统,能够…

低代码:让企业“活”起来,赋能企业数字转型

低代码作为一种无需或只需少量代码即可快速生成应用程序的开发方式,广义的低代码可以分为低代码和无代码两种,两者面向的群体和场景不同,分别定位于服务IT人员和业务人员。两者都可以降低开发成本和门槛,有助于业务人员和开发人员…

自动驾驶感知——红外传感器

文章目录1. 红外线基本概念1.1 红外线探测的优缺点1.2 红外线相关基础知识1.3 红外辐射的基本知识1.4 黑体、白体和透明体1.5 相关物理定律1.5.1 基尔霍夫定律1.5.2 斯特藩-玻耳兹曼定律1.5.3 维恩位移定律2. 红外线传感器分类2.1 主动式与被动式2.2 光子式红外传感器2.3 热释电…

Redis -- 过期删除策略和内存淘汰策略

1. 过期删除策略 1.1 redis支持三种过期删除策略: 定时删除:在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时,立即执行对键的删除操作惰性删除:放任键过期不管,但是每…

Day2 CF713 div3 vp A-G

Dashboard - Codeforces Round #713 (Div. 3) - Codeforces感觉中规中矩,rk4k确实是我现在的水平,一直徘徊在绿灰边缘23333,其实很大原因在于不补题,看了CF Analytics的题目rating,几乎只写1200-的题,1600的…

Qt中的网络编程(TCP)

在Qt中网络编程主要由Qt Network模块来编写基于TCP/Ip的网络程序,其中提供了许多的类: 可以点击该链接查看:Qt网络C类|Qt网络 5.15.12 常见的有: QTcpServer基于 TCP 的服务器QTcpSocketTCP 套接字QUdpSocketUDP 套接字QDtls此类…

End-to-End Entity Resolution for Big Data: A Survey Matching部分学习笔记

Matching ER的核心是匹配任务,它接收一个块集合作为输入,对于一个块中的每一对候选匹配,它决定它们是否指向相同的真实世界实体。 Preliminaries 匹配决策通常由匹配函数MMM做出,它将每一对实体描述(ei,ej)(e_{i}, e_{j})(ei​…

全网最详细的手把手模拟实现Cache

前言:本文内容较多(字数1w),不仅包含理论知识,还进行了全面实践。本文对前三章理论内容粗略解释,建议去b站观看哈工大和王道考研的操作系统中虚拟存储相关章节,然后对于设计实现就游刃有余了。 …

C++数论————质数筛法(单独判断一个数,判断N个数) 埃氏筛法

质数想必大家都不陌生从小学到大质数的概念:一个数如果除了1和本身之外没有其他的因子,那么这个数被称为质数今天要讲两个知识点:在C中如何判断一个数是否为质数在C中如何判断1-N之间哪些数为整数在C中如何判断一个数是否为质数这个知识点较为…

当湖北《汉川》遇到湖南《早安隆回》,杨语莲会是下一个袁树雄吗

古有花木兰,替父去从军。如今在中国华语乐坛,继《早安隆回》袁树雄之后,又出现了《汉川》杨语莲。之所以把这两首歌曲,以及这两位音乐人,放在一起来做对比,是因为这两首歌曲,甚至这两位音乐人&a…

Java中weekOfYear和weekOfWeekBasedYear的区别

这其实是计算一年中的周数(某日属于一年中的第几周)的两种算法。 简单来说,前者保证了1周不会跨越自然年的边界;后者保证了1周一定有7天,一定从某个DayOfWeek(如周一)开始,并且1周只…

时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测 目录时序预测 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 MATLAB实现GWO-BiLSTM灰狼算法优化双向长短…

每天花2小时恶补腾讯T8纯手打688页SSM框架和Redis,成功上岸美团

前言 我相信大家也都跟我一样,每天不是在加班就是在加班的路上,辛辛苦苦付出,可是得到的却不是很多。 这可能是大部分程序员的现状吧!! 最关键的是,整天都在CRUD、实现需求,真的想跟产品经理…

广发证券基于分布式架构的新一代估值系统实践

文 / 广发证券信息技术部 来源 / 金融电子化 随着信息技术应用创新试点范围不断扩大,能否胜任更多业务场景,是各行各业当前阶段选型数据库的关键。早在 2019 年,广发证券即开启对分布式架构的数据库产品进行调研,并经历了单主从读…

Git 提交模式

Git 对我们 Devs 的使用是必不可少的,无论是在个人项目中,还是在多人开源项目或整个社区中。鉴于此,正确使用 git commit很重要。拥有连贯和标准化的语言有助于参与项目的每个人理解已经发生的变化。在上图中,我们看到了评论不当的…

Camtasia2023简体中文版支持4K超清屏幕录屏

Camtasia 2023是TechSmith出品的一款屏幕录像和编辑的软件,可轻松录制和分享高质量的截屏视频,提供所需的工具和功能。功能强大的视频编辑器,通过记录您的屏幕活动和网络摄像头流,帮助您创建具有专业外观的截屏视频。软件提供了强…

“华为杯”研究生数学建模竞赛2005年-【华为杯】B题:空中加油问题的递推模型与调度策略

赛题描述 对飞行中的飞机进行空中加油,可以大大提高飞机的直航能力。为了简化问题,便于讨论,我们作如下假设。 少辅机架数两种情况给出你的作战方案。 论文 摘要 : 本文首先对空中加油问题进行了分析,提取了相关性质,在此基础上 建立了问题的递推模型。根据该模型,文…