输入的数据准备好了,编码后的数据都在x264_nal_t的数组。我这里设置的参数是Baseline Profile,所以编码后没有B帧,将编码后的数据保存分析后发现,第一次编码的时候会有4个NAl,分别是SPS、PPS、SEI、I帧,也即分别是00 00 00 01 67、 00 00 00 01 68、 00 00  01 06、00 00 01 65开头的四个数据段,这里注意的是SEI和I帧的开头貌似X264中就是00 00 01的起始头了,应该是和源码中这样写的关系,不过没有什么大碍,就是后面在删除这些起始头的时候会有两种判断吧。然后编码第二帧图像,得到的就是一个NAL了,是P帧 00 00 01 41.

这里还讲几个我遇到的一些参数和困惑,起初我发现在分析数据的时候,第一次是5个NAl,即SPS、PPS、SEI、I帧、I帧,第二次编码的时候是2个NAL,即P帧、P帧,这是怎么发生的呢,原来是有多个线程跑的原因,m_param.b_sliced_threads= false;后就会发现正常了。

还有就是我要控制一个I后几个P,即一个GOP的数目,那么需要设置m_param.i_keyint_max 的值。另外就是在m_param.b_repeat_headers = 1;  // 重复SPS/PPS 放到关键帧前面,这样设置有利于解码的是每个I帧都会有SPS和PPS。

用X264编码以后的H264数据相关推荐

  1. H264 数据提取sps 和 pps 信息

    PS:在项目中运用到了硬件编码卡编H264 数据,由于解码需要sps和pps才能解除帧,那么就需要提取sps 和pps. 在使用x264 编码中 可以直接通过帧类型获取到.但是使用硬件编码则需要自己运 ...

  2. V4L2采集YUYV数据—X264编码H264视频实例

    前几天在网上买个罗技的C270摄像头,它支持YUYV(YUV422)和JPEG数据输出.它规格书上写的是支持HD720P(1280*720像素),在实际的调试过程中,我使用该分辨率会导致数据采集过慢. ...

  3. 使用ffmpeg将BMP图片编码为x264视频文件,将H264视频保存为BMP图片,yuv视频文件保存为图片的代码

    ffmpeg开源库,实现将bmp格式的图片编码成x264文件,并将编码好的H264文件解码保存为BMP文件. 实现将视频文件yuv格式保存的图片格式的测试,图像格式png,jpg, gif等等测试均O ...

  4. 【Android RTMP】RTMPDump 封装 RTMPPacket 数据包 ( 关键帧数据格式 | 非关键帧数据格式 | x264 编码后的数据处理 | 封装 H.264 视频数据帧 )

    文章目录 安卓直播推流专栏博客总结 一. x264 编码后的 H.264 数据帧 二. RTMP 协议中 关键帧 / 非关键帧 数据格式 说明 三. 判定 H.264 帧数据分隔符 四. 初始化 RT ...

  5. 【Android RTMP】x264 编码器初始化及设置 ( 获取 x264 编码参数 | 编码规格 | 码率 | 帧率 | B帧个数 | 关键帧间隔 | 关键帧解码数据 SPS PPS )

    文章目录 安卓直播推流专栏博客总结 一. x264 编码器参数设置引入 二. 获取 x264 编码器参数 三. 设置 x264 编码器编码规格 四. 设置 x264 编码器编码图像数据格式 五. 设置 ...

  6. ffmpeg + x264 编码H264(x86+arm)

    一.x86-linux 1.  编译x264 我用的是目前最新版:x264-snapshot-20101130-2245.tar.bz2 ./configure --disable-asm mak ...

  7. X264编码流程详解(转)

    http://blog.csdn.net/xingyu19871124/article/details/7671634 对H.264编码标准一直停留在理解原理的基础上,对于一个实际投入使用的编码器是如 ...

  8. WebRTC VideoEngine超详细教程(三)——集成X264编码和ffmpeg解码

    转自:http://blog.csdn.net/nonmarking/article/details/47958395 本系列目前共三篇文章,后续还会更新 WebRTC VideoEngine超详细教 ...

  9. FFmpeg简单使用:视频编码 ---- YUV转H264

    基本流程 从本地读取YUV数据编码为h264格式的数据,然后再存⼊到本地,编码后的数据有带startcode. 与FFmpeg 示例⾳频编码的流程基本⼀致. 函数说明: avcodec_find_en ...

  10. 使用jrtplib打包发送h264数据,关使用vlc|mplayer播放

    前段时间写了个测试程序,使用jrtplib,把h264打成标准的rtp数据包,并能通过vlc,mpalyer等播放器播放出来.这中间主要的难点是解析h264数据中的nal单元,并把nal单元打成rtp ...

最新文章

  1. How to enable mod_rewrite on Apache?
  2. [LeetCode] Permutations II 全排列之二
  3. 阿里云服务器如何安装memcached
  4. Java黑皮书课后题第3章:*3.1(代数:解一元二次方程)可以使用下面的公式求一元二次方程ax2+bx+c=0,编写程序提示用户输入a b c的值,并显示基于判断式的结果
  5. dat文本导入mysql_mysql学习笔记(九) 增删改查的优化
  6. 今日头条新出算法大赛!短视频内容理解与推荐竞赛
  7. Prototype使用$A()函数
  8. 解决CRMEB跨域问题
  9. 南海云课堂春季11(T)K1 拓展:单调队列
  10. html5 横向溢出隐藏,溢出:隐藏的HTML5视频
  11. c++笔记(class)练手项目:暗网杀手排名系统
  12. 去沸点路上的留言板之旅
  13. 【报告分享】德勤:2023中国消费者洞察与市场展望.pdf(附下载链接)
  14. C语言实现音乐播放器 visual studio 2019
  15. 湖南科技大学计算机领导参观老年日间中心,湖南科技大学新闻网
  16. JavaScript文字转图片
  17. php解:2007百度之星5月27号初赛题---------2实习生小胖的百度网页过滤器
  18. java毕业设计项目_第167期ssm多用户博客个人网站_计算机毕业设计
  19. RK3399平台开发系列讲解(内核调试篇)2.15、Realtek千兆PHYRTL8211FS相关寄存器操作
  20. 小米路由hd php,小米路由器HD,附和R7800使用的对比感受

热门文章

  1. java excel 操作方式_java excel兩種操作方式
  2. ubuntu终端命令停止_解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止【后台运行程序】...
  3. C语言_报数问题:有n个人围成一圈,顺序从零排号。从第一个人开始报数(从1到3报数),凡报到3的人 退出圈子,问最后留下的是原来第几号的那位。
  4. jeecgboot 查询_Jeecg-Boot 技术文档
  5. 事务影响懒加载 no session or session was closed
  6. 什么是Code Review
  7. linux下绘图工具dia,功能强劲直逼visio - 潜入技术的海洋 - 51CTO技术博客
  8. shell unexpected operator
  9. IE 下 telerik RadAjaxManager 多次请求,LoadingPanel 点击消失
  10. 深入浅出Linux设备驱动编程--引言