【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音频编码 的相关文章

随机推荐

  • 用户复购周期计算

    用户复购周期 两次购买之间的时间间隔 一 首先使用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