【ffmpeg基础】ffmpeg音频编码

2023-11-20

一、aac编码

输入raw音频编码为AAC

ffmpeg -i input.wav -acodec aac -y input.aac

通过-acodec来指定音频编码器(视频编码器为-vcodec),也可以使用-c:a来指定音频编码器;

ffmpeg工具默认的aac编码器为aac。也就是说缺省-acodec aac则默认的编码器是aac。在编码aac的过程也可以设置音频的参数,比如码率、通道数、采样率等;如下;

ffmpeg -i input.wav -acodec aac -ar 44100 -ac 2 -ab 128k -y input.aac

参数-ar来设置音频的采样率44100(如果输入音频的采样率不是-ar指定的44100值则会进行音频重采样为44100);-ac来设置音频的声道数为2(即为双声道stereo);-ab设置音频aac编码的码率为128k。

二、libfdk-aac编码

ffmpeg工具默认是不支持libfdk_aac编码器的,如果需要需要ffmpeg支持libfdk_aac需要下载ffmpeg的源码然后编译,具体的ffmpeg编译支持libfdk_aac的介绍可以查考<fmpeg的下载安装>这个博文。

输入raw音频编码为AAC

ffmpeg -i input.wav -acodec libfdk_aac -y input.aac

通过-acodec来指定音频编码器libfdk_aac,也可以使用-c:a来指定音频编码器;aac编码器和libfdk_aac编码器都是用于编码得到音频aac流的,通常在低码率情况如编码码率在64k一下libfdk_aac编码出的aac流音质要比aac编码器编码出的aac六音质要高。与aac编码器一样libfdk_aac编码器在编码aac流的时候也可以使用-ar、 -ac、-ab参数,如下。

ffmpeg -i input.wav -acodec libfdk_aac -ar 44100 -ac 2 -ab 128k -y input.aa

三、ffmpeg其他音频编码器

输入输入raw音频编码为mp3

ffmpeg -i input.wav -acodec libmp3lame -ar 44100 -ac 2 -ab 128k -y input.mp3

通过-acodec来指定音频编码器libmp3lame;如果自己变异ffmpeg则需要配置ffmpeg时候加上--enable-libmp3lame 的选项。

输入raw音频编码为mp2

ffmpeg -i input.wav -acodec mp2 -ar 44100 -ac 2 -ab 128k -y input.mp2

通过-acodec来指定音频编码器mp2。mp2编码器是ffmpeg的默认编码mp2流的一个编码器,这个编码器有一个缺点就是容易丢失音频的高频部分(通常人能听到的最大声音频率为20kHZ,mp2这个编码器编码后的mp2在15kHZ以上的声音部分衰减/丢失很严重,18kHZ以上的声音几乎全部丢掉了)。

此外编码mp2的一个音频编码器还有libtwolame;使用libtwolame需要ffmpeg中支持libtwolame,即编译ffmpeg的时候需要加上--enable-libtwolame这个选项;libtwolame编码mp2的命令如下;libtwolame编码和mp2编码器相比libtwolame编码出来的mp2音频流能够保留较多的高频声音,甚至19kHZ以上都能有效保留。

ffmpeg -i input.wav -acodec libtwolame -ar 44100 -ac 2 -ab 128k -y input.mp2

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

