RTP如何打包H264数据

2023-11-02

拿到H264的裸流数据是,一般码流结构是SPS,PPS,I帧,P帧......SPS,PPS,I帧,P帧...........。用RTP打包H264数据时,SPS和PPS可以不发,直接发I帧和P帧数据即可。还要看I帧和P帧有多大,如果小于MTU就直接加RTP包发送就可以,如果大于MTU就得分片了。具体的分片方法可以参考RFC3984中。

  我用的FU-A,分片方式。

  第一个 FU-A 包的 FU indicator 应该是:F = NALU 头中的 F;NRI = NALU 头中的 NRI;Type = 28。FU header 应该是:S = 1;E = 0;R = 0;Type = NALU 头中的 Type。
  第二个 FU-A 包的 FU indicator 应该是:F = NALU 头中的 F;NRI = NALU 头中的 NRI;Type = 28。FU header 应该是:S = 0;E = 0;R = 0;Type = NALU 头中的 Type。
  第三个 FU-A 包的 FU indicator 应该是:F = NALU 头中的 F;NRI = NALU 头中的 NRI;Type = 28。FU header 应该是:S = 0;E = 1;R = 0;Type = NALU 头中的 Type。

  像I帧的数据格式一般是这样的00 00 00 01 65 × × × ×.............................。其中00 00 00 01是用来标识一个帧的,65是NAL unit头部,后面的数据是NAL unit数据。RTP发送的数据是00 00 00 01后面的.注意分片的时候分片单元的数据是从65后开始的,65是NAL unit头部,和分片单元头部有点关系,具体关系我上面已经写的很清楚了。


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

