Gstreamer 注入/插入/添加H.264 SEI

Gstreamer 注入/插入/添加H.264 SEI,gstreamer,h.264,Gstreamer,H.264,我想使用用户数据未注册的SEI消息将数据嵌入到H.264流中。在GStreamer中实现这一点最简单或正确的方法是什么 我找到了。它通过修改GstBuffer、使用GstByteReader查找NAL开始代码等方式将SEI消息(另一种)插入H.264 NAL流中。我发现这一级别相当低,希望通过使用找到更简单的解决方案 理想情况下,我的数据将添加到原始视频帧使用前编码。然后,我会在编码器后面放置另一个元素,以获取我的GstMeta数据并将其作为SEI消息嵌入。使用appsrc和漏斗元素。生成SEI

我想使用用户数据未注册的SEI消息将数据嵌入到H.264流中。在GStreamer中实现这一点最简单或正确的方法是什么

我找到了。它通过修改GstBuffer、使用GstByteReader查找NAL开始代码等方式将SEI消息(另一种)插入H.264 NAL流中。我发现这一级别相当低,希望通过使用找到更简单的解决方案


理想情况下,我的数据将添加到原始视频帧使用前编码。然后,我会在编码器后面放置另一个元素,以获取我的GstMeta数据并将其作为SEI消息嵌入。

使用appsrc和漏斗元素。生成SEI并将其注入appsrc。整个管道如下图所示

gst-launch-1.0漏斗名称=f\
appsrc!视频/x-h264,流格式=字节流,对齐方式=au!队列f\
videotestsrc是live=真的!x264enc!视频/x-h264,流格式=字节流,对齐方式=au,配置文件=基线!队列f\
F队列h264parse!视频/x-h264,流格式=字节流,对齐方式=nal!filesink位置=dump.h264

参考:

我无法使用gst回答,但SEI作为一个单独的NAL,NAL\U unit\U type=6。NAL的开始总是字节对齐的,这样就可以将缓冲区追加/插入到比特流中。