通过ffmpeg将aac格式转换成wav格式

2023-11-17

这是一个很简单的小程序,但也让我这个初学者折腾了好几天,走算是入门了,总结下学习的过程,希望能够初学者能有所帮助。

看源代码,首先得让让它跑起来。看了ffmpeg提供源码api-example.c,很好的入门程序,虽然对视频编解码十分顺利,但是源码提供的音频解码是有问题的,mp2文件不能正常的解码,这是很让人沮丧,特别是对一个初学者来说。

在对源程序进行单步调试的过程中,问题定位在了这个语句上:

avcodec_decode_audio3(in_ast_cctx, (int16_t *)outbuf, &out_size, &packet);
再看前面看看,有这样两行语句。

/* decode until eof */
    avpkt.data = inbuf;
    avpkt.size = fread(inbuf, 1, AUDIO_INBUF_SIZE, f);
这两行代码的意思很明确,就是将待解码数据数据放入avpkt.data这个缓冲区中,通过avcodec_decode_audio3对其进行解码。这些看起来都很合理,但问题出在哪里呢?

且看video_decode_example函数中这段话:

/* NOTE1: some codecs are stream based (mpegvideo, mpegaudio)
           and this is the only method to use them because you cannot
     
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过ffmpeg将aac格式转换成wav格式 的相关文章

  • 我在 android 上使用 java 时遇到异常 (java.lang.NoClassDefFoundError),为什么?

    这是我运行的线路 AudioInputStream clip1 AudioSystem getAudioInputStream new File wavFile1 这是我得到的异常 来自 LogCat 错误 AndroidRuntime 3
  • HttpRequest PUT内容到poco库中

    我想使用 HTTP PUT 请求将一些数据从 C 应用程序发送到服务器 我在用poco http pocoproject org我的应用程序中的网络库 我正在使用这个代码片段 HTTPClientSession session uri ge
  • Android:处理电话中的语音

    我目前正在寻找有关如何在 Android 上操作音频的选项 目标是在通话期间实时处理来自麦克风的音频 最好的解决方案是在本机调用中执行此操作 但重建一个电话应用程序 无 VOIP 也可以 有没有什么方法可以使用 Android API 来实
  • .bat 文件将文件排序到文件夹中

    对于我的图片集 我希望文件夹中的所有图片按日期自动分类到文件夹中 幸运的是 这些文件已经以时间戳命名 2012 07 15 12 21 06 jpg 2012 07 15 12 21 26 jpg 2012 07 16 12 12 50 j
  • 同步写入使用 FILE_FLAG_OVERLAPPED 打开的文件

    我已经使用打开了一个文件 HANDLE handle CreateFileW fileName GENERIC READ GENERIC WRITE 0 NULL OPEN EXISTING FILE FLAG OVERLAPPED NUL
  • C# 写入文件的性能

    我的情况概述 我的任务是从文件中读取字符串 并将它们重新格式化为更有用的格式 重新格式化输入后 我必须将其写入输出文件 这是必须完成的操作的示例 文件行示例 ANO 2010 CPF 17834368168 YEARS 2010 2009
  • 拒绝访问特定目录中的特定文件类型

    对于某些应用程序 用户可以上传自己的文件 由于这可能是非常大的文件 因此他们可以通过自己的 FTP 客户端上传这些文件 当然 我不希望他们上传一些可以访问服务器上所有其他文件的 PHP 文件 我想要防止这种行为的方法之一是拒绝仅访问这些文件
  • 是否可以使用 Java 在文件上设置自定义元数据?

    是否可以在 File 实例上获取和设置自定义元数据 我想将通过系统处理的文件用作某种非常简单的数据库 其中每个文件都应包含其他自定义元数据 例如发件人的电子邮件 一些时间戳等 它是针对内部系统的 因此安全性不是问题 在 java 7 中你可
  • 用 while 循环打开文件 - C [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 各位程序员大家好 我的问题不大 我不知道如何打开具有不同数字 在文件名中 的文件 从 1 到存在的任意数量的文件 例如 我有两个 或最
  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 如何在Android中使用AudioRecorder录制音频

    我想从 Android 设备捕获音频 我下面的代码似乎成功地制作了一个wavSD卡上有文件但无法播放 我尝试使用不同的媒体播放器来播放它 但没有成功 我的代码中有一个问题导致了这个问题 code public class MainActiv
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • 读取上传的Excel文件而不保存它

    在这段代码中 我从用户那里获取上传的文件并将其保存在我的应用程序中的文件夹中 然后对此 Excel 文件进行 OleDbConnection 并读取数据 我的问题是 有人可以建议一种阅读此 Excel 文件的首选方法 但无需预先保存它 因为
  • 如何从另一个 Flux 中排除 Flux 中的所有元素

    我有两个Flux一个用于成功元素 另一个用于保存错误元素 Flux
  • 这是 Box API v2 获取事件时的错误吗

    使用 BOX API v2 从 Box 获取事件时 我发现了一个奇怪的行为 我得到的场景如下 使用 box API v1 将 14 个文件上传到 box net 使用stream position now 获取事件 这给出了流位置 例如12
  • 从文件 C 中的单行读取多个变量类型

    好吧 我一整天都在做这个 但我一辈子都无法把它记下来 也许你们可以帮忙 我有一个文件 内容如下 1301 105515018 水手长 迈克尔 R ABC 123 R01 1301 103993269 卡斯蒂利亚 小迈克尔 ABC 123 R
  • 全面的 html5 音频 API

    对于我的一生 我找不到所有 html5 的完整列表
  • 无法访问 res 文件夹?

    我有一个 Java 编程问题 需要帮助 我的类文件位于单独的包中 不是默认包 我正在尝试从我的 res 文件夹访问文件 我已将其添加为类文件夹 使用属性 gt 库 gt 添加类文件夹 在我的类中 我有以下代码 InputStream IS
  • linux下如何从文本文件中获取值

    我有一些文本格式的文件 xxx conf 我在这个文件中有一些文本 disablelog 1 当我使用 grep r disablelog oscam conf 输出是 disablelog 1 但我只需要值1 请问你有什么想法吗 一种方法
  • 检查 Android 麦克风是否被其他应用程序使用

    我想使用 Android 麦克风检查噪音水平 然而 在访问麦克风之前 我想知道麦克风是否正在被另一个应用程序访问 如何检查麦克风是否正在被其他应用程序访问 有关活动输入流及其路由位置的信息由AudioFlinger AudioPolicyM

随机推荐

  • 【Linux】Linux Centos 7.6 离线RPM安装NTP(时间同步)服务器及基本配置

    文章目录 1 概述 2 安装 2 1 查看服务器 2 2 安装NTPDATE NTP服务 2 3 NTP相关配置 2 4 启动 20230118日 22点13分回到家 3年后第一次回家 发个博客纪念一下 1 概述 一个环境 因为需要需要nt
  • 语义分割之 数据标注

    语义分割之 数据标注 一 标注工具 二 Labelme 安装和启动 1 安装 2 启动 三 标注与保存 1 打开图像 2 标注 3 保存 4 修改 四 多类别标注 五 快捷键 数据标注的目的是为了在监督学习中告诉机器哪些东西是属于哪个类别或
  • 个人阅读的Deep Learning方向的paper整理

    http hi baidu com chb seaok item 6307c0d0363170e73cc2cb65 个人阅读的Deep Learning方向的paper整理 分了几部分吧 但有些部分是有交叉或者内容重叠 也不必纠结于这属于D
  • 《Stable Diffusion web UI ControlNet模型下载及使用》

    ControlNet模型下载 本来是很简单一两分钟搞定的事情 但是作者搞了7次才终于出来这个页面 每次下载完以后看文件也是有 stable diffusion webui extensions sd webui controlnet 但是在
  • 运维知识各种链接

    转自 https www cnblogs com uglyliu p 6185943 html 运维知识各种链接 http linuxtools rst readthedocs io zh CN latest tool sar html l
  • Cocos2d-Lua(Quick-Cocos2d-x)集成第三方SDK(二)

    在上一篇文章中 我们介绍了 怎么集成友盟的Cocos2d x版本SDK 接下来我们来说下怎么将友盟的C 接口导出到Lua中使用 引擎版本 Quick Cocos2d x 3 3 开发系统 Windows 7 64bit 编写 tolua文件
  • OPANAS: One-Shot Path Aggregation Network Architecture Search for Object Detection论文阅读

    One Shot Path Aggregation Network Architecture Search for Object Detection 1 做了什么 1 此文提出了一种新的单次路径聚合网络结构搜索算法 显著提高了搜索效率和检测
  • VScode 调试python程序,debug状态闪断问题的解决方法

    0 Few words 之前一直在VSCode中debug C 和Python的程序没出过闪断的问题 但是最近在另一台电脑上debug 同样的方法 设置launch json和CMakeList加debug状态等等操作 如我另一篇blog写
  • Brew:command not found in Macbook

    1 zsh command not found brew 进入brew的工作目录 usr local一看 原来 usr local bin都没有了 难怪系统找不到brew这个命令 那么怎么办 最简单的办法就是重新安装Homebrew 1 r
  • 【coding】pandas返回文本序列长度及其描述性统计

    coding pandas返回文本序列长度及其描述性统计 文本长度统计 pandas时不要盲目的使用for loop 费时费力 要熟练掌握pandas提供的内置函数 df len a df a str len 返回的df len a本身也是
  • echarts tootip点击显示 移开不消失

    描述 tooltip点击时显示 依赖不会自动消失 tooltip上有按钮可以点击 可以这样修改 使用tooltip的triggerOn属性 tooltip triggerOn string default mousemove click 提
  • 【unityVR】关于Oculus如何连接unity编译器,无需打包就可以看到场景的教程

    前言 几天的碰壁 没有白费 可以说光是做一个能让让Oculus跑起来的demo这个过程中 几乎是一个坑连着一个坑 国内教程不完善 google也有少量的坑 下面就开始吧 我尽量每一步都说详细点 切记 一定每一步都照做 我就是有些地方想偷懒
  • 【华为机试真题 Python】敏感字段加密

    目录 题目描述 输入描述 输出描述 参考示例 参考代码 机试介绍 写在最后
  • 天翼云登录逆向

    逆向网址 https m ctyun cn wap main auth login redirect 2Fmy 通过按F12抓包分析 加密的是password 在全局中搜索关键词password 通过断点分析进入Object方法中 通过观察
  • Linux中的虚拟化

    在信息大爆炸的今天 大数据 云计算孕育而生 随着计算机硬件的高速发展 单台计算机用途的单一化 在大规模的服务器机房中很多机器职责单一 有些只负责计算 有些只负责存储处理等 硬件的性能潜力不能被高效开发 于是虚拟化技术也由此被设计并开发出来
  • WebBrowser 设置IE兼容性

    在窗体应用程序和wpf程序中会使用到WebBrowser 来显示一个网页 但是可能要显示的网页要求在特定的模式下运行 因此需要调整WebBrowser 对网页兼容性的设置 通过在注册表中设置HKEY CURRENT USER Softwar
  • 【Linux之Shell脚本实战】猜拳小游戏shell脚本

    Linux之Shell脚本实战 猜拳小游戏的shell脚本 一 脚本要求 二 检查本地系统环境 1 检查系统版本 2 检查系统内核版本 三 配置脚本注释模板 1 编辑 vimrc 文件 2 检查模板生效情况 四 编辑shell脚本 1 创建
  • 02vue项目如何配置多页面

    vue项目如何配置多页面 前言 因为我们做项目不可能只有一个界面 就简单说最起码的后台页面 登录界面 主页面最基本的加在一起还三个页面 上次所言cli脚手架搭建一个从0到1的项目 只是单页面 cli脚手架虽然能快速的帮我们搭建一个项目 配置
  • mybatis中批量插入的两种方式(高效插入)

    MyBatis简介 MyBatis是一个支持普通SQL查询 存储过程和高级映射的优秀持久层框架 MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装 MyBatis可以使用简单的XML或注解用于配置和原始映射 将
  • 通过ffmpeg将aac格式转换成wav格式

    这是一个很简单的小程序 但也让我这个初学者折腾了好几天 走算是入门了 总结下学习的过程 希望能够初学者能有所帮助 看源代码 首先得让让它跑起来 看了ffmpeg提供源码api example c 很好的入门程序 虽然对视频编解码十分顺利 但