【ffmpeg基础】ffmpeg音频编码 的相关文章

  • FFmpeg 不适用于 android 10,直接进入 onFailure(String message) 并显示空消息

    我在我的一个项目中使用 FFmpeg 进行视频压缩 在 Android 10 Google Pixel 3a 上 对于发送执行的任何命令 它会直接进入 onFailure String message 并显示空消息 所以我在我的应用程序 g
  • ffmpeg AVFrame 到 opencv Mat 转换

    我目前正在开发一个使用 ffmpeg 解码接收到的帧的项目 解码后 我想将 AVFrame 转换为 opencv Mat 帧 以便我可以在 imShow 函数上播放它 我拥有的是字节流 我将其读入缓冲区 解码为 AVFrame f fope
  • ffmpeg:音频样本的字节顺序

    我使用 ffmpeg 的 avcodec 从我的 C 应用程序中的音乐文件中检索原始音频样本 对于我测试的文件 这些文件样本的字节序似乎是小字节序 但我想知道对于我尝试解码的所有文件是否总是如此 即来自 ffmpeg 的实现或至少它的体系结
  • 在 ffmpeg 中,如何使用scale2ref 过滤器缩放 dvdsub 字幕以匹配视频大小?

    我有一个从直播电视录制的 mpeg 文件 其中包含视频以及多个音频和字幕流 我的最终目标是能够创建较小的视频文件 因为 mpeg 文件大小为数 GB 我在这条道路上的第一步只是能够选择视频 音频和字幕流中的每一个并将它们复制到 mkv 文件
  • Windows 上的 ffmpeg-android ndk

    我正在尝试编译 bash 文件 带有 android ndk 的 ffmpeg 我收到如下错误 arm linux androideabi gcc 无法创建可执行文件 C 编译器测试失败 Makefile 2 config mak 没有这样
  • ffmpeg concat:“不安全的文件名”

    尝试将一堆 mts 文件转换为一个大 mp4 文件 stephan rechenmonster mnt backupsystem archive2 Videos 20151222 PRIVATE AVCHD BDMV bin ffmpeg
  • 使用FFMpeg确定视频类型,然后进行转换?

    我正在尝试以编程方式确定文件的真实类型 看来我必须使用 FFMPeg 来实现这一点 我想确定上传的文件实际上是否是 MP4 或 FLV 对于 Flash 视频 或 WebM 对于 HTML5 我知道 FFMPeg 中的 i 运算符 但我不知
  • 如何让 Python 找到 ffprobe?

    I have ffmpeg and ffprobe安装在我的 mac macOS Sierra 上 并且我已将它们的路径添加到 PATH 中 我可以从终端运行它们 我正在尝试使用ffprobe使用以下代码获取视频文件的宽度和高度 impor
  • 使用 FFMPEG 添加覆盖并最少重新编码

    FFMPEG 对于剪切视频的一部分非常有用 而无需重新编码视频 我知道也可以使用 FFMPEG 添加叠加图像到视频的某个部分 例如从 10 秒到 20 秒 我的问题是 如果我对图像进行叠加 整个视频是否会因此而重新编码 或者只对相关的持续时
  • 如何使用 ffmpeg 设置默认流

    我有一些 m4v 文件 我想用 ffmpeg 添加字幕 我知道我需要映射流以将它们放入输出文件中 但如何确保此字幕流将是默认流 字幕是 srt 人们似乎说它们与 mp4 容器不兼容 我需要先将字幕转换为什么 另外 各种流的顺序重要吗 视频流
  • 如何在google colab中安装ffmpeg包

    我正在尝试使用 Google Colab 来做一些事情 我特别想用ffmpeg打包到从图像创建视频 https stackoverflow com a 44951066 6890234 但 ffmpeg 似乎工作得不太好 这个 在最后一个块
  • 连接 2 个迷你音频文件并循环播放并添加背景音乐

    我需要用循环连接 2 个小音频文件并在单个命令中添加背景音乐 我能够将两个音频文件与背景音乐连接起来 我上面给出的代码正在运行 ffmpeg i 1 mp3 i 2 mp3 i background mp3 filter complex 0
  • id3 图像编辑后播放 mp3 时遇到问题

    由于硬件限制 我们生产的软件试图确保导入到其库中的任何音频文件 准备复制到硬件上 都是可接受的比特率 最近 我们开始使用 FFmpeg 将许多不同的音频类型转换为 mp3 以便在我们的硬件上导入和使用它们 虽然转换工作正常并且 mp3 文件
  • swscaler 警告:使用了已弃用的像素格式

    我想先对视频帧执行颜色空间转换 然后使用以下代码将其转换为 opengl 纹理 struct SwsContext pSwsCtx sws getCachedContext NULL width height codec gt pix fm
  • 使用 ffmpeg 将 mp4 转换为 gif 时帧率较低

    我正在使用 ffmpeg 将高质量视频转换为 gif 大多数视频都是 60fps 及以上720p 但是当我使用下面的代码将视频转换为 gif 时 我得到的 gif 输出的 fps 非常低 usr bin env palette tmp pa
  • ffmpeg 将 m4s 转换为 mp4

    我正在研究 DASH 试图为最终用户优化 QoE 我有一个视频 并使用 ffmpeg 将其编码为不同的比特率 一切都很好 并且可以使用 dash 播放该视频 我想要的是将用户收到的片段合并为一个 m4 并将该 m4 转换为 mp4 我在 f
  • ffmpeg 命令行,用于使用 Windows 7 从 Decklink 卡捕获(和录制)720p 音频和视频

    我正在尝试使用 Windows 7 720p 从 blackmagic Decklink 捕获卡捕获音频和视频 但我似乎无法正确获取 ffmpeg 命令行设置 ffmpeg list devices true f dshow i 虚拟 ds
  • C#中图像制作视频的工作方式

    有人有已知的可靠方法来从一系列图像文件创建视频吗 在你因为我在发布问题之前没有寻找答案而对我进行批评之前 以及在你发出诸如 使用 FFMPEG 之类的简单消息之前 请阅读此消息的其余部分 我正在尝试从一系列图像 jpg bmp 等 创建视频
  • Pyinstaller“无法执行脚本 pyi_rth_pkgres”并且缺少软件包

    这是我第一次在这里发布问题 因为我的大部分问题已经被其他人回答了 我正在 python 中开发 GUI 应用程序 并尝试使用 pyinstaller 将其打包到单个文件夹和 exe 中 以便于移植 目前 我使用 Windows 10 和 a
  • 如何使用 FFmpeg 连接 MTS 视频并应用过滤器而不重新编码?

    我有一个包含许多 MTS 视频文件的 txt 文件 我想使用将它们全部合并在一起FFmpeg并获取一个大的 MTS 文件 但我想申请fade in and fade out到最后的视频 我可以在不重新编码的情况下做到这一点吗 因为重新编码需