RTP如何打包H264数据 的相关文章

  • C++:在小型项目的头文件中编写整个类的缺点?

    只是一个风格问题 我是一名独立工作的独立游戏开发者 我养成了在标题中编写整个类的 坏 习惯 我知道 h cpp 文件组合的一些好处是它们允许将代码分割成编译块 只要它们保持不变就不需要重新编译 并允许将接口与实现分开 然而 这些事情对我来说
  • 如何设置正确的 json 标头?

    htaccess 有没有办法确保我的 json 标头正确 更新 有人发现这些 json 标头有什么问题吗 Date Mon 26 Jul 2010 08 31 11 GMT Server Apache 2 2 15 Unix mod ssl
  • 在 XCode 的复制标头构建阶段将角色更改为公共时,如何保留子组?

    目前 层次结构已变平 所有头文件都被复制到我的 Classes 文件夹中的单个 Headers 目录中 无论它们位于哪个子文件夹中 如果标头具有引用子文件夹中其他标头的 include 语句 则在引用标头时就会出现问题 特别是 这会搞砸 B
  • 从 php 标头下载的 Mp3 文件不起作用

    你好呀 好的 事情就这样了 我的服务器上有我的 mp3 文件 每个文件都在其自己的文件夹中 该文件夹中有 mp3 和一个包含以下脚本的 php 文件 问题是 当我点击进入该 php 页面时 标头应该会自动下载 mp3 文件 但当它下载时 它
  • CSS 问题,填写表单时标题会上升

    我有一个奇怪的 CSS 问题 我不太确定如何解决这个问题 当我按下网站上的 登录 按钮并开始输入用户名时 标题会上升 我真的不知道是什么原因造成的 有任何想法吗 Thanks 这是一些代码 表格 tooltip wrap position
  • 如何设置 TabControls TabItem 标题 FontSize

    我有一个 TabControl 其样式可以更改 TabItem 标题的 FontSize 当我数据绑定 ItemsSource 时 只有标题受 FontSize 影响 但是 当我在另一个 TabControl 上使用相同的样式并在 XAML
  • 非分组表的 UITableView 节标题高度

    问候 我知道UI表格视图 节标题高度仅用于分组表 但无论如何我都会问 如果有某种方法可以做到这一点并不明显 有没有办法更改节标题高度 以及字体 大小 NON 分组表 希望 是 或至少是 也许 但担心这可能是 否 伙计们 努力吧 Yes 使用
  • “make”是否可以检查依赖项的 mtime 在运行之间是否“不同”,而不仅仅是它是否比目标新?

    如果 foo user cpp 依赖于 foo h 则构建了 foo user cpp 然后将 foo h 的修改时间设置为更早的时间 make 将不会重建 foo user cpp 因为 foo cpp 是 较新的 我更希望 make 记
  • 我想使用条件注释使 DIV 仅出现在 IE7 或更早版本的浏览器中 如下所示 据我了解 条件注释仅在标题中起作用 这很糟糕吗 我应该使用条件注释来插入一个样式表来创建不可见的 DIVvisibility visible 是的bad http
  • Android 列表视图与部分

    您好 我在尝试了解分段列表视图的工作原理时遇到问题 我让它工作到正常的列表视图中 但现在我想将部分添加到我的列表中 如何在其中添加节标题 这是我有效的代码 public class ChooseTeamActivity extends Li
  • 重定向后的 HTTP 响应代码

    有一个到服务器的信息重定向 一旦来自服务器的响应 我想检查 HTTP 代码以抛出异常 如果有任何以 4XX 开头的代码 为此 我需要知道如何从标头中仅获取 HTTP 代码 这里还涉及到服务器的重定向 所以我担心curl 对我来说没有用 到目
  • Doxygen 在子目录中找不到标头

    我正在使用 Doxygen 记录 C 库的头文件 在里面Doxyfile 我定义 INPUT include 希望 Doxygen 能够为所有头文件生成文档include Foo 但事实并非如此 只有index html被生成 我可以设置I
  • c++1y 模式下的 Clang >= 3.3 无法解析 标头

    我有一个项目可以在 g 4 8 1 和 c 11 模式下 clang gt 3 3 下正确编译和运行 然而 当我切换到实验时 std c 1y模式下 clang 3 3 但不是 g 在
  • 对常量数组的未定义引用

    a cpp const unsigned char whatever 123 a h extern const unsigned char whatever 123 b cpp include a h unsigned char x wha
  • 音频html标签无法快进或快退控制

    我正在使用音频 html 标签从我的上传服务器加载音频 但我不知道为什么我的音频无法像往常一样循环 快进或快退控制 我的音频 标题 Accenpt Ranges bytes Connection Keep Alive Content Len
  • 404 标头 - HTTP 1.0 还是 1.1?

    为什么我能找到的几乎每个例子 包括这个问题 https stackoverflow com questions 437256 sending a 404 error in php大约一年前 说 404 标头应该是HTTP 1 0 404 N
  • 在 HTTP 标头中发送 UTF-8 值会导致 Mojibake

    我想使用 servlet 发送阿拉伯语数据HTTPServletResponse给客户 我正在尝试这个 response setCharacterEncoding UTF 8 response setHeader Info arabicWo
  • 第三方库应该放在哪里?

    我为一个相当规模的 C 项目 http github com nickgammon mushclient具有许多依赖关系 问题是 该项目包含其所有依赖项的源代码 例如 pcre zlib 等 我想将项目精简为与程序本身相关的内容 是否有一些
  • 在 fortran 子例程中包含 c/c++ 头文件

    我有一个用 C C 编写的库 其开发人员声明该库具有 Fortran 接口 该接口将被启用 包括头文件 h 并调用经典子例程 我想编译我的 Fortran 程序并链接该库 该库已经过测试并且可以工作 这是主程序 Main program I
  • 为什么这个单独的定义会导致错误?

    挑战 我有这段代码无法编译 你能找出问题所在吗 有一次让我很头疼 header namespace values extern std string address extern int port cpp file std string v

