使用 libavformat API 读取 H264 SPS 和 PPS NAL 字节

2024-04-02

如何使用 libavformat API 读取 H264 SPS 和 PPS NAL 字节?

我尝试使用“av_read_frame(input_avFormatContext, &avPkt)” API 从 .mp4 视频(编解码器为 h264)文件将视频数据读取到“AVPacket”结构。

我将 avPkt->data 转储到文件中。但读取的第一个帧是 IDR 帧。

使用“ffmpeg -i video.mp4 video.h264”生成的文件将在 IDR 启动之前的开头包含 SPS 和 PPS。

我想从 .mp4 文件中提取原始 .h264 视频并将其转储为 SPS、PPS、IDR、P1、P2... 顺序。

我想使用 libavformat API 以编程方式完成此操作。

有什么想法吗?

Thanks.


在 mp4 容器(也包括 mkv)中,PPS/SPS 与全局标头中的帧数据分开存储。要从 libav* API 访问它们,您需要在 AVStream 的 AVCodecContext 中查找与所需视频流相关的额外数据字段。此外,额外数据的格式可能与标准 H.264 NAL 不同,因此请参阅 MP4 容器规范以获取格式描述。

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

使用 libavformat API 读取 H264 SPS 和 PPS NAL 字节 的相关文章

  • 有没有办法在转码之前使用 ffmpeg 确定文件的编码?

    我计划使用 ffmpeg 确保上传到我网站的所有视频文件都编码为 mp4 h264 我不想自动处理每个文件 而是希望通过仅处理那些还不是 mp4 h264 的文件来最小化处理开销 有没有一种简单的方法可以使用 ffmpeg 或其他命令行实用
  • 使用 FFMPEG 播放音频

    我一直在尝试使用 NDK 将 FFMPEG 用于播放音频 移植到 Android 中 我取得了一些成功 我可以构建 FFMPEG 并通过 NDK 链接它 我可以打电话avcodec decode audio3 并解码给定的音频文件 所以这里
  • ffmpeg流rc缓冲区下溢

    目前我正在使用开源工具 ffmpeg ffserver 建立一个屏幕共享平台 分享之初一切都很好 大约 1 1 2 分钟后 我在输出中得到以下异常 flv 0x3a47aa0 rc buffer underflow flv 0x3a47aa
  • FFmpeg - 找不到 ExecuteBinaryResponseHandler - Android/Java

    我正在尝试制作一个用于反应原生的模块 它将把视频变成 gif 我对 android studios java 几乎没有经验 但我很想了解更多 我在用这个图书馆 https github com WritingMinds ffmpeg and
  • 使用 ffmpeg 将文件从一种格式转换为另一种格式

    我是新来的ffmpeg我试图找出如何将音频或视频文件从一种格式转换为另一种格式 我不想使用CLI 我只是想知道我是否可以使用ffmpeg作为库并调用函数将文件从一种格式转换为另一种格式 我浏览了文档并找到了函数avcodec encode
  • 将 H.264 I 帧放入 AVSampleBufferDisplayLayer 但不显示视频图像

    在详细回顾了 WWDC2014 Session513 后 我尝试在 IOS8 0 上编写我的应用程序来解码和显示一个实时 H 264 流 首先 我成功构建了H264参数集 当我得到一个带有 4 位起始代码的帧时 就像 0x00 0x00 0
  • ffmpeg drawtext如何设置从右到左的方向

    i write arabic text to videos and it works fine but the issue is that the arabic language is written from right to left
  • 为视频添加水印的命令

    我尝试在一个视频上添加水印 但 FFmpeg 命令不会执行 错误代码为 3037 我运行相同的代码来修剪视频 视频已成功修剪 因此没有问题inputpath or outputpath我也有ic watermark png在资产文件夹中 我
  • 在 R 中导入 png 文件并转换为动画(.mp4)

    我正在尝试用 R 中的几个 png 文件创建一个简短的动画 我尝试了 packagemagick但只有当我将它们保存为 gif 时它才有效 当我尝试另存为 mp4 时 它将生成一个 mp4 文件 但一旦打开它 只会显示第一张图像 我的代码是
  • 如何使用ffmpeg从avi生成gif? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试使用以下命令将视频的一部分提取到动画 gif 中 ffmpeg i video avi t 5 out gif 它会生成一个 g
  • 将每分钟的 MP3 导出为单独的 WAV

    这绝对是一个奇怪的问题 但我正在寻找一种方法 将 60 分钟的 mp3 混合拆分为 60 个单独的 1 分钟长的 wav 文件 以便与 Echonest 等音频指纹识别 API 一起使用 这是否可以在单个 ffmpeg 命令中实现 或者我是
  • 如何减少 MediaCodec H264 编码器延迟

    我正在尝试使用 Android6 0 的 MediaCodec 将 h264 实时低延迟编码为流 编码器大约有 6 帧延迟 我想知道如何减少 代码来自屏幕记录 cpp https android googlesource com platf
  • 使用 ffmpeg 从 unix 命令批量将 wav 文件转换为 16 位

    我有一个由许多子文件夹组成的文件夹 每个子文件夹都有其他子文件夹 其中包含 wav 文件 我想像这样转换所有文件 ffmpeg i BmBmGG BmBmBmBm wav acodec pcm s16le ar 44100 BmBmGG B
  • 从编码视频文件中提取运动向量

    我正在尝试从编码的 mp4 文件中提取运动矢量数据 在之前的帖子中我发现 一个答案http www princeton edu jiasic cos435 motion vector c http www princeton edu jia
  • C# - 捕获 RTP 流并发送到语音识别

    我正在努力实现的目标 在 C 中捕获 RTP 流 将该流转发到 System Speech SpeechRecognitionEngine 我正在创建一个基于 Linux 的机器人 它将接受麦克风输入 将其发送给 Windows 机器 Wi
  • 消除 ffmpeg 和 image-magic 命令中的慢速因素

    这些命令的基本思想是创建一个比较 比较定义了过去的一张 jpeg 和现在的一张 jpeg 组合起来 例如它们将相互滑动并显示前后图像 e g https media evercam io v1 cameras 1lowe scnoe com
  • 重新采样 H264 视频以降低帧速率,同时保持高图像质量

    以下是感兴趣的视频的 mplayer 输出 br carina tmp mplayer foo mov mplayer Symbol ff codec bmp tags has different size in shared object
  • 如何使用android ndk r9b为Android编译FFMPEG

    我想设计一个Android应用程序 可以通过FFMPEG命令播放和编辑视频 但我不知道如何在Android上使用FFMPEG 我尝试过从Google搜索到的许多方法 但它们太旧了 无法实现 现在 FFMPEG的最新版本是2 1 1 Andr
  • 如何从 Linux 命令行获取视频文件的分辨率(宽度和高度)?

    我一直在挖掘 mplayer mencoder 和 ffmpeg 文档 但我似乎无法想出anything 我对输出格式不是特别挑剔 因为我可以使用正则表达式将其拉出来 我只是似乎无法首先获取数据 Use ffprobe https ffmp
  • 适用于 iPhone 和 HTTP 直播的实时视频聊天

    所以一般来说 我想为 iPhone 制作一个具有视频聊天功能的应用程序 但经过多次搜索 我仍然找不到任何成功的结果 是否有任何公共或私有 API 可用于在 iPhone 上执行此操作 如果您的答案是 是 请帮助我 基本上 我想要的是读取连接

