gpt4 book ai didi

android - GStreamer 通过 HTTPS 视频流传输 RTSP

转载 作者:IT王子 更新时间:2023-10-28 23:33:05 28 4
gpt4 key购买 nike

我有一个基于 HTTPS 的 RTSP 流。

握手是安全的(通过 https),但握手完成后的数据未加密(在 RTSP 中)。

默认情况下,GStreamer 不会流式传输,因为它希望数据也被加密(在 RTSPS 中),这不是我的情况。

我尝试了多种方法,但似乎没有任何效果。例如在我开始获取流后,我尝试将其写入本地端口并将该 URL 传递给 GStreamer,但它无法播放。

我是这个 GStreamer 的新手,所以我对播放器的了解有限。我正在寻找一种通过 GStreamer 完成握手的方法,它是 HTTPS(安全),然后我得到的流没有加密。如果有人做过类似的工作,请告诉我任何流式传输 RTSP 的方法。我尝试过类似的东西

nativeSetPipeline("rtspsrc location=rtsph://<URL of the video stream> latency=100 ! rtph264depay ! avdec_h264 ! glimagesink");

默认情况下,上述管道的工作原理是 GStreamer 通过 HTTP 播放 RTSP,但是当我尝试通过 HTTPS 的 RTSP 时,类似于

nativeSetPipeline("rtspsrc debug = TRUE do-rtcp=false location=\"rtspsh://<secured URL of the stream>" latency=100 do-rtsp-keep-alive=true ! rtph264depay ! avdec_h264 ! glimagesink");

这不起作用,因为 GStreamer 期望流也受到保护。关于如何通过 HTTPS 流式传输 RTSP 的任何想法/代码 fragment 或示例?我使用的当前版本是 1.10.4。

最佳答案

因为我找不到任何方法让 GStreamer 在内部完成所有工作。我写了一个中间层。它充当我的服务器和 GStreamer 之间的接口(interface)。我打开了两个套接字连接。一个在我的中间层和服务器之间,另一个在 GStreamer 和我的中间层之间。我的中间层和 GStreamer 之间的套接字是 localhost。

            channel = ServerSocketChannel.open();
channel.configureBlocking(false);

InetAddress ih = InetAddress.getLocalHost();
InetSocketAddress isa = new InetSocketAddress(inetAddress, inetPort);
channel.socket().bind(isa);

用于我的中间层和服务器之间的通信。我有类似的 SSL 连接。

            SocketFactory socketFactory = SSLSocketFactory.getDefault();
socket = socketFactory.createSocket(serverAddress, serverPort);

if (null == dataInputStream) {
dataInputStream = new DataInputStream(socket.getInputStream());
}

if (null == inputStreamReader) {
inputStreamReader = new InputStreamReader((socket.getInputStream()));
}

我定义了两个传输数据/消息的接口(interface)。所以基本上我让 SSL Socket 为我与服务器握手。我将使用接口(interface)从服务器获取的数据/消息传递到中间层,然后写入 GStreamer。同样,无论我使用接口(interface)从 GStreamer 获得的任何数据/消息,我都会将其传递给我的中间层,然后将其写入服务器。我用于 GStreamer 的管道是。

pipelineURL = String.format("playbin uri=\"%s\" ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! xvimagesink", url);

关于android - GStreamer 通过 HTTPS 视频流传输 RTSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45689798/

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