ffmpeg使用qsv解码碰到的问题

2023-10-27

ffmpeg使用qsv硬解码出来的视频帧格式是AV_PIX_FMT_NV12格式的

//ffmpeg使用qsv硬解码出来的视频帧格式是AV_PIX_FMT_NV12格式的,
//在调用sws_getContext函数时第三个参数必须强制传入AV_PIX_FMT_NV12,
//否则会导致视频数据转换rgb时失败
if (bUseGPUDecoder)
{
	m_img_convert_ctx = sws_getContext(w, h, AV_PIX_FMT_NV12,
		w, h, AV_PIX_FMT_YUV420P, SWS_BICUBIC, NULL, NULL, NULL);
}
else
{
	m_img_convert_ctx = sws_getContext(w, h, m_pVideoCodecCtx->pix_fmt,
		w, h, AV_PIX_FMT_YUV420P, SWS_BICUBIC, NULL, NULL, NULL);
}

使用hevc_qsv解码器,解码数据是组成完整一帧H265,然后直接发给解码器,报错
Error during QSV decoding.: unknown error (-1)。代码如下

pkt->data = ptr; //ptr是h265裸流,且是完整一帧
pkt->size = ptr_size;
nRet = avcodec_send_packet(m_pDecodeCtx,pkt);
int  nRet =avcodec_receive_frame(m_pDecodeCtx, frame);

这个办法用在h264_qsv,h264_cuvid,hevc_cuvid都没问题,就独独在hevc_qsv这里报错崩溃。
推测问题出在ffmepg线程和自己解码线程速度匹配上有问题(帧率是25帧,但是avcodec_send_packet的时候每24帧就出现一个I帧,有一帧丢掉了)
解决办法:使用avio_alloc_context的回调函数给ffmpeg喂数据

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

