ffpmeg相对无损转换mkv到mp4,保留标签、封面等元数据

2023-11-14

其实这个无损是相对无损,不是绝对无损

因为mkv封装支持的格式、标签等是比mp4封装要多的

比如mkv可以封装wav音频,mp4不能封装wav音频

所以这里的无损的前提是该mkv的媒体流、标签(TAG)、封面图等,都是Mp4本身支持的

才能无损转换

我以前长期使用一个bat

ffmpeg.exe -i "%~1" -vcodec copy -acodec copy "%~dpn1".mp4

这个命令就是无损转换mkv到mp4的,其中的-vcodec copy为视频流直接拷贝, -acodec copy是音频流直接拷贝

不过这个命令有一个很大的缺点,那就是仅仅拷贝视频流、音频流,但是标签、章节、封面图等会丢失

所以后面做了一个改进

rem 首先提取元数据到metadata.txt

bin\ffmpeg -i "%~1" -f ffmetadata -y metadata.txt

rem 然后把metadata.txt元数据作为输入源进行添加

bin\ffmpeg.exe -i "%~1" -i metadata.txt -map 0 -vcodec copy -acodec copy -y "%~dpn1".mp4

这里很重要的一个参数是-map 0(意思是把视频流映射为第0个媒体流)这个代码绝对不能少,不进行map的话,会导致封面图丢失,我之前就是因为没有加-map 0导致封面图丢失,困扰了我很久,结果一个小小的代码就解决了

这里要说明的是因为mkv和mp4本身有差异,mp4无法导入mkv的xml文件,只能退而求其次通过先导出metadata.txt的方法再导入,metadata.txt里面包含的信息并不完全,会丢失专辑名和年份信息.不过艺术家、标题等会被保留.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ffpmeg相对无损转换mkv到mp4,保留标签、封面等元数据 的相关文章

  • 【华为OD机试c++/python】最少线段覆盖【 2023 Q1

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 给定坐标轴上的一组线段 线段的起点和终点均为整数并且长度不小于1 请你从中找到最少数量的线段 这些线段可以覆盖住所有线段 输入描述 第一行输入为
  • 含分布式电源的配电网日前两阶段优化调度模型(Matlab代码实现)

    个人主页 研学社的博客 欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 文献来源 4 Matlab代码 数据 文章讲解 1 概述 文
  • Python requests下载超大文件/批量下载文件

    一 下载超大文件 使用 python 下载超大文件 直接全部下载 文件过大 可能会造成内存不足 这时候要使用 requests 的 stream 模式 主要代码如下 iter content 一块一块的遍历要下载的内容 iter lines
  • GLSL常见函数[转]

    radians x 角度转弧度 degrees x 弧度转角度 sin x 正弦函数 传入值为弧度 三角函数与js相同 有cos余弦函数 tan正切函数 asin反正弦 acos反余弦 atan反正切等 pow x y xy exp x e
  • Allegro使用总结-查看Layout基本操作:

    好久没用CSDN写过笔记了 没想到无意间打开 编辑器更新啦 以前巨难用的 富文本编辑器 终于改观了 变的好像语雀 1 视图 画面操作 a 画面缩放 Zoom F11 F12 或 鼠标滚轮 补充 Zoom分辨率调节 Setup user pr
  • 【前端】批量导入和导出Excel数据

    1 准备 excel导入功能需要使用npm包xlsx 所以需要安装xlsx插件 读取和写入都依赖她 npm i xlsx 0 17 0 vue element admin模板提供了一个导入excel数据的文件 我们只需用即可 代码地址 ht
  • Spring3.0纯注解开发-越是高端越简洁

    附 类也称为接口 接口的范围很广泛 注解开发和纯注解开发不同点 1 纯注解新增加注解 configuration springcongfig类表名配置类 component xx springcongfig类 扫包注解 Scope sing
  • 【100%通过率 】【华为OD机试c++/java/python】最长的密码【 2023 Q1A卷

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 最长的密码 小王在进行游戏大闯关 有一个关卡需要输入一个密码才能通过 密码获得的条件如下 在一个密码本中 每一页都有一个由26个小写字母组成的若
  • 【视频编码学习】VTM15.0编译运行

    VTM版本 15 0 操作系统 Win10 x64位 IDE Visual Studio 2019 编译器 cmake 利用VS2019运行VTM15 0 前言 一 下载VTM15 0 二 下载安装cmake 1 下载cmake并安装 2
  • 什么是Java?

    刚开始学习Java时 对于老师讲述的Java的发展历程毫无兴趣 觉得只要会用就行了 直到有一天我的朋友突然问我 你们学的Java是什么呀 面对他突如其来的问题 我一下有点不知所措 刚想开口却又不知道说些什么 只能慢慢的吐出那几个字 一门编程
  • win11共享打印机无法连接怎么办

    很多小伙伴都将电脑更新升级成Win11系统 当我们使用多台电脑却只有一台打印机时 就需要共享打印机却出现了Win11共享打印机无法连接的情况 遇到这种问题应该怎么解决呢 下面小编就给大家详细介绍一下Win11共享打印机无法连接的解决方法 大
  • Anaconda + jupyter notebook + jupyter lab环境配置

    1 更换源 1 1 pip源 pip config set global index url https pypi tuna tsinghua edu cn simple pip config set install trusted hos
  • java动态加载jar包,并运行其中的类和方法

    flink 相关 https www toutiao com article 6883793897495986691 动态加载jar包 在实际开发中经常会需要用到 尤其涉及平台和业务的关系的时候 业务逻辑部分可以独立出去交给业务方管理 业务
  • 下面是两种解决Redis击穿问题的方法,并给出相应的Java代码实现。

    Redis击穿问题指的是当一个key在缓存中过期时 恰好有大量并发请求访问该key 导致请求直接打到数据库 引起数据库压力过大 甚至宕机 方法一 使用互斥锁 在访问缓存之前 首先获取一个互斥锁 防止多个请求同时访问数据库 只有一个请求可以访
  • 数字后端知识点扫盲——后端设计流程及使用工具

    1 DFT Design For Test 可测性设计 芯片每一步往往都自带测试电路 DFT的目的就是在设计的时候就考虑将来的测试 DFT的常见方法是 在设计中插入scan chain 将非扫描单元 如寄存器 变为扫描单元 DFT工具是sy
  • STM32 HAL——GPIO

    HAL的代码规范建议 以下内容是我自己参照HAL做的总结 如果公司有固定的编码规范 就跟公司保持一致 如果没有 那就推荐和所用库保持一致 注意 因人而异 并不具有普遍适用性 HAL库有如下代码规范 1 目录名除了专有词汇外 统一是单词首字母
  • 0227:zotero文献管理/小绿鲸英文/CSDN做笔记

    搜索 下载 白嫖 翻译 文章 如何精准找到和方向相关的文献 谷歌学术 国内无法正常进入 两个镜像网站 https xueshu dailyheadlines cc https scholar lanfanshu cn 搜索技巧 关键词套双引
  • 使用 ChatGPT 从 JavaScript 代码生成 React 组件

    欢迎来到我们的教程 了解如何使用 ChatGPT 从 JavaScript 代码生成 React 组件 在本指南中 我们将探讨使用 ChatGPT 完成此任务的好处 并引导您完成分步过程 React 是一个流行的用于构建用户界面的 Java
  • 深度学习目标跟踪算法

    ECCV 2022 OSTrack Joint Feature Learning and Relation Modeling for Tracking https blog csdn net qq 41442511 article deta
  • springboot整合shiro的坑记录

    首先我参考文章 https blog csdn net Yearingforthefuture article details 117384035 进行学习 由于此文章没有讲springboot的版本 我于是用了idea2022 3 1的默