随机推荐

  • 用户复购周期计算

    用户复购周期 两次购买之间的时间间隔 一 首先使用SQL进行计算 注 用户在一天中发生多次购买则只记为1次购买 1 根据用户id与购买日期进行分组 将一天内发生多次消费记录进行合并 DROP TABLE member Repurchase
  • Python播放GIF图片(ChatGPT代码参考)

    在网上找了好几个方法 最后还是出现各种问题 解决不了播放GIF的功能 最后 通过ChatGPT给出了简单明了的方案 使用第三方库imageio和matplotlib animation来实现 调试直接通过 但有小瑕疵 就是显示gif时隐藏掉
  • caffe源码 之 CPU与GPU数据同步类

    本文主要解析caffe源码文件 src caffe SycedMem cpp 该文件主要实现cpu与gpu的内存同步 先看SycedMem hpp中SycedMem的类定义 ifndef CAFFE SYNCEDMEM HPP define
  • 简单的连接数据库的Web登录界面

    简单的连接数据库的Web登录界面 一 需求分析 实现在登录界面输入用户名和密码 连接数据库 与数据库信息进行比对 若用户名和密码相互匹配 则显示登陆成功 若不正确 选择重新输入 二 工具 1 MySql 2 Tomcat 3 Java EE
  • spring boot 定时任务参数设置

    cron参数 分别对应 秒 分 时 日 月 年 0 0 10 14 16 每天上午10点 下午2点 4点 逗号之间连接起来算一个 0 0 12 每天中午12点触发 0 0 5 0 每5分钟执行一次 0 10 14 16 每天上午10点 下午
  • 程序删除自身

    Windows平台下删除自身的方法 通过bat文件删除 echo off loop del access exe if exist access exe goto loop del DelMe bat 用C C 语言表示创建DelMe ba
  • Python 变量与赋值

    一 变量及类型 1 变量可以是任意的数据类型 在程序中用一个变量名表示 2 变量名区分大小写 3 变量名必须是大小写英文 数字和下划线 的组合 且不能以数字开头 如 gt gt gt a 1 变量a是一个整数 gt gt gt t 007
  • 执行存储过程 获得 table 返回结果

    调用存偖过程 写入投诉信息 SqlConnection conn db GetCon 连接数据库 conn Open 并打开了连接 SqlCommand sqlcmd new SqlCommand 存偖过程名称 conn 使用存偖过程 sq
  • 如果老板要求你的系统接入春晚大流量活动,你会心慌慌吗?

    目录 回头看看 原始系统技术架构 基于CDN的活动静态页面缓存方案 基于Nginx Tomcat Redis的多级缓存方案 超高并发写请求RocketMQ削峰填谷方案 系统限流防雪崩体系架构方案 今天给大家分享一个话题 就是如果要是你老板突
  • MyBatis实现Mapper配置并查询数据

    什么是Mapper 在MyBatis工程搭建 中我们主要讲解的是 MyBatis 如何连接数据库 具体执行 SQL 语句使用的是 JDBC 方式 但在实际应用中是不会选择 JDBC 来执行 SQL 的 MyBatis 提供了 Mapper
  • MeterSphere接口测试cookie提取正则表达式

    在接口自动化测试中经常需要提取header cookie信息 MeterSphere接口自动化测试 添加cookie提取方法如下 0 开启场景共享cookie 1 选择要提取cookie的请求步骤 2 点击后置操作 3 添加参数提取 类型选
  • Vuetify笔记(3):v-btn按钮和v-text-field文本

    1 v btn按钮 在UI组件中v btn组件是用一个material design主题和多个选项来替换标准的html按钮 任何色彩辅助类都可以用来改变背景或文字的颜色 v btn按钮常用属性 1 flat 移除按钮的背景色 布尔值类型 默
  • 蓝桥杯真题:迷宫

    目录 题目描述 运行限制 dfs bfs 结果 题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 下图给出了一个迷宫的平面图 其中标记为 11 的为障碍 标记为 00 的为可以通行的地方 010000 000
  • 前端趋势 2022

    大家好 我是若川 持续组织了近一年的源码共读活动 感兴趣的可以 加我微信lxchuan12 参与 每周大家一起学习200行左右的源码 共同进步 同时极力推荐订阅我写的 学习源码整体架构系列 包含20余篇源码文章 历史面试系列 另外 目前建有
  • js判断字符串以某字符开头或结尾

    一 substr start length 函数 1 概述 substr start length 从start开始往后截取length位 下标从0开始 长度从开始下标计算 2 举例 var str 我是一只快乐的小青蛙 str subst
  • XSS(跨站脚本攻击)详解

    XSS攻击通常指的是通过利用网页开发时留下的漏洞 通过巧妙的方法注入恶意指令代码到网页 使用户加载并执行攻击者恶意制造的网页程序 这些恶意网页程序通常是JavaScript 但实际上也可以包括Java VBScript ActiveX Fl
  • 从零开始zynq linux AXI DMA传输

    本文从0开始叙述过程 使用的工具为vivado2016 4 sdk也是2016 4 准备工作 首先下载如下的目标文件 1 下载xilinx官方的bootloader文件 git clone https github com Xilinx u
  • zookeeper集群安装+集群值启动+source命令+export命令

    1zookeeper集群安装 1安装到3台虚拟机上 mini2 mini3 mini4 2先要安装好JDK 步骤 1先给mini2 mini3 mini4创建用户hadoop 密码也是hadoop adduser hadoop passwd
  • python数据科学(十):pandas基础—— 数据导入导出

    数据科学 十 数据格式 csv 载入数据到 Pandas 分隔 缺失 指定读取 指定列名 指定行索引 指定多层索引 逐块读取 处理 正则表达式 缺失值处理 统计次数 保存数据到磁盘 不写索引 不写列名 指定分隔符 只写一部分 pickle
  • 【ffmpeg基础】ffmpeg音频编码

    一 aac编码 输入raw音频编码为AAC ffmpeg i input wav acodec aac y input aac 通过 acodec来指定音频编码器 视频编码器为 vcodec 也可以使用 c a来指定音频编码器 ffmpeg