ffmpeg使用qsv解码碰到的问题 的相关文章

  • Python 子进程(ffmpeg)仅在我按 Ctrl-C 程序时启动?

    我正在尝试使用 Cygwin 和 Python 2 7 并行运行一些 ffmpeg 命令 这大概是我所拥有的 import subprocess processes set commands ffmpeg i input mp4 outpu
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • 在 macOS 上为 MoviePy 安装 ffmpeg 失败并出现 SSL 错误

    我正在尝试编写一个 Python 程序 在 Mac OS 10 11 16 上使用 MoviePy 将 MP4 文件转换为 GIF 我用 import moviepy editor as mp 我收到一条错误消息 说我需要打电话imagei
  • Windows 上的 ffmpeg-android ndk

    我正在尝试编译 bash 文件 带有 android ndk 的 ffmpeg 我收到如下错误 arm linux androideabi gcc 无法创建可执行文件 C 编译器测试失败 Makefile 2 config mak 没有这样
  • Ffmpeg 无法正确转换为 ogg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在使用 ffmpeg 在我的网站上转换音频和视频 Ffmpeg 可以正确转换为其他格式 如 mp3 mp4 等 但无法正确转换为 ogg 虽然 f
  • Python FFmpeg查询rtsp太慢

    目前 我正在尝试使用 python 和 FFmpeg 来查询原始格式为 h264 的 rtsp 数据 直播流视频的信息为 fps 29 分辨率 1280 720 我希望我可以以相同的格式 h264 查询数据并将其放入python队列中以便将
  • Android 中的 FFMpeg jni?

    我已经构建了 Bambuser http bambuser com opensource 提供的 FFMPEG 可执行文件和库 所以我设法构建了 Android 可执行文件和库 如何在 Eclipse 项目中链接这些库并从 Java 调用
  • 如何在google colab中安装ffmpeg包

    我正在尝试使用 Google Colab 来做一些事情 我特别想用ffmpeg打包到从图像创建视频 https stackoverflow com a 44951066 6890234 但 ffmpeg 似乎工作得不太好 这个 在最后一个块
  • 连接 2 个迷你音频文件并循环播放并添加背景音乐

    我需要用循环连接 2 个小音频文件并在单个命令中添加背景音乐 我能够将两个音频文件与背景音乐连接起来 我上面给出的代码正在运行 ffmpeg i 1 mp3 i 2 mp3 i background mp3 filter complex 0
  • FFMPEG:将 YUV 数据转储到 AVFrame 结构中

    我正在尝试转储YUV420数据进入AVFrameFFMPEG 的结构 从下面的链接 http ffmpeg org doxygen trunk structAVFrame html http ffmpeg org doxygen trunk
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • FFMPEG 帧到 DirectX 表面

    给定一个指向 FFMPEG 的 AVFrame 的指针avcodec decode video 函数如何将图像复制到 DirectX 表面 假设我有一个指向适当大小的 DX X8R8G8B8 表面的指针 Thanks John 您可以使用
  • FFmpeg 缩放不是平滑中心(而是锯齿形)

    我尝试执行基本操作zoompan https www ffmpeg org ffmpeg all html zoompan with FFmpeg 我有一个输入图像 png 1280x720 并从中创建一个 8 秒的视频 mp4 320x1
  • 使用 ffmpeg 将 mp4 转换为 gif 时帧率较低

    我正在使用 ffmpeg 将高质量视频转换为 gif 大多数视频都是 60fps 及以上720p 但是当我使用下面的代码将视频转换为 gif 时 我得到的 gif 输出的 fps 非常低 usr bin env palette tmp pa
  • 如何在不指定像素格式的情况下从 AVFrame.data[] 和 AVFrame.linesize[] 获取原始帧数据?

    我的总体想法是frame data 根据视频的像素格式 RGB 或 YUV 进行解释 但是有没有通用的方法可以从帧中获取所有像素数据 我只想计算帧数据的哈希值 而不解释它来显示图像 根据 AVFrame h uint8 t AVFrame
  • 使用 mp4box 直播破折号内容

    我正在尝试直播H 264内容到HTML5使用媒体源扩展 API 下面的方法效果很好 ffmpeg i rtsp 10 50 1 29 media video1 vcodec copy f mp4 reset timestamps 1 mov
  • C#中图像制作视频的工作方式

    有人有已知的可靠方法来从一系列图像文件创建视频吗 在你因为我在发布问题之前没有寻找答案而对我进行批评之前 以及在你发出诸如 使用 FFMPEG 之类的简单消息之前 请阅读此消息的其余部分 我正在尝试从一系列图像 jpg bmp 等 创建视频
  • 如何将H264封装到mp4容器中?

    我有一个程序生成一堆原始 H264 帧 并希望将其放入 mp4 容器中进行流式传输 有人知道该怎么做吗 我想我会使用 ffmpeg 然而 这需要商业使用 而且 ffmpeg 似乎只能通过它的 x264 库来做到这一点 它使用 GPL 许可证
  • 输入文件列表以与 Node.js 模块 Fluent-ffmpeg 连接

    版本信息 流利的 ffmpeg 版本 2 1 2 ffmpeg版本 3 4 2 操作系统 Windows 10 要重现的代码 ffmpeg C path to list txt mergeToFile C path to out mp4 C
  • 使用 ImageMagick 有效地将线扫描图像拼接在一起

    我正在寻找线扫描相机的替代品 用于体育计时 或者更确切地说 用于需要确定位置的部分 我发现普通工业相机可以轻松与商业相机解决方案的速度相匹配 每秒 gt 1000 帧 对于我的需求来说 通常计时的准确性并不重要 重要的是运动员的相对位置 我