随机推荐

  • 部分选主元matlab,列选主元的高斯消去法-matlab

    大家对高斯消去法应该比较了解了 高代和线性代数中做的已经不少了 但是计算机实现的时候还是要注意一些东西 列选主元的高斯消去法 function X lufact my A B Inpiut A 是系数矩阵 B是右端项 Output x是解
  • 三层网络结构(核心层、汇聚层 、接入层)

    三层网络架构设计的网络有三个层次 核心层 网络的高速交换 汇聚层 提供基于策略的连接 接入层 将工作站接入网络 核心层 在核心层应该采用高带宽的交换机 核心层的设备采用双机冗余热备份是非常必要的 也可以使用负载均衡功能来改善网络性能 对于网
  • 软件测试复习(5)----基本路径测试中的细节

    在做基本路径测试的题中又有了新的发现 希望大家可以注意 另外 如果你是第一次看 可以先看一下我之前讲的基本路径方法的步骤 先看一下题目 我们不讲如何做这道题 只是讲一下我通过这道题关于知识点新的理解 题目 答案 知识点 细节 逻辑与 逻辑或
  • 雪崩击穿/齐纳击穿

    雪崩击穿 发生在掺杂浓度较低 自由电子冲撞价离子 温度越高 雪崩击穿需要的击穿电压越高 齐纳击穿 发生在掺杂浓度比较高的时候 自由电子直接跳出共价键 温度越高 齐纳击穿需要的击穿电压越低
  • 适用于小白-vs2019的下载与安装

    学习c语言时 少不了编译器的使用 那么传统的dev c 过于古老的同时 也不再更新 而大学授课老师一般要求安装vc 6 0 学校机房也一般为vc 6 0 但这两种都还是过于古老 现在机构授课过程一般采用vs2019 使用起来更加便捷 清晰
  • 将CelebA数据集所给标签转化为MTCNN中训练集所需标签

    img dir r D datasets CelebA Img img celeba 7z img celeba anno src r D datasets CelebA Anno list bbox celeba txt anno lan
  • Oracle数据库索引管理-基于函数索引ORA-30553

    在ORACALE数据库中 创建函数索引时 若函数是自定义的函数 须在定义函数时加上deterministic关健字 不然会出现 函数不确定 的错误提示 创建函数索引 ORA 30553 函数不确定 原函数如下 create or repla
  • Hibernate HQL绑定变量

    Hibernate HQL查询 插入 更新 update 实例 1 实体查询 有关实体查询技术 其实我们在先前已经有多次涉及 比如下面的例子 String hql from User user List list session Creat
  • 毕业设计 - 个人博客系统的设计与实现【源码+论文】

    文章目录 前言 一 项目设计 1 模块设计 博主功能用例 游客功能用例 2 实现效果 二 部分源码 项目源码 前言 今天学长向大家分享一个 Java web 毕业设计 项目 个人博客系统的设计与实现 一 项目设计 1 模块设计 博主功能用例
  • Linux驱动_多点电容触摸

    一丶Linux下多点电容触摸驱动框架 电容触摸屏IC是FT5426 为IIC协议芯片 因此需要编写IIC驱动 触摸IC会发出中断信号 并在中断服务函数中上报信息 因此需要编写中断框架 触摸屏向Linux内核上报的信息都属于Input子系统
  • 基于Unity3d 引擎的Android游戏优化

    最近项目进入收尾阶段 之前对项目做了很多优化 mesh合并 减少DrawCall和模型骨骼以及物理计算 合并材质球 优化代码等等 在IOS上还好 但是Android上 试过几款手机 从低端到高端 发现性能还是很差 所以又花了几天来研究摸索
  • C#中索引器

    C 中索引器和数组的使用类似 public class Test private readonly string name new string 10 public string this int index get return name
  • 【论文速览】根据人脑fMRI信号重建图像 Image Reconstruction from human brain activity

    文章目录 前言 文章一 研究背景 主要方法 部分实验结果 总结与思考 参考资料 文章二 研究背景 主要方法 部分实验结果 总结与思考 前言 人类的视觉神经系统对于真实世界的视觉刺激有着非凡的感知与理解能力 比如我们能够准确地识别物体距离和三
  • (java 基础知识) Java 安全套接字--javax.net.ssl

    有关SSL的原理和介绍在网上已经有不少 对于Java下使用keytool生成证书 配置SSL通信的教程也非常多 但如果我们不能够亲自动手做一个SSL Sever和SSL Client 可能就永远也不能深入地理解Java环境下 SSL的通信是
  • leetcode-2 Add Two Numbers(两数相加)

    题目描述 给出两个 非空 的链表用来表示两个非负的整数 其中 它们各自的位数是按照 逆序 的方式存储的 并且它们的每个节点只能存储 一位 数字 如果 我们将这两个数相加起来 则会返回一个新的链表来表示它们的和 您可以假设除了数字 0 之外
  • 下一个区块链风口必备——跨链互操作

    Moonbeam是首个原生的跨链消息开发者平台 旨在通过结合波卡生态独有的XCM技术和Moonbeam首创的预编译技术为用户带来无缝且丝滑的跨链互操作性体验 让用户在无意中享受多链部署带来特色的同时消除链与链之间的隔阂 除外 Moonbea
  • uboot启动流程分析

    FS4412 SOC的启动过程 在图中有 Cortax A9 其是芯片核心 也就是中央处理器 CPU Internal Rom 是一个只读存储器 里面存储了代码 总大小为64K 它的功能是用于读写pin脚 其作用是用来告诉系统从何处去读取u
  • #13文献学习--边缘计算的计算卸载建模综述

    文献 A survey on computation offloading modeling for edge computing 一 介绍 边缘计算 在网络边缘 代表云服务的下游数据和代表物联网服务的上游数据上执行计算 优势 计算或云计算
  • 【react】state的总结

    state是组件对象最重要的属性 值是对象 组件被称为 状态机 通过更新组件的state来更新对应的页面显示 重新渲染组件 组件中render方法中的this指向组件的实例对象 组件自定义的方法中的this指向undefined 如何解决
  • ffpmeg相对无损转换mkv到mp4,保留标签、封面等元数据

    其实这个无损是相对无损 不是绝对无损 因为mkv封装支持的格式 标签等是比mp4封装要多的 比如mkv可以封装wav音频 mp4不能封装wav音频 所以这里的无损的前提是该mkv的媒体流 标签 TAG 封面图等 都是Mp4本身支持的 才能无