多音轨视频使用FFmpeg删除不要音轨方法

news/2024/12/21 17:09:24/

近期给孩子找宫崎骏动画,但是有很多是多音轨视频但是默认的都是日语,电视上看没办法所以只能下载后删除音轨文件只保留中文。

方法分两步,先安装FFmpeg在转文件即可。

第一步FFmpeg安装

FFmpeg是一个开源项目,包含了处理视频的强大工具和库。他广泛应用于音视频转换、数据流处理和多媒体录制。

1、打开官网下载FFmpeg文件

FFmpeg download

多音轨视频使用FFmpeg删除不要音轨方法

2 选择FFmpeg系统版本

根据自己的电脑选择对应系统然后点击,由于我的电脑是 Window s的,所以我选择的是Windows ,点击之后选择下方的 Windows builds from gyan.dev

选择一个稳定的版本进行下载,我选择的版本为 ffmpeg-git-full.7z

多音轨视频使用FFmpeg删除不要音轨方法

3、设置环境变量

将下载好的压缩包进行解压,然后设置环境变量。

在搜索栏中搜索【环境变量】,然后单击将其打开

多音轨视频使用FFmpeg删除不要音轨方法

找到系统变量中的【Path】,点击【编辑】按钮

在弹出的对话框中点击【新建】按钮,然后将ffmpeg目录下的bin目录的路径添加进去,然后点击确定按钮。

注意:填写的路径要带上bin目录

可以直接进入到bin文件夹中然后将该目录的路径直接复制下来然后粘贴到环境变量中,例如我的路径为:C:\ffmpeg-2024-12-11-git-a518b5540d-full_build\bin

多音轨视频使用FFmpeg删除不要音轨方法

4、验证是否安装成功,打开命令提示符窗口输入命令 ffmpeg -version

如果可以看到打印出 ffmpeg的版本,则表示ffmpeg安装成功了,反之则表示安装失败。

多音轨视频使用FFmpeg删除不要音轨方法

第二步删除多余音轨

1、在搜索栏中搜索【cmd】,然后打开命令提示符

多音轨视频使用FFmpeg删除不要音轨方法

2、查看视频文件中所有音轨的信息,你会看到类似于以下内容:

ffmpeg -i input.mp4

注:input.mp4 为你的视频名称

多音轨视频使用FFmpeg删除不要音轨方法

在这个输出中,Stream #0:0 是视频流,Stream #0:1 和 Stream #0:2 是两个音轨。

3、删除特定音轨

如上图视频我们要保留第二个音轨文件国语,所以需要删除第一和第三个音轨

ffmpeg -i input.mp4 -map 0:v -map 0:a:0 -c:v copy -c:a copy output.mp4

参数说明:
  • -i input.mp4:视频名称。
  • -map 0:v:选择所有的视频流。
  • -map 0:a:1:选择第二个音轨(保留 Stream #0:2)。
  • -c:v copy:复制视频流,不进行转码。
  • -c:a copy:复制音频流,不进行转码。
  • output.mp4:指定输出文件名。

注意:Stream #0:2音轨是从 0 开始排序,上述文件删除第一和第三个音轨保留第二个音轨,所以-map 0:a:1是1而不是2

Stream #0:1(jpn): Audio: aac (LC), 48000 Hz, stereo, fltp (default)    这个是-map 0:a:0

Metadata:title : 日语

Stream #0:2: Audio: aac (LC), 48000 Hz, stereo, fltp      这个是 -map 0:a:1

Metadata:title : 国语

Stream #0:3: Audio: aac (LC), 48000 Hz, stereo, fltp      这个是-map 0:a:2

Metadata:title : 粤语

多音轨视频使用FFmpeg删除不要音轨方法

多音轨视频使用FFmpeg删除不要音轨方法

出现上述带颜色文字说明转换为完成,打开就是保留的音轨其他音轨已经删除了。


http://www.ppmy.cn/news/1556974.html

相关文章

HTMLCSS:酷炫的3D开关控件

这段代码创建了一个具有 3D 效果的开关控件&#xff0c;当用户点击滑块时&#xff0c;滑块会移动到开关的另一侧&#xff0c;同时改变背景颜色&#xff0c;模拟开关的开启和关闭状态。动画效果增加了页面的互动性和视觉吸引力。 演示效果 HTML&CSS <!DOCTYPE html>…

React 工具和库面试题(一)

1. 如何在 React 项目中使用 Hooks 从服务端获取数据&#xff1f; 在 React 中&#xff0c;我们通常使用 useEffect Hook 来进行副作用操作&#xff0c;比如从服务端获取数据&#xff0c;结合 useState 来管理数据状态。 基本步骤&#xff1a; 使用 useEffect 来执行异步操作…

BERT模型入门(2)BERT的工作原理

文章目录 如名称所示&#xff0c;BERT&#xff08;来自Transformer的双向编码器表示&#xff09;是基于Transformer模型。我们可以将BERT视为只有编码器部分的Transformer。 在上一个主题《Transformer入门》中&#xff0c;我们了解到将句子作为输入喂给Transformer的编码器&a…

MLM: 掩码语言模型的预训练任务

MLM: 掩码语言模型的预训练任务 掩码语言模型&#xff08;Masked Language Model, MLM&#xff09;是一种用于训练语言模型的预训练任务&#xff0c;其核心目标是帮助模型理解和预测语言中的上下文关系。以下是对这一概念的详细说明&#xff1a; 基本定义&#xff1a; MLM是一…

JAVA进制转换-对不同位数的转换方法

JAVA进制转换-对不同位数的转换方法 实例结果代码补叙 实例 第一个输入参数设为被转换的数值&#xff0c;第二个输入参数设为源来的位数&#xff0c;第三个输入参数设为目标的位数。 /*** 位数转换* args[0] 被转换值* args[1] 源位数* args[2] 目标位数*/public static vo…

Python 助力 DBA:高效批量管理数据库服务器的多线程解决方案-多库查询汇总工具实现

批量数据库服务器连接测试与数据汇总&#xff1a;Python实现方案 作为数据库服务器运维人员&#xff0c;我们经常需要面对大量服务器的连接测试和数据汇总工作。本文将介绍一个使用Python实现的高效解决方案&#xff0c;可以帮助我们快速完成这些任务。 需求概述 从配置文件…

阻塞队列与线程池原理

1、阻塞队列 阻塞队列&#xff1a;当队列已满的时候&#xff0c;向队列中添加元素的操作会被阻塞&#xff1b;当队列为空的时候&#xff0c;从队列中取元素的操作会被阻塞。 Java 中用 BlockingQueue 接口表示阻塞队列。BlockingQueue 接口作为 Queue 的子接口&#xff0c;主…

SQLite 命令

SQLite 命令 SQLite 是一种轻量级的数据库管理系统&#xff0c;它是一个C库&#xff0c;提供了不需要独立服务器进程的零配置数据库。SQLite 是非常受欢迎的&#xff0c;因为它简单、快速、可靠&#xff0c;并且适用于各种大小的项目。本文将详细介绍 SQLite 的常用命令和操作…