FFmpeg:编码 PCM 16 音频数据分配错误

2023-12-06

我目前正在尝试使用 avi 容器内的一些视频对一些原始音频数据进行编码。

使用的视频编解码器是 mpeg4,我想使用 PCM_16LE 作为音频编解码器,但我面临着一个问题AVCodec->frame_size音频样本的参数。

完成所有正确的分配后,我尝试分配音频帧,对于 AV_CODEC_ID_PCM_S16LE 编解码器,我没有获取样本缓冲区大小所需的编解码器frame_size。因此样本缓冲区大小很大,我根本无法分配这么大的内存量。 有人知道如何绕过这个问题以及如何手动计算frame_size?

    frame = av_frame_alloc();
    if(!frame)
    {
        return NULL;
    }

    //Problem is right here with the frame_size
    frame->nb_samples = m_pAudioCodecContext->frame_size;
    frame->format = m_pAudioStream->codec->sample_fmt;
    frame->channel_layout = m_pAudioStream->codec->channel_layout;

    //The codec gives us the frame size, in samples, so we can calculate the size of the samples buffer in bytes
    //This returns a huge value due to a null frame_size
    m_audioSampleBufferSize = av_samples_get_buffer_size(NULL,
                                                         m_pAudioCodecContext->channels,
                                                         m_pAudioCodecContext->frame_size,
                                                         m_pAudioCodecContext->sample_fmt,
                                                         0);

感谢您的帮助,

Robert


正如你所看到的pcm_encode_init函数于pcm.c

All pcm编码器有frame_size = 0;. Why?

因为在所有 PCM 格式中“事实上”没有像帧这样的东西,所以本质上不存在压缩PCM.

所以你应该自己决定要在缓冲区中存储多少样本

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

