参考:

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

  我们日常所用格式虽然是RGB,视频喜欢YUV420。如上文所述,解码后的数据是NV12,如何转换为YUV420P?

  • 自己写代码进行转换。这个也不难,咱也做过类似的转换。
  • 调用已有函数。

  这个已有的函数在哪里?这可没有人说啊。怎么办?想起之前使用过ffplay,看看这个代码如何处理的。

  • 先找到解码函数,即得到的AVFrame。输出一看,是NV12,确定不是YUV420P。
  • 找到刷屏的地方,使用的就是是YUV420P。
  • 跟踪整个过程,确实看到某个地方,转变为YUV420P。具体处理代码是:
//1280,1280,0ret = av_buffersrc_add_frame(       filt_in,  picture);
//0, 0, 0ret = av_buffersink_get_frame_flags(filt_out, picture, 0);
//1280, 640, 640

  这两个函数好说,这两个filter是什么?怎么初始化的?能不能精简为简单参数?把代码复制到吾测试代码中,一通删除修改,编译通过。加上输出,果然成功获得YUV420P。

  有朋友问,性能怎样?在640x360情况下,去掉、增加转换,没看出什么变化。可能是分辨率不够?解码路数太少?

  能不能直出YUV420P,或者输出时能直接用?各位如果找到了更好办法,可通知一声。

开源库:

https://github.com/quantum6/ffmpeg-nvidia-codec

全网首发:FFMpeg使用NVIDIA DECODER,解码后的数据转换为YUV420P相关推荐

  1. MediaCodec解码AAC音频,用AudioTrack播放解码后的数据

    前言: 这里是做实时流AAC Audio解码,音频存储形式是byte[]保存的字节流. 1.AudioTrack的初始化 private AudioTrack mAudioTrack = null; ...

  2. 全网首发:FreeSwitch硬解失败后切换到软解

    给FreeSwitch集成了NV硬解.前几天突然报告说,登录A服务器,转发会议命令到B服务器后,一直没画面.跟踪了一下,是硬解一直失败.怎么办?先切换到软解,有时间再研究怎么回事. 正常来说,开始的时 ...

  3. 【Android FFMPEG 开发】FFMPEG 解码 AVPacket 数据到 AVFrame ( AVPacket-解码器 | 初始化 AVFrame | 解码为 AVFrame 数据 )

    文章目录 I . FFMPEG 解码 AVPacket 数据到 AVFrame 前置操作 II . FFMPEG 解码 AVPacket 数据到 AVFrame 流程 III . FFMPEG 发送 ...

  4. 基于 FFMPEG 的音频编解码(二):音频解码

    音频解码 基于 FFMPEG 的音频编解码(一):Hello FFMPEG,安装与编译 基于 FFMPEG 的音频编解码(二):音频解码 基于 FFMPEG 的音频编解码(三):音频编码 在 Hell ...

  5. [总结]FFMPEG视音频编解码零基础学习方法--转

    ffmpeg编解码学习 目录(?)[-] ffmpeg程序的使用ffmpegexeffplayexeffprobeexe 1 ffmpegexe 2 ffplayexe 3 ffprobeexe ff ...

  6. FFMPEG视音频编解码零基础学习方法

    总结]FFMPEG视音频编解码零基础学习方法 在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的"大神",有的是刚 ...

  7. 音视频开发(5)---FFMPEG视音频编解码零基础学习方法

    FFMPEG视音频编解码零基础学习方法 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/leixiaohua1020/article/details/ ...

  8. [总结]FFMPEG视音频编解码零基础学习方法

    在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的"大神",有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然 ...

  9. 【FFmpeg杂记】音频解码输出PCM格式数据分析

      FFmpeg音频解码后输出的为PCM数据,PCM中的声音数据没有被压缩.   FFmpeg中音视频数据基本上都有Packed和Planar两种存储方式,对于双声道音频来说,Packed方式为两个声 ...

  10. FFmpeg进行音频的解码和播放

    音频编码 音频数字化主要有压缩与非压缩(pcm)两种方式. 非压缩编码(PCM)PCM音频编码 PCM通过抽样.量化.编码三个步骤将连续变化的模拟信号转换为数字编码. 当采样频率fs.max大于信号中 ...

最新文章

  1. 【java】各种方法的使用(不定期更新)
  2. Linux设置qt-android开发环境
  3. BindingException: Invalid bound statement (not found)问题排查:SpringBoot集成Mybatis重点分析...
  4. 最长上升子序列(LIS)算法
  5. MySQL千万级数据JDBC插入
  6. 2018秋寒假作业5—PTA编程总结2
  7. ES6(一)——字面量的增强、解构、let/const、块级作用域、暂时性死区
  8. mysql复制状态是什么意思_mysql8 参考手册--复制从SQL线程状态
  9. JAVA分布式篇2——Zookeeper
  10. Android内存泄漏分析及调试
  11. 《哪吒》票房超《复联4》 位列中国电影票房总榜第三
  12. iQOO 5G版8月上市,价格更加亲民!
  13. C语言为四维数组申请动态内存空间的方法(一)
  14. STM32 资料整理贴
  15. WINXP内PING一个IP地址时电脑会发出很响的一声“滴”声
  16. 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一第2章 解读执行计划
  17. python:实现杨辉三角
  18. 编写程序,提示用户输入一个数并显示该数,使用字符模拟7段显示器的效果:Enter a number:491-9014
  19. k8s(四)—service服务(暴露方式:ClusterIP、NodePort、LoadBalancer、ExternalName、ingress)
  20. 在ROS中使用中文语音交互(百度语音baidu_speech)

热门文章

  1. html限制显示字数其余用...代替,html实现钝角效果;html实现限制一行字数的显示,超出的部分用省略号(....)来代替...
  2. java确定同一用户登录_java保持同一时间同一账号只能在一处登录
  3. php连接mysql配置环境变量_Win7 64位操作系统下配置PHP+MySql+Apache环境(转)
  4. python基础教程 pdf github_GitHub - looly/python-basic: 老齐(qiwsir)的Python基础教程Gitbook版...
  5. java substring 实例_JAVA中截取字符串substring用法
  6. python和c都是什么类型语言-常见的几种语言C,C#,JAVA,Python的运行原理
  7. linux 使用apidoc 生成Restful web Api文档
  8. jquery 添加扩展方法及为选择的对象添加方法
  9. tp3.2 分析打印查询语句sql
  10. mysql多条件批量查询,且数据量大分批查询