关键帧不是关键帧? AV_PKT_FLAG_KEY 未解码为 AV_PICTURE_TYPE_I

2024-01-09

解码标志中包含 AV_PKT_FLAG_KEY 的数据包后, 我原本期望得到 I 帧,但结果却得到了 P 帧:

拨打电话后:

avcodec_decode_video2(codecCtx, frame, &frameFinished, &packet); // mpeg2 video

我打印出以下内容作为完整性检查:

    printf("packet flags: %d picture type: %c\n", packet.flags,
            av_get_picture_type_char(frame->pict_type));

返回输出:

    packet flags: 1 picture type: P

当我期待的时候:

    packet flags: 1 picture type: I  

其中“1”== AV_PKT_FLAG_KEY。 'I' 指的是 AV_PICTURE_TYPE_I,

这种行为正确吗? (我正在解码 MPEG2 视频)。


我收到了 ffmpeg bugtracker 的回复:

https://ffmpeg.org/trac/ffmpeg/ticket/2074 https://ffmpeg.org/trac/ffmpeg/ticket/2074

我怀疑你错过了编解码器延迟。 您输出的视频帧通常根本不基于您刚刚发送的数据包。对于多线程解码尤其如此,但即使没有,由于 B 帧的工作方式,这通常也是不可能的。

而且,事实上,我在 3 帧后打印出 ->pict_type“图片类型”,几帧后弹出一个 I 帧,并在 3 帧后出现了某种“延迟”。就我而言,我有一台四核计算机,因此可能为我的计算机上的每个核心分配一个线程来进行编码。

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