FFmpeg:编码 PCM 16 音频数据分配错误 的相关文章

  • 在列标题上绘制矩形

    I m painting rectangle on the column headers in datagridview but on scrolling to right it disappears as in the picture s
  • 使用 ITextSharp 从内存流附加 PDF 文件时遇到问题

    我在附加内存中创建的 PDF 文件并将其附加到电子邮件模板时遇到问题 电子邮件没有任何问题 但没有附件 我不明白为什么会发生这种情况 这是该过程的完整代码 ExtendedEmailTemplate emailTemp new Extend
  • C# - 带 GUI 的后台应用程序

    我的问题是我想创建一个后台应用程序 但具有可以恢复并最小化到系统托盘的用户界面 并且它从窗口启动 我尝试搜索如何启动 但只找到有关 Windows 服务的线程 没有 UI 或创建表单并隐藏它 所以我的问题是我应该如何开始 Windows 窗
  • 为什么 extern int a ;初始化在本地给出错误,但在全局没有给出错误? [复制]

    这个问题在这里已经有答案了 extern int a 10 it is not giving error int main extern int b 10 it is giving error return 0 错误 b 同时具有 exte
  • Fortran DLL 导入

    Fortran 中有一段代码罗伯特 L 帕克和菲利普 B 斯塔克 http www stat berkeley edu 7Estark Code sbvq f FORTRAN subroutine bv key m n a b bl bu
  • 在 Silverlight 中同步操作

    我有一个 Silverlight 应用程序 它使用操作从模型获取数据 再次从 WCF 服务获取数据 我需要以某种方式同步两个 ActionCallback 或等待它们 然后执行一些代码 Example model GetMyTypeList
  • 通过 WCF 提供类对象的数组或列表

    任何提供自定义类对象列表或数组的 WCF 客户端服务器示例都会对我有所帮助 但这是我到目前为止所得到的 这是我想提供的班级系统 namespace NEN Server FS Serializable public class XFS pr
  • 为什么表达式树不能包含命名参数规范?

    使用 AutoMapper 我找到了一个非常适合命名参数的地方 ForMember s gt s MyProperty opt gt opt MapFrom s gt BuildMyProperty s isAdvanced false 但
  • 为什么Java不支持C中的clrscr这样的函数?

    我有一个问题 对很多人来说可能听起来很愚蠢 但我不能停下来把它发布在这里 因为在互联网上找不到任何东西 为什么java没有我们在C中使用的clrscr之类的函数 如果我创建了一个基于用户输入反复迭代的 java 控制台应用程序 然后如果我想
  • JPG、DOC、PDF 等文件是否也编译成程序集?

    Q1 Does aspnet compiler exe将网站目录中包含的所有文件 甚至 JPG DOC 和 PDF 类型 编译成程序集 如果将图像添加到Web项目中的文件列表中 从而将它们添加到项目文件中 这些图像也会被VS编译成程序集吗
  • 图像的 EMGU/OpenCV FFT 未产生预期结果

    我正在尝试使用 EMGU 可视化图像的 FFT 这是我正在处理的图像 这是预期的结果 Here s what I get 这是我的代码 Image
  • 将模型和订阅密钥传递给 LuisDialog,而不是通过属性

    我正在编写一个可以说两种语言的机器人 因此 我需要使用两个单独的 LUIS 应用程序 每种语言一个 Bot Framework 中的 LuisDialog 是这样初始化的 来自 Microsoft 的示例 LuisModel c413b2e
  • ASPNET MVC - 使用具有相同签名的新助手覆盖 Html.TextBoxFor(model.property)?

    我想用我自己的助手重写 Html TextBoxFor 该助手具有完全相同的签名 当然 但名称空间不同 这是否可能 如果可以 如何实现 原因是我在现有的应用程序中有 100 多个视图 并且我想更改 TextBoxFor 的行为 以便在属性具
  • 检查SQL Server数据库表中是否存在表或列

    在 SQL Server 数据库中创建列或表之前 我想检查所需的表和 或列是否存在 我已经四处搜寻 到目前为止发现了两种方法 我不想使用存储过程 通过使用SqlCommand ExecuteScalar 方法并捕获异常来确定表 列是否存在
  • 在异步方法中显示错误消息的更好方法

    事实上我们不能使用await关键字在catch块使得在 WinRT 中显示来自异步方法的错误消息变得非常尴尬 因为MessageDialogAPI 是异步的 理想情况下我希望能够这样写 private async Task DoSometh
  • Caliburn.Micro 事件聚合器

    如果这是一个非常愚蠢的问题 请道歉 但我刚刚开始使用 caliburn micro 我正在努力获取 eventAggregator 似乎没有任何内容订阅 我不确定问题是出在视图模型还是引导程序上 这是视图模型 class MainWindo
  • 非静态类中的静态方法有什么意义?

    我无法理解以下代码的潜在错误 class myClass public void print string mess Console WriteLine mess class myOtherClass public static void
  • C++中main函数可以调用自身吗?

    谁能告诉我下面的代码有什么问题吗 int main return main 我测试了一下 编译正确 它永远运行 幕后还有什么阴谋吗 TLDR 呼叫main导致未定义的行为 标准中使用的术语以及对程序员和编译器的影响似乎存在混淆 首先 单独的
  • 单击 GridView 查找选定行

    我正在尝试获取 GridView 并从单击的行中获取数据 我已经尝试了下面的代码 当我单击该行时 我会返回选定的索引 但是当我查看 GridView 中的实际行时 它们显示为空 不知道我错过了什么 ASP 使我的网格
  • ASP.NET 中的 ThreadStaticAttribute

    我有一个需要存储的组件static每个线程的值 它是一个通用组件 可以在许多场景中使用 而不仅仅是在 ASP NET 中 我想用 ThreadStatic 属性来实现我的目标 假设它在 ASP NET 场景中也能正常工作 因为我假设每个请求

