-->

发送Jcodec H264编码RTMP信息给Wowza(Sending Jcodec H264 En

2019-10-20 17:40发布

我想提出基于屏幕共享Java应用程序。 我使用JCodec Java库与编码帧进行到H264。 我在字节缓冲图像数据。 我怎么会通过RTMP客户端这些编码的帧发送到Wowza? Wowza能认出H264编码的帧,通过Jcodec文库编码?

Answer 1:

几乎所有的“闪光”媒体服务器将理解流H264数据。 你需要与基线或主配置文件,然后“打包”的编码字节到FLV流格式编码的帧。 第一步是建立一个AMF视频数据项,这意味着什么是前缀和后面添加根据其“NALU”内容的H264编码的字节阵列; 在伪代码,它看起来是这样的:

if idr 
flv[0] = 0x17 // 0x10 key frame; 0x07 h264 codec id
flv[1] = 0x01 // 0 sequence header; 1 nalu; 2 end of seq
flv[2] = 0 // pres offset
flv[3] = 0 // pres offset
flv[4] = 0 // pres offset
flv[5] = 0 // size
flv[6] = 0 // size cont
flv[7] = 0 // size cont
flv[8] = 0 // size cont

else if coded slice
flv[0] = 0x27
flv[1] = 0x01
flv[2] = 0 // pres offset
flv[3] = 0 // pres offset
flv[4] = 0 // pres offset
flv[5] = 0 // size
flv[6] = 0 // size cont
flv[7] = 0 // size cont
flv[8] = 0 // size cont

else if PPS or SPS
.... skipping this here as its really complicated, this is the h264/AVC configuration data

copy(encoded, 0, flv, 9, encoded.length)

flv[flv.length - 1] = 0

下一步是包装AMF视频数据划分成一个RTMP消息。 我建议你看看flazr或有关该步骤的详细信息,android的RTMP图书馆之一。

我有一个小例子项目,获得原始编码H264并将其写入一个FLV 这里 ,如果你想看看如何做。



文章来源: Sending Jcodec H264 Encoded RTMP Message to Wowza