关键帧不是关键帧? AV_PKT_FLAG_KEY 未解码为 AV_PICTURE_TYPE_I 的相关文章

  • 使用 ffmpeg api 调用将 3gp (amr) 转换为 mp3

    使用 ffmpeg api 调用将 3gp amr 转换为 mp3 我尝试使用 libavformat ffmpeg 构建自己的函数 将 3gp 音频文件 用 Android 移动设备录制 转换为 mp3 文件 我使用 av read fr
  • FFmpeg 支持哪些编解码器和格式? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我需要 FFmpeg 支持的编解码器和格式列表 我在哪里可以找到它 正确的编解码器 ffmpeg codecs Formats ffm
  • 如何在 C++ 中将调色板生成器和调色板使用过滤器与 FFmpeg 一起使用?

    我想在 QT 项目中创建一个动画 gif 当我直接将 QImage 缩放到 AV PIX FMT RGB8 时 输出看起来很糟糕 带有闪烁的伪影 而当我缩放到 AV PIX FMT YUV420P 之间时 输出会抖动 这看起来并没有好多少
  • FFMPEG - 以特定时间间隔在视频上叠加多个视频

    我想以指定的时间间隔将多个视频叠加在单个视频上 尝试过不同的解决方案 但它不会像我一样工作 我使用下面的命令将视频叠加在视频上 String cmdWorking3 new String i yourRealPath i gifVideoF
  • 使用 FFmpeg 在特定时间将一个视频叠加在另一个视频上

    我正在尝试将一个视频与另一个视频叠加 我按照OP发布的原始命令进行操作here https stackoverflow com questions 35269387 ffmpeg overlay one video onto another
  • 如何使用 FFMPEG 获得最佳的 FLV 整体质量?

    我希望以最小的文件大小实现最佳质量的 FLV 毕竟 这不是每个人的目标吗 如果这有什么影响的话 这些视频将会被直播 目前 我的视频宽度不超过 320 像素 有些是宽屏 因此它们的高度略小于 240 像素 就目前情况而言 转换后的 FLV 的
  • 使用 FFMPEG 播放音频

    我一直在尝试使用 NDK 将 FFMPEG 用于播放音频 移植到 Android 中 我取得了一些成功 我可以构建 FFMPEG 并通过 NDK 链接它 我可以打电话avcodec decode audio3 并解码给定的音频文件 所以这里
  • 如何从 youtube-dl --write-auto-sub 下载转换混乱的 .vtt 子文件?

    我的目标是在单独的文件中下载带有自动生成字幕的 YouTube 视频 例如 vtt srt etc 我目前正在努力实现这一目标youtube dl但如果需要的话 我愿意接受其他解决方案 当我运行以下命令时 它将视频下载为 mp4 这很好 和
  • RTSP 帧抓取会产生拖尾、像素化和损坏的图像

    我正在尝试使用以下命令从 RTSP 流中每秒捕获一帧 ffmpeg i rtsp XXX q v 1 vf fps fps 1 strftime 1 ZZZZ H M S jpg But some of the frames are sme
  • 使用 FFMPEG 的 HLS FLAC 流

    我使用以下命令从 FLAC 文件创建了一个 HLS 流 并输出 FLAC ffmpeg i 10 brass in pocket flac map 0 a c a 0 flac f hls hls playlist type vod mas
  • 有没有简单的方法来提取附件 b 格式的 h264 原始流?

    当我使用命令行使用 ffmpeg 提取视频流时 ffmpeg i 一些文件 vcodec copy an f rawvideo h264 什么 out h264 对于 Adob e Media Encoder 生成的某些媒体文件 只有 m4
  • 在流 #1 中找不到编解码器 pcm_alaw 的标签,使用 ffmpeg 连接 2 个文件时容器当前不支持编解码器 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试连接两个文件 第一个文件包含音频和视频 第二个文件仅包含视频 我用以下ffmpeg命令 ffmpeg command ffmpe
  • 如何调试视频解码损坏?

    我刚刚开始为一家新公司工作 我的新角色要求我帮助调试他们通过解码帧接收到的视频损坏 尽管我打算深入研究代码并研究问题的具体细节 但它让我开始思考视频调试的总体情况 由于处理视频对我来说非常陌生 整个过程看起来相当复杂 而且似乎有很多地方可以
  • 为 iOS6.0 ARMv7 处理器构建 FFMPEG 库

    WARNING 我刚刚被另一位用户告知 在 iOS 上使用 FFMPEG 存在一些法律问题 请在此处留下链接http multinc com 2009 08 24 compatibility Between the iphone app s
  • 使用 ffmpeg 转换真实媒体

    我有许多旧的硬壳真实媒体文件需要转换 并希望编写一个脚本来批量处理它们 我可以使用 FFMpegX 进行 Real Media gt AVI 转换 但是当我尝试使用 ffmpeg 复制转换时 它总是会出现如下错误 avi 0x10084fa
  • 如何使用ijkplayer库

    我要使用 ijkplayergithub链接 https github com bbcallen ijkplayer 我下载了这个 然后通过 文件 gt 导入 gt 常规 gt 现有项目到工作区 将其导入到 eclipse 中 之后我有三个
  • 在 FFmpeg 中使用 -filter_complex amerge 时混合流

    我目前遇到 ffmpeg 及其过滤器之一的问题 我正在尝试将视频的 2 个音频流合并为一个 为此我尝试了这个命令 ffmpeg i home maniaplanet Videos ManiaPlanet 2014 08 21 20 09 1
  • C# 从视频文件的一部分中提取帧

    使用 AForge ffmpeg 包装器 您可以使用 VideoFileReader 类从视频中提取帧并将其保存为位图 请参阅以下示例 提取 avi 文件的帧 https stackoverflow com questions 178256
  • 合并来自 ffmpeg 的两个视频

    我想使用 ffmpeg 将两个 mp4 视频组合成一个 mp4 视频 到目前为止我尝试过的是 ffmpeg i input1 mp4 i input2 mp4 output mp4 但是 每次我获取带有第一个输入的视频编解码器的视频而不是另
  • 访问 AVFrame 的每个像素

    我需要访问 FFMPEG 的 AVFrame 对象的每个像素信息 如果是 RGB 则每个像素的每种颜色 R G 和 B 我怎样才能做到这一点 如果您已经前进到正确的框架 类似于 img convert ctx ffmpeg sws getC

