将实时 Android 网络摄像头视频上传到 RTP/RTSP 服务器

2024-05-05

我已经做了适当的研究,但仍然缺乏关于我想要实现的目标的信息。

因此,我想编写一个应用程序,用户可以在其中录制视频并立即(实时)将视频上传到 RTP/RTSP 服务器。 服务器端不会有问题。我不清楚的是如何在手机端实现这一点。

到目前为止,我的研究是,我必须将录制时的视频写入本地套接字而不是文件,因为如果写入文件,则无法访问 3gp 文件,直到最终确定(当视频停止并且标头信息已完成)已将有关长度和其他的信息写入视频中)。

当套接字接收到连续数据时,我需要将其包装成RTP数据包并将其发送到远程服务器。我可能还必须首先进行基本编码(这还不是那么重要)。

有人知道这个理论到目前为止是否正确吗? 我还想知道是否有人可以向我指出一些类似方法的代码片段,特别是用于将视频动态发送到服务器的代码片段。我还不知道该怎么做。

非常感谢并致以诚挚的问候


您的总体方法听起来是正确的,但您需要考虑一些事情。

因此,我想编写一个应用程序,用户可以在其中录制视频并立即(实时)将视频上传到 RTP/RTSP 服务器。

  • 我假设您想要上传到 RTSP 服务器,以便它可以将内容重新分发到多个客户端?
  • 您将如何处理 RTP 会话的信令/设置 RTSP 服务器?您需要以某种方式通知 RTSP 服务器用户 即将上传直播媒体,以便可以打开相应的 RTP/RTCP 套接字等
  • 您将如何处理身份验证?多个客户端设备?

到目前为止,我的研究是,我必须将录制时的视频写入本地套接字而不是文件,因为如果写入文件,则无法访问 3gp 文件,直到最终确定(当视频停止并且标头信息已完成)已将有关长度和其他的信息写入视频中)。

通过 RTP/RTCP 实时发送帧是正确的方法。当捕获设备捕获每个帧时,您需要对其进行编码/压缩并通过套接字发送。 3gp 与 mp4 一样,是一种用于文件存储的容器格式。对于实时捕获,无需写入文件。唯一有意义的时候是例如在 HTTP Live Streaming 或 DASH 方法中,媒体先写入传输流或 mp4 文件,然后再通过 HTTP 提供服务。

当套接字接收到连续数据时,我需要将其包装成RTP数据包并将其发送到远程服务器。我可能还必须首先进行基本编码(这还不是那么重要)。

我不同意,编码是very重要的是,否则您可能永远无法发送视频,并且您必须处理诸如成本(通过移动网络)以及取决于分辨率和帧速率的媒体数量等问题。

有人知道这个理论到目前为止是否正确吗?我还想知道是否有人可以向我指出一些类似方法的代码片段,特别是用于将视频动态发送到服务器的代码片段。我还不知道该怎么做。

看看spydroid http://code.google.com/p/spydroid-ipcamera/以开源项目为起点。 它包含许多必要的步骤,包括如何配置编码器、打包为 RTP、发送 RTCP 以及一些 RTSP 服务器功能。 Spydroid 设置 RTSP 服务器,以便在使用 VLC 等 RTSP 客户端设置 RTSP 会话后对媒体进行编码和发送。由于您的应用程序是由想要将媒体发送到服务器的电话用户驱动的,因此您可能需要考虑另一种方法来开始发送,即使您向服务器发送某种消息以例如在spydroid中设置RTSP会话。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将实时 Android 网络摄像头视频上传到 RTP/RTSP 服务器 的相关文章

随机推荐