随机推荐

  • 自定义注释 JSF

    我想制作自定义注释来检查 JSF Web 应用程序某些功能的安全性 为了安全起见 我将 Tomcat 安全性与 JaaS 结合使用 因此我没有可用的应用程序管理安全性 实际上想要做的是在 Spring Security Secured ro
  • 如果无法继承QSlider,如何为滑块添加刻度线

    我有一个 Qt 对话框 里面有一个滑块 当对话框初始化时 滑块将被设置一个值 为了提醒用户默认值是什么 我想给滑块添加一个标记 只需在手柄上方画一条线或一个三角形即可 这里 滑块应该是QSlider类型 这意味着我无法实现从QSlider派
  • Neo4j 强制索引的问题

    我遇到了一个问题 我在 Cypher 批量查询中强制使用索引 UNWIND rows AS row MATCH s Entity USING INDEX s Entity uuid WHERE s uuid row source MATCH
  • 如何在postgresql中查找任意大小的数组的所有组合(子集)[重复]

    这个问题在这里已经有答案了 给定一个数组 如何在 postgresql 中查找特定大小的元素的所有组合 子集 例如 给定一个数组 1 2 3 4 大小为 3 的所有组合都是 1 2 3 1 2 4 1 3 4 2 3 4 组合中的顺序并不重
  • NSURLSession:如何增加 URL 请求的超时时间?

    我正在使用iOS 7的新功能NSURLSessionDataTask检索数据如下 NSURLSession session NSURLSession sharedSession NSURLSessionDataTask dataTask s
  • 游戏中的卡牌等级

    我是一名 Java 初学者 因此 任何帮助将不胜感激 我设计了一个卡片类和甲板类 我将在我创建的游戏中使用它们 到目前为止 我的游戏似乎运行得很好 但问题出在我的 Cards 类上 我想利用 getRank 方法为玩家拥有的牌 无论花色如何
  • 如何在数据表列标题的过滤框中添加占位符文本

    我有一个素数面孔数据表 其中只有几列 并且所有列都有 filteryBy 属性 如何添加占位符或水印来为用户提供提示 任何建议 将不胜感激
  • 函数数组<可选> -> 可选<数组>

    这是我想做的 extension Array
  • Woocommerce 禁用自动订单状态更改挂起->处理

    我想禁用这个选项 每当有人在我的网站上制作和订购并且付款成功时 订单状态会自动从待处理 但是 我不想要此功能已启用 相反 我想在处理订单时手动执行此操作 我在 woocommerce 中发现了此功能 这使得此功能成为可能 我不想直接在那里更
  • Gem 安装 ruby​​-audio 失败

    我已经克隆了一个现有的存储库并且现在正在运行bundle install 由于某种原因 它在 ruby audio gem 上失败了 Installing ruby audio 1 6 1 with native extensions Ge
  • 重新格式化列中的日期

    我在 SQLite DB 中有一些以下形式的数据 id column1 date 111 280 1 1 2014 114 275 1 2 2014 日期字段的类型为 TEXT 我已被告知 https www sqlite org lang
  • docker 如何使用带引号的新命令提交 docker

    在制作 docker 的过程中 我必须将其命令从 bin sh 更改为nginx g daemon off 正是如此 I wrote docker commit change EXPOSE 80 change CMD nginx g dae
  • MongoDB:按日期查询

    在 MongoDB 数据库中 我有一个项目集合 每个项目都存储其创建日期 我需要按日期查询这个集合 我试过 db items findOne date new Date 1285947037 1000 但它没有返回任何东西 我使用 PHP
  • FreeType 如何渲染 ü ä ö 等特殊字符?

    我一直坚持使用 FreeType 渲染文本 尤其是非ascii字符让我头疼 经过一番尝试和错误后 我设法呈现一些文本 但我的变音符号没有显示 std string text Hauptmen for std string iterator
  • MVC C# 下拉列表在模型上显示 System.Web.SelectListItem 并且不能盲视控制器

    请帮我 我的下拉列表显示System Web SelectListItem在调试模式下 但不显示我在列表中定义的实际文本 任何人都可以帮忙吗 如何使控制器具有我在列表中定义的文本 而且我的下拉列表在选择时并不盲目 请帮我 这是它的样子 请看
  • 将 JComponent 重置为默认值

    例如 如果组件是一个复选框 则必须设置为 false 或者它是一个文本字段 则必须清除文本 我正在尝试编写一种重置所有组件的方法JPanel 它必须像 HTML 表单中的重置功能一样工作 如何重置JComponent到默认值 作为一名优秀的
  • 当目录名称包含方括号“[ ]”等特殊字符时,Glob 不起作用

    当路径目录带有方括号时 我在使用 glob 函数时遇到问题 Example 1 working path temp DIRECTORY SEPARATOR dir name files glob path DIRECTORY SEPARAT
  • 从 SciPy 稀疏矩阵填充 Pandas SparseDataFrame

    我注意到熊猫现在有支持稀疏矩阵和数组 目前 我创建DataFrame 像这样 return DataFrame matrix toarray columns features index observations 有没有办法创建一个Spar
  • 如何设置图标以获取基础FloatingActionsMenu

    我正在使用 com getbase floatingactionbutton FloatingActionsMenu 作为可扩展的 FAB 但无法在 fab 菜单上设置图标 我尝试过设置背景可绘制 但不起作用 谢谢
  • FFmpeg:编码 PCM 16 音频数据分配错误

    我目前正在尝试使用 avi 容器内的一些视频对一些原始音频数据进行编码 使用的视频编解码器是 mpeg4 我想使用 PCM 16LE 作为音频编解码器 但我面临着一个问题AVCodec gt frame size音频样本的参数 完成所有正确