随机推荐

  • SpringBoot使用@Async实现多线程异步

    SpringBoot使用 Async实现多线程异步 一 什么是异步 说明 在同步操作中 我们执行到添加数据库的时候 我们必须等待这个方法彻底执行完才能执行 修改数据 完成后 发送短信 完成后 发送消息 等操作 如果插入数据库这个动作执行时间
  • 全新防火墙6.0 单条PPPOE(ADSL)上网配置

    一 组网需求 外网接口使用ADSL拨号 内网为192 168 1 0 24网段 实现基本上网功能 二 网络拓扑 三 配置要点 1 配置接口 wan1口 接ADSL的接口 务必勾选 从服务器重新获得网关 这样ADSL拨号成功后设备会自动生成默
  • 软件工程面试——数据库

    数据库实体的关系 数据库中的实体关系指的是不同实体之间的相互依赖和联系 实体关系是数据库设计中非常重要的一个概念 它是用于描述不同实体之间的关系 连接和交互方式的 在数据库中 一个实体通常指的是一个对象或者一个概念 比如一个人 一个订单或者
  • powerdesigner如何生成数据库表

    1 建立逻辑数据模型 2 构建基础模板 3 转为PDM 4 生成sql文件 数据库设计的步骤是什么
  • C++11新关键字noexcept、override、final把我们的心意告诉编译器

    noexcept告诉编译器不抛异常 异常时一定要处理的 如果一个函数出现异常 它内部不对该异常做处理 异常会一直往上传递 给函数的调用者 到最后一直没有被处理 程序就会终止 调用std terminate 它默认调用std abort vo
  • 以太坊交易信息及event、input、logs、topics等概念机制

    文章目录 一 交易信息获取 1 1 合约事件例子定义 1 2 以太坊交易获取 二 input解析 2 1 input内容解析 2 2 input处理逻辑 三 logs解析 3 1 logs解析代码 四 topics 4 1 概念 4 2 i
  • C++拷贝构造函数

    目录 前言 一 拷贝构造函数 1 概念 2 笔试题 拷贝构造的次数 3 特征 1 拷贝构造函数是构造函数的一个重载形式 2 拷贝构造函数的参数只有一个且必须是类类型对象的引用 使用传值方式编译器直接报错 因为会引发无穷递归调用 那怎么理解无
  • CS294-112 homework2 环境配置 environment configuration

    先把结论 最终结果 放在最前面 结论就是 我没有在windows环境下配起来环境 主要是因为不知道怎么解决C 14的问题 最终是在ubuntu容器里配好了环境 失败经历 这一段是失败的经历 写在这里是为了尽量让有相同经历的人能找到这篇博客
  • java8 List<Map<String, Object>>求和,排序,过滤,分组

    List
  • 2023年第十五届华中杯赛题C 题 空气质量预测与预警

    2023年五一假期期间 数学建模竞赛就有四场 各种比赛各种需求应接不暇 因此 对于本次浅析有不足的地方欢迎大家指出 为了更好的帮助大家华中杯参赛 下面带来 C题详细版思路 由于C题的难度 注定选题人数将不可计数 因此对于每一问求解已经不再是
  • Unity 串口接收的报文不完整?处理方式在这

    Unity 串口通讯接收完整报文并处理 串口通讯 Read 函数的处理 解决问题的过程 对Read 函数的应用 弊端 结束 串口通讯 Unity 中的串口通讯和C 的处理方式基本一致 Serial Read 可以读取缓存区中的十六进制数 S
  • Mybatis - 常用 SQL 语句设计思路及具体实现 - 数据存在则更新,不存在则插入、批量更新、批量插入、连表查询 + - 字段加减法

    目录 序言 一 数据存在则更新 不存在则插入 ON DUPLICATE KEY UPDATE 的具体 xml 用法 虽然有点问题 但没准以后有用到的时候 on duplicate key update 用法总结 二 批量更新 方法 一 方法
  • 数组里的对象去重

    今天分享的是数组对象去重的方式 先看看数组对象的形式 let arrObj name 小红 id 1 name 小橙 id 1 name 小黄 id 4 name 小绿 id 3 name 小青 id 1 name 小蓝 id 4 下面是我
  • [人工智能-深度学习-26]:卷积神经网络CNN - 为啥要卷积神经网络以及卷积神经网络的应用

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 120805258 目录 第1章 全连接
  • c语言动态内存管理

    在C语言中 有几个动态内存管理的函数 分别是malloc calloc realloc和free free free函数用于释放由malloc calloc或realloc函数分配的内存空间 它接受一个指向要释放的内存的指针作为参数 注意
  • 在kali linux里利用SQLmap实现SQL注入

    SQLMap简介 SQLMap 是一个自动化的SQL注入工具 其主要功能是扫描 发现并利用给定URL的SQL注入漏洞 内置了很多绕过插件 支持的数据库是MySQL Oracle PostgreSQL Microsoft SQL Server
  • 第五阶段学习测试

    逐梦 一 单选题 1 下列各项中 执行流程正确的是 A InputFormat Mapper Reducer OutputFormat B Mapper InputFormat Reducer OutputFormat C InputFor
  • 《动手学深度学习 Pytorch版》 6.6 卷积神经网络

    import torch from torch import nn from d2l import torch as d2l 6 6 1 LeNet LetNet 5 由两个部分组成 卷积编码器 由两个卷积核组成 全连接层稠密块 由三个全连
  • Docker存储卷(Volume)

    简介 想要了解Docker Volume 首先我们需要知道Docker的文件系统是如何工作的 Docker镜像是由多个文件系统 只读层 叠加而成 当我们启动一个容器的时候 Docker会加载只读镜像层并在其上镜像栈顶部添加一个读写层 如果运
  • RTP如何打包H264数据

    拿到H264的裸流数据是 一般码流结构是SPS PPS I帧 P帧 SPS PPS I帧 P帧 用RTP打包H264数据时 SPS和PPS可以不发 直接发I帧和P帧数据即可 还要看I帧和P帧有多大 如果小于MTU就直接加RTP包发送就可以