java - 从JAVA中的h264编码视频中获取SPS和PPS

标签 java h.264

实际上我有点卡在一个问题上,我真的希望有人能帮助我解决这个问题。

我的问题如下: 我有一个实时 usb 摄像头,我用它只对 h264 中的视频进行编码,以便通过网络将其与 RTP 一起发送到接收器(我这里用于测试目的的接收器是 Ekiga)。 在仅以 h264 编码视频后,我得到了一个字节数组。

现在有了这个字节数组,我想提取 SPS 和 PPS。我想获取这些信息,以便在向接收方发送帧时能够发送以下序列: SPS => PPS => FRAME 1(IDR 图片的编码切片)=> FRAME 2(IDR 图片的非编码切片)=> FRAME 3(IDR 图片的非编码切片)=>等等...

我如何提取这些信息并且我想要一个可以帮助我的 JAVA 库? (JCODEC nop 文档??!!)

感谢您的帮助。 罗尼

最佳答案

这取决于您的编码器。如果它正在生成附件 b 流,则 sps/pps 很可能是第一个和第二个 Nalus。除非它也产生访问单元定界符,在这种情况下它将是第二个和第三个。如果它不生成附件 b,则需要通过其他方式从编码器 API 获取此数据。无论哪种方式,您都需要解析流。您可以在此处查看更多详细信息。

Possible Locations for Sequence/Picture Parameter Set(s) for H.264 Stream

还有一点,NALU 与框架不同。一个帧可以由许多 NAL 组成。

关于java - 从JAVA中的h264编码视频中获取SPS和PPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22065583/

相关文章:

即使在定义 equals 之后,Java Contains 方法也会返回 false

ffmpeg - 如何更高效地使用 FFMPEG 对 50 个 H264 流进行转码?

ios - 如何在 iOS 中播放 .h264

ffmpeg - H.264 - 识别图像的访问单元

java - 使用 Java Swing 桌面版自定义工具栏

JavaMail 问题或错误?

java - 使用 graal python 从 java 获取外部环境参数

ffmpeg - 在 264 中的第一个 IDR 之前是什么(不是 sps pps)

linux - 在 linux 上加入 AVCHD .mts 文件

java - java中如何从long double中获取int?