随机推荐

  • 我可以说事件和委托之间的关系采用复合模式吗?

    一个事件可以包含许多使用定义的处理程序delegate 我目前的理解是delegate只是函数指针的抽象 自从event 它与一个相关联delegate类型 可以向其中添加 删除许多委托 并且复合模式将复合对象视为终端对象 因此想法是 co
  • Android 网络统计

    是否可以创建一个在作为后台进程运行时获取网络活动 统计信息的应用程序 或者只是制作一个侦听特定端口上的流量的应用程序 Thanks M 也许是碰碰运气 但我使用过的大多数设备都有 proc 文件系统 您应该能够从 proc net 条目之一
  • System.Web.Script.Serialization.JavaScriptSerializer 还是 System.Runtime.Serialization.Json.DataContractJsonSerializer?

    两者有什么区别 为什么你会使用其中一种而不是另一种 在这里找到 http aaron powell spaces live com blog cns 91A824220E2BF369 150 entry http aaron powell
  • CreateGraphics 和 Paint 事件的 Graphics 对象有什么区别?

    有人可以解释一下两者之间的区别吗Graphics传递的对象pevent Graphics以及通过调用返回的那个this CreateGraphics 每当一个Paint事件被引发 你会得到一个Graphics要绘制的对象 这被传递为peve
  • 如何在 Node.js 中强制重置套接字?

    我从 Node js 应用程序收到 read ECONNRESET 错误 可能是客户端或服务器连接 我不确定 作为修复这些问题的一部分 我想做一些本地测试 最好为其设置自动化测试 我想编写一个节点客户端和服务器 在连接建立后立即对其进行硬重
  • 无法在 Android 上获取 expo 推送令牌

    我正在构建一个 React 本机应用程序 它基于Expo https expo io 我还想结合利用 Expo 的推送通知功能Firebase 实时数据库 https firebase google com docs database 我基
  • 如何检查 javascript var 中是否存在文本

    我有一个包含一些文本的变量 我想检查一下文本中是否有某个单词 例子 var myString This is some random text 我想检查一下 随机 这个词是否存在 谢谢你的帮助 如果您想专门测试 随机 一词 可以使用如下正则
  • 刷新布局并更新数据

    我有以下显示数据网格的 pyqt 代码 我能够单击一个字母 打开一个文本输入框并成功将数据保存到网格并在终端中打印更新的数据 我努力了update and repaint 但他们什么也没做 并打电话给createLayout 方法抛出错误Q
  • 浏览存储库中标记版本的列表?

    我正在尝试检查 OpenSSL 1 0 2a 而不是 Master OpenSSL 已标记版本 我正在尝试浏览它们以确定实际名称是什么 我知道它们有 1 0 0 1 0 1 和 1 0 2 但它们的命名更复杂 根据OpenSSL Git 存
  • 如何通过svn Eclipse插件解决树冲突

    我最近在我的eclipse中安装了svn插件 我想知道如何通过它解决我的项目的树冲突 等待您宝贵的回复 右键单击项目 选择Team gt Show Tree Conflict gt Mark as Resolved
  • Android 5.0.2 - 短信广播接收器 - 无法使其工作

    我正在小米红米Note 3上进行测试 我需要的很简单 注册广播接收器以接收传入的短信 收到消息后 只需阅读即可 看来无论我如何尝试 我都无法获得接收器注册 从谷歌文档来看 从 4 4 开始 任何应用程序都不应该吞下该事件 并且每个监听的应用
  • EnableViewState 在 DropDownList 中不起作用

    default aspx 页面有一个DropDownList仅当它不是时才在后面的代码中填充postback 当选择一个值时 将调用一个方法来填充Literal与选定的值 它按预期工作 问题是当我将页面设置为不EnableViewState
  • 如何让console.log输出getter结果而不是字符串“[Getter/Setter]”?

    在此代码中 function Cls this id 0 Object defineProperty this id get function return this id set function id this id id enumer
  • .NET 主要版本和发布分支的 git 分支策略

    对于包含多个类库的 NET 项目 我当前使用以下 git 分支策略 feature 1 master v PR v release 7 0 v I branch
  • iPhone 7/7plus 上的空 snapshotView

    我的第一个问题是 最近我将 Xcode 更新到 8 并且resizableSnapshotView该方法在某些模拟器上无法正常工作 snapshotView 在所有 iOS9 10 的测试设备和 iPhone6s 下的模拟器上都运行良好 但
  • Qt 安卓.获取设备屏幕分辨率

    我正在 Android 设备上使用 qt 5 3 进行开发 我无法获取屏幕分辨率 对于旧的 qt 5 版本 此代码有效 QScreen screen QApplication screens at 0 largh screen gt ava
  • 通过合并日期时间和日期列上的两个 DF 查找昨天的高价

    我正在尝试合并两个 df 其中一个 df 有一个datetime列 另一个只有一个date柱子 我的申请是找到昨天的high使用 OHLC 数据集的价格 我在下面附加了一些起始代码 但我将描述我正在寻找的内容 鉴于这种intraday数据集
  • 从 Git 中删除过时的提交

    我已经进行了一些测试提交 以测试提交挂钩 并且始终将索引重置为我最后一次正常提交 现在这些过时的提交仍然存在 gt git reflog fcdabf7 HEAD 0 reset moving to fcdabf7e01845d6f000f
  • 如何在javascript中完全获取具有重复键的JSON

    我试图从 url 获取 JSON 但在响应对象中重复的键被删除 有没有什么方法可以完全获取它而不删除重复的键 这是我的js代码 document ready function var s getJSON new json console l
  • 关键帧不是关键帧? AV_PKT_FLAG_KEY 未解码为 AV_PICTURE_TYPE_I

    解码标志中包含 AV PKT FLAG KEY 的数据包后 我原本期望得到 I 帧 但结果却得到了 P 帧 拨打电话后 avcodec decode video2 codecCtx frame frameFinished packet mp