随机推荐

  • 计算机如何进行浮点运算?

    我看过很长的文章解释如何存储浮点数以及如何完成这些数字的算术运算 但请简要解释一下为什么当我写的时候 cout lt lt 1 0 3 0 lt
  • 从头开始创建,还是从头开始构建?

    我正在考虑建立一个可视化编程语言 http en wikipedia org wiki Visual programming language 类似于Scratch http scratch mit edu 供儿童 又称可怜的打字员 在对微
  • Go中如何生成固定长度的随机数?

    在 Go 中生成固定长度随机数的最快 最简单的方法是什么 假设要生成8位长数字 问题是rand Intn 100000000 是结果可能远小于 8 位数字 并且用前导零填充它对我来说看起来不是一个好的答案 也就是说 我更关心随机性的质量 因
  • 将 Visual Studio 2008 指向第三方 DLL 的源代码进行调试

    我有一个 VS 2008 C 项目 它使用第三方库 开放场景图 当我开始调试项目时 每次调用此外部库中的函数时 调试器都会跳过它 因为 显然 调试器没有可在其中查找代码的 cpp 文件 它只会跳转到链接到我的项目的头文件 因为这些文件存在并
  • 如何将 Semantic-UI 导入 Angular 项目

    我正在开发一个基于 Semantic UI 框架 这是 Semantic UI 的一个分支 的 Angular 项目 我已经安装了 npm install save fomantic ui 然后我在中添加了以下几行angular json
  • Crashlytics Android NDK:崩溃报告中缺少所有符号

    我们的原生 Crashlytics 崩溃报告最近缺少所有符号信息 我曾希望最新的 Crashlytics NDK 能够解决该问题 但事实并非如此 我看到那里有一个类似的查询 但在这种情况下 我没有使用 Firebase 只是使用 Crash
  • 互动网留下大量多余粉丝是常事吗?

    我正在将 lambda 演算项编译到交互网络中 以便使用 Lamping 的抽象算法对其进行评估 为了测试我的实现 我使用了这个教堂编号除法函数 div a b c d b e e d a b e f g e h f h g e e e f
  • 是否可以用 CSS 来设计 C# 应用程序

    我更擅长用 C 创建基于计算机的应用程序 而不是用 ASP net 创建网页 但是 CSS 在设计按钮 表单等方面的强大功能确实让我喜欢它 我在谷歌上搜索是否可以在软件中只使用CSS 但还没有结果 是否可以 我知道这个问题太国外了而且有点愚
  • 如何在 Asp.net MVC 中编写集成和系统测试

    我的应用程序 我的应用程序设计如下所示 Web 应用程序层 带有使用 POCO 和调用服务的控制器和视图的 asp net MVC 应用程序 服务层 使用 POCO 和调用存储库的业务流程 数据层 使用 POCO 并以 EF 模型形式与模型
  • 将 Excel 工作簿的一部分复制/粘贴到当前未打开的工作簿

    我需要将 Excel 工作簿的一部分复制到大约 3500 个其他工作簿 由于工作簿数量众多 在每个工作簿上运行宏是不可行的 有没有办法复制该部分并将其粘贴到其他工作簿而不打开它们 番茄 不幸的是 正如 Ken White 和 L42 都指出
  • Windows 上“没有名为 scipy 的模块”

    在 sklearn base py 中 我有这样的声明from scipy import sparse 我收到这个错误 no module named scipy 我尝试安装使用pip install scipy 但我收到了很多错误 lib
  • 在 Xna/MonoGame 中按程序生成 Texture2D

    如何使用代码按程序生成Texture2D 例如 我希望在 32x32 图像上交替出现黑白像素 您可以使用 GraphicsDevice 创建一个新的纹理 public static Texture2D CreateTexture Graph
  • 将 UIViewController 添加到 UIScrollView

    我有一个UIViewCOntroller我已经添加了很多 UI 组件 标签 文本字段等 现在 我需要向其中添加更多字段 我发现我的视图控制器中没有任何空间可以添加任何空间 所以我想添加一个scrollView来解决这个问题 我可以在哪里添加
  • .net中RSA公钥模数和指数的格式是什么?

    一个简短的问题 如果我有来自第三方的以下输入 我该如何填写 RSAParameters 模数 123456 指数 111 长话短说 我使用以下代码 RSACryptoServiceProvider RSAalg 新 RSACryptoSer
  • 在选项卡式 UIPopover 中使用 UIImagePicker

    我正在开发一个 iPad 应用程序 需要在设备 相册 远程和应用程序中包含多个图像源 现在理想的情况是拥有一个 UIPopover 控制器 每个源有 3 个选项卡 唯一的问题是我似乎无法弄清楚如何让 UIImagePicker 位于其自己的
  • 客户端不可编辑属性的资源的 REST API 设计

    处理必须通过不向 API 使用者公开的另一种方法修改 更新的资源属性的最佳方法是什么 例子 请求用于 X 的新令牌 令牌必须按照一组特定的业务规则 逻辑生成 旧汇率到期后请求 刷新货币汇率 该汇率仅供参考 将在后续交易中使用 请注意 在上面
  • T-SQL 的漂亮打印机?

    我正在寻找一个好的 T SQL 漂亮打印机 以便我们项目中的开发人员之间的所有代码看起来都一致 最好是免费 开源的 但只要价格合理 付费也不是不可能的 有没有特定的行业领导者 我并不太关心它使用什么特定标准 但可配置性越高越好 这样 我们就
  • 为什么在 forEach 中重新分配参数元素不起作用[重复]

    这个问题在这里已经有答案了 对于以下代码块 const items id 1 name one id 2 name two const changes name hello items forEach item i gt item item
  • 无法无条件访问属性“isEmpty”,因为接收者可以为“null”

    import package flutter material dart import package flutter app 1 utils routes dart class LoginPage extends StatefulWidg
  • 使用 libavformat API 读取 H264 SPS 和 PPS NAL 字节

    如何使用 libavformat API 读取 H264 SPS 和 PPS NAL 字节 我尝试使用 av read frame input avFormatContext avPkt API 从 mp4 视频 编解码器为 h264 文件