全网首发:FFMpeg使用NVIDIA DECODER,解码后的数据是NV12,不是YUV420P

简介: 全网首发:FFMpeg使用NVIDIA DECODER,解码后的数据是NV12,不是YUV420P

 在FreeSwitch顺利启用NVIDIA ENCODER之后(至少快10倍),下一步自然就是使用DECODER了。吾信心满满,结果是绿屏。嗯?怎么回事?

  • 从比例上来看,是解码成功。
  • 跟踪代码,也确实解码成功。
  • 既然是绿屏,应该是没数据变化。YUV格式,一个全0的缓冲区就是绿屏。
  • 跟踪了一下,发现是在复制数据时,没复制就返回了。

  显然,解码的格式,肯定不是YUV420P,是NV12。进行一次过滤即可。

硬解后的AVFrame:

format     == 23 (AV_PIX_FMT_NV12)
data[0]    != NULL
data[1]    != NULL
data[2]    == NULL
linesize[0]== 1280
linesize[1]== 1280
linesize[2]==    0

过滤后的AVFrame:

format     == 0 (AV_PIX_FMT_YUV420P)
data[0]    != NULL
data[1]    != NULL
data[2]    != NULL
linesize[0]== 1280
linesize[1]==  640
linesize[2]==  640

  最关心的是,怎样抓到数据?参考:

https://blog.csdn.net/quantum7/article/details/107133949


目录
相关文章
|
2月前
|
算法 数据处理 开发者
FFmpeg库的使用与深度解析:解码音频流流程
FFmpeg库的使用与深度解析:解码音频流流程
43 0
|
2月前
|
存储 编解码 算法
探索FFmpeg复用:深入理解媒体数据的组织与封装(三)
探索FFmpeg复用:深入理解媒体数据的组织与封装
42 0
|
2月前
|
存储 编解码 数据处理
【FFmpeg 视频基本格式】深入理解FFmpeg:从YUV到PCM,解码到编码(三)
【FFmpeg 视频基本格式】深入理解FFmpeg:从YUV到PCM,解码到编码
49 0
|
2月前
|
存储 编解码 数据处理
【FFmpeg 视频基本格式】深入理解FFmpeg:从YUV到PCM,解码到编码(二)
【FFmpeg 视频基本格式】深入理解FFmpeg:从YUV到PCM,解码到编码
50 0
|
27天前
|
存储 编解码 编译器
FFmpeg 7.0 正式登场:全新 VVC 解码器
【4月更文挑战第9天】最新版本的流行视频处理软件FFmpeg 7.0,代号为“Dijkstra”,已正式发布。
42 0
|
2月前
|
存储 编解码 安全
探索FFmpeg复用:深入理解媒体数据的组织与封装(二)
探索FFmpeg复用:深入理解媒体数据的组织与封装
59 0
|
2月前
|
存储 编解码 算法
探索FFmpeg复用:深入理解媒体数据的组织与封装(一)
探索FFmpeg复用:深入理解媒体数据的组织与封装
59 0
|
2月前
|
存储 缓存 编解码
【FFmpeg 视频基本格式】深入理解FFmpeg:从YUV到PCM,解码到编码(一)
【FFmpeg 视频基本格式】深入理解FFmpeg:从YUV到PCM,解码到编码
54 0
|
1月前
|
开发工具
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(三)
使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(三)
21 0
|
4月前
|
Linux 编译器 数据安全/隐私保护
Windows10 使用MSYS2和VS2019编译FFmpeg源代码-测试通过
FFmpeg作为一个流媒体的整体解决方案,在很多项目中都使用了它,如果我们也需要使用FFmpeg进行开发,很多时候我们需要将源码编译成动态库或者静态库,然后将库放入到我们的项目中,这样我们就能在我们的项目中使用FFmpeg提供的接口进行开发。关于FFmpeg的介绍这里就不过多说明。
84 0