随机推荐

  • 小程序组件化开发

    前言 随着小程序的普及 越来越多的开发者开始使用小程序进行开发 而小程序的组件化开发已经成为了一种标配的开发模式 本文将深入介绍小程序组件化开发的相关知识 包括组件的定义 生命周期 通信和使用等方面 帮助大家更好地理解和使用小程序的组件化开
  • 图解SimCLR框架,用对比学习得到一个好的视觉预训练模型

    点击上方 AI公园 关注公众号 选择加 星标 或 置顶 作者 amitness 编译 ronghuaiyang 正文共 3027 字 33 图 预计阅读时间 9 分钟 导读 有点像词向量预训练模型 这个框架可以作为很多视觉相关的任务的预训练
  • [Qt] QString 和 String 字符串的相互转换

    QString gt String string str qstr toStdString String gt QString QString qstr QString fromStdString str
  • 微信支付本地调试

    经过折腾几天 找了一些资料来看 我不得不吐槽微信这个团队在做文档是如何槽糕 文档做的不好其次 接口那些总体而言 让人感觉很难受 而且给出的方案不是最优而是最麻烦的 和开发者互动很少 开放平台像是一个爱理不理的平台 这几天收集了一些问题记录一
  • 竞赛选题 基于机器视觉的银行卡识别系统 - opencv python

    1 前言 优质竞赛项目系列 今天要分享的是 基于深度学习的银行卡识别算法设计 该项目较为新颖 适合作为竞赛课题方向 学长非常推荐 更多资料 项目分享 https gitee com dancheng senior postgraduate
  • java canvas 动态画图_手把手教你用canvas画动态直线

    自己闲来无事的时候 就想学学热火了好久的H5 然后就看了下canvas 不看不知道 一看下一条 H5我以为没啥 原来都开始提供各种接口和函数了 我滴乖乖 canvas主要是用来画图的 结合定时器 setInterval 函数能够作出精美的动
  • (综述,讲得很好)基于3DMM的三维人脸重建技术总结

    深度学习全监督重建方法 由于真实的三维人脸和二维人脸图像对非常缺乏 采集成本高 很难得到真实二维三维图像对 通常将多张照片进行model fitting求解生成了对应的三维人脸模型 将其作为真值 Ground Truth 从而得到了二维三维
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • kubernetes的学习—部署 Dashboard

    部署 Dashboard Dashboard的介绍 Dashboard 仪表盘 是基于网页的 Kubernetes 用户界面 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中 也可以对容器应用排错 还能管理集群
  • Java——第一个窗口程序

    代码演示 package Gui import java awt GUI的第一个界面 public class TestFrame public static void main String args Frame f1 new Frame
  • 加密网络空间安全厂商“观成科技”获数千万A轮融资,方广资本领投

    近日 观成科技宣布完成数千万A轮融资 方广资本领投 老股东奇安投资跟投 进化资本担任财务顾问 此次融资将主要用于进一步加大研发和技术研究的投入 持续提升产品的竞争力和服务能力 观成科技是一家致力于以守护加密网络空间安全为使命 以加密流量检测
  • Windows下Java实现语音播放

    链接 https pan baidu com s 1BhXGCBSifLxCLDsZ Q8Rpw 提取码 dgbg 64位操作系统 下载jocab 放入jdk安装目录bin目录下 Maven依赖
  • Linux上安装tenginx

    1 下载tengine http tengine taobao org download cn html 2 将文件上传到 opt tengine的目录上 tengine目录是自定义目录 3 解压包 并进入解压后的文件目录下 4 编译环境准
  • Vue弹窗 Confirm 组件

    Vue的弹窗组价 描述 有时候自己开发项目 需要使用到一些弹窗 提示框之类的东西 一般会有我们自己使用一些UI组件库 或者自己手写一个 哈哈 用别人的东西有时候挺好的 但是有时候又不好 因为业务的需求和UI的设计总是变化的很快 别人的东西难
  • 分布式系统架构网络之IDC机房

    我们开发的互联网应用被部署到IDC机房里的某个服务器上 从而完成了应用互联网的接入 所以我们接下来学习一些IDC机房的相关知识 IDC机房又被称为互联网数据中心 Internet Data Center 或者数据中心 IDC不仅是数据存储的
  • 对c语言for循环的理解

    for i lt 0 i lt 5 i 如果一直符合条件 i lt 5 那么循环到最后i 5 否则i lt 5 可根据 i 的值判断循环体是否一直满足某个条件 如下一个简单例子 判断数组是否存在某个元素 include
  • 安装 webstorm 断点调试工具 jetbrains ide support

    先下载离线插件包 http www cnplugins com devtool jetbrains ide support download html 并解压 然后进入google设置 选择开发者模式 加载扩展程序 最后如图
  • Qt 使用布局管理器,控件大小未能自适应变化

    问题 使用布局管理器管理子部件 使用了QVHlayout管理器 发现控件大小固定 即使通过拖动窗口也不能改变控件的大小 布局管理器不是自动控制部件的大小吗 为什么没有生效 如图所示 解决办法 对子部件添加延申策略 setSizePolicy
  • 图解通信原理与案例分析-26: 5G NR是如何支持海量机器类通信mMTC的?移动通信对物联网的支持

    前言 移动通信最初是解决人与人之间的语音通信 后来发展成了人与人之间的文本通信 到了4G LTE 已经很好的解决了人与人之间的视频通信 到了5G 人与人之间的高速率的数据通信在LTE的基础之上得到了进一步优化和加强 称之为eMBB eMBB
  • ffmpeg使用qsv解码碰到的问题

    ffmpeg使用qsv硬解码出来的视频帧格式是AV PIX FMT NV12格式的 ffmpeg使用qsv硬解码出来的视频帧格式是AV PIX FMT NV12格式的 在调用sws getContext函数时第三个参数必须强制传入AV PI