frame_size (1536) was not respected for a non-last frame

简介: frame_size (1536) was not respected for a non-last frame

用ffmpeg自带的ac3编码,执行编码函数时报错入如下:

[ac3 @ 0x7fed7800f200] frame_size (1536) was not respected for a

non-last frame (avcodec_encode_audio2)


用ac3编码时每次送入编码器的音频采样数应该是1536个采样,不然就会报上述错误。这个数字并非刻意固定,而是跟ac3内部的编码算法原理相关。

关于ac3/aac更多的固定参数配置,可参考之前的博客。

全网找不到,国内音视频之路还有很长的路,音视频人一起加油吧~


image.png

相关文章
|
网络协议 算法 网络性能优化
|
监控 API C++
利用C++构建PC端监控软件:实时屏幕录制
在今天的数字化世界中,监控软件变得越来越重要。无论是家庭用户需要监控他们的孩子,还是企业需要监控员工的电脑活动,实时屏幕录制是一种有效的方法。本文将向您介绍如何使用C++构建PC端监控软件,实现实时屏幕录制功能。此外,我们还将讨论如何自动提交监控到的数据到一个网站上。
1045 0
|
1天前
|
人工智能 JSON 运维
低成本AI编程新方案:DeepSeek V4-Pro接入Claude Code实战配置流程、评测与使用指南
在AI编程工具普及的当下,Claude Code凭借强大的代码理解、工程自动化、多技能调用能力,成为开发者日常开发、项目重构、自动化运维的必备终端工具。但长期使用官方原生模型,调用费用偏高,高频开发场景下成本压力十分明显。因此寻找一款接口兼容、推理能力相当、资费更低的替代模型,成为众多开发者的刚需。
520 0
|
存储 编解码 Java
【Android FFMPEG 开发】FFMPEG 音频重采样 ( 初始化音频重采样上下文 SwrContext | 计算音频延迟 | 计算输出样本个数 | 音频重采样 swr_convert )(一)
【Android FFMPEG 开发】FFMPEG 音频重采样 ( 初始化音频重采样上下文 SwrContext | 计算音频延迟 | 计算输出样本个数 | 音频重采样 swr_convert )(一)
1077 0
|
容器
给aac音频添加adts头,函数实现
给aac音频添加adts头,函数实现
611 0
给aac音频添加adts头,函数实现
|
缓存 Python
如何把非1024的采样数放入aac编码器
当我们得到的采样数是不规则的,比如decklink的采集卡每次的到的采样数帧率有关,为48000/fps。那么25fps,就是1920,60fps,是800。 那么我们就需要一个缓存,来每次读取1024个采样。 这里使用ffmpeg的重采样的缓存机制
483 0
如何把非1024的采样数放入aac编码器
|
安全 数据安全/隐私保护
ffmpeg的线程安全问题
ffmpeg的线程安全问题
619 0
FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放
《FFmpeg开发实战》一书中,第10章示例程序playaudio.c原本仅支持mp3和aac音频播放。为支持ogg、amr、wma等非固定帧率音频,需进行三处修改:1)当frame_size为0时,将输出采样数量设为512;2)遍历音频帧时,计算实际采样位数以确定播放数据大小;3)在SDL音频回调函数中,确保每次发送len字节数据。改进后的代码在chapter10/playaudio2.c,可编译运行播放ring.ogg测试,成功则显示日志并播放铃声。
482 1
FFmpeg开发笔记(十八)FFmpeg兼容各种音频格式的播放
|
编解码 Linux
FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr
在Linux环境下,为FFmpeg添加对AAC、MP3、OGG和AMR音频格式的支持,需安装libogg、libvorbis和opencore-amr库。首先,从官方源下载各库的最新源码,如libogg-1.3.5、libvorbis-1.3.7和opencore-amr-0.1.6,然后解压并依次执行`./configure`、`make`和`make install`进行编译安装。接着,在FFmpeg源码目录中,使用`./configure`命令重新配置,并重新编译安装FFmpeg。最后,验证FFmpeg版本信息确认已启用ogg和amr支持。
850 0
FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr