gpt4 book ai didi

c++ - LIVE555 - 收到第一帧后设置 SPS 和 PPS

转载 作者:行者123 更新时间:2023-11-30 01:46:30 29 4
gpt4 key购买 nike

我有一个提供 H264 编码帧的设备。那些我想使用 LIVE555 通过网络传输的。

问题:这些帧不包括 SPS 和 PPS NAL 单元。但是,我可以访问一个函数,该函数在设备对第一帧进行编码后为我提供 SPS 和 PPS NAL 单元。

问题:LIVE555的事件循环已经启动后,如何设置SPS和PPS NAL单元?我读过很多关于类似问题的帖子,但所有这些帖子都提出了以下解决方案:

  • LIVE555 在调用 DESCRIBE 命令时发送 SPS 和 PPS NAL 单元
  • 在调用 createNewStreamSource() 时设置 NAL 单元
  • 调用createNewRTPSink()时设置NAL单元

所有这些解决方案对我来说都没有用,因为此时我还没有 SPS 和 PPS NAL 单元。在事件循环已经开始后,是否有某种方法可以更新这些 NAL 单元?

最佳答案

您没有提供足够的关于应用程序设计/架构的信息来提供更好的答案:

不确定我是否正确理解您的问题,但听起来您只是在 RTSP 客户端请求之后实例化编码器。然而,DESCRIBE 请求通过了 SPS、PPS,并且在 DESCRIBE 时,您还没有对任何数据进行编码,因此没有 SPS 和 PPS。

如果编码器在客户端请求之后在 live555 事件循环中被实例化,那么一个解决方案是

  • 在应用程序启动时使用所需配置(或所有可能的配置)实例化编码器
  • 编码一帧
  • 检索并保存 SPS 和 PPS
  • 关闭编码器
  • 继续“正常”事件循环并等待 RTSP 客户端连接。

根据我的经验,SPS 和 PPS 通常不会(经常)更改,您必须从某个地方(配置文件?)获取编码器配置。

如果这不能回答您的问题,请提供更多详细信息,例如应用程序线程、正在运行的事件循环、编码器生命周期等。

关于c++ - LIVE555 - 收到第一帧后设置 SPS 和 PPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33130619/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com