Android:如何通过 RTMP 将 H264 原始数据发布到直播服务器

Posted

技术标签:

【中文标题】Android:如何通过 RTMP 将 H264 原始数据发布到直播服务器【英文标题】:Android: How publish H264 raw data to live stream server via RTMP 【发布时间】:2017-02-22 09:45:14 【问题描述】:

我想要从 Drone 到 Wowza 流引擎服务器的直播视频。我从this callback 获得了H264 原始数据,我正在寻找一个支持来自H264 原始数据的实时流或任何关于来自H264 数据的实时流的文档的库。 感谢大家的支持。

【问题讨论】:

【参考方案1】:

DJI 发布了新版本的 SDK 4.0,其中包含如何使用 FFMpeg 将原始数据解码为 YUV 图像的example。

按照这个例子,你可以修改这个方法

 private void screenShot(byte[] buf, String shotDir) 

      YuvImage yuvImage = new YuvImage(buf,
                 ImageFormat.NV21,
                 DJIVideoStreamDecoder.getInstance().width,
                 DJIVideoStreamDecoder.getInstance().height,
                 null);

 //you can therefore stream it to your Wowza Server

 

我不知道你的目标是什么。但是,我建议您将该 YUV 帧编码为 Jpeg,并通过 UDP 传输,就像点对点应用程序一样。

Here 是一种使用 UDP 流式传输实时视频的简单方法。它使用 C++,但易于理解

【讨论】:

以上是关于Android:如何通过 RTMP 将 H264 原始数据发布到直播服务器的主要内容,如果未能解决你的问题,请参考以下文章

使用 FFMpeg 将 FLV 流式传输到 RTMP,使用 H264 编解码器和 C++ API 到 flv.js

通过 RTP 流式传输,RTMP 播放质量问题

h264编码,怎么推流到rtmp服务器上

rtmp H264多Slice封装学习笔记

rtmp H264多Slice封装学习笔记

rtmp H264多Slice封装学习笔记