【问题标题】:How to send video stream to soap web service如何将视频流发送到肥皂网络服务
【发布时间】:2011-10-11 14:20:46
【问题描述】:

我需要将录制的视频流发送到网络服务。

我正在使用 Base 64 对视频流进行编码,但我遇到了内存不足异常。所以我正在考虑另一种方法来做到这一点。

我搜索了这个,但找不到任何参考链接。

还有其他我可以使用的视频发送方式吗?

【问题讨论】:

  • SOAP 是基于 XML 的,因此您必须对视频进行编码(例如使用 Base64)并将其发送到您的 Web 服务。我错了吗?
  • @Knickedi 你是对的。我使用 Base 64 进行相同的编码,bt 我内存不足异常。所以我在想其他方法来做到这一点......请告诉我你是否有任何想法......谢谢
  • 发送前压缩? Base64 将执行newSize = videoSize / 3 * 4。也许不使用网络服务?但是你应该在你的问题中提到这一切,而不是在评论中......
  • @Knickedi,我编辑了这个问题。我没有做任何压缩视频。我将视频流作为编码字符串发送到 Web 服务。请让我如何压缩并发送到 web 服务。谢谢
  • 我假设原始视频是一个大文件,所以我会在发送之前寻找一种压缩/编码它的方法(这应该是你的主要问题)。我从来没有这样做过,所以很遗憾我不能给你更多的建议。

标签: android video-streaming


【解决方案1】:

单独的 Byte64 编码将数据大小扩展为原始大小的 4/3。在视频文件上,这是一个非常大的开销。由于无法在任何当前基础架构上使用此类解决方案,您很可能没有看到有关此主题的任何链接。

我强烈建议您开始研究预打包的转码解决方案以满足您的需求,直到您对该问题领域有更好的了解。否则,您将很难找到想要回答您关于堆栈溢出问题的人,因为他们担心在必须向您解释您的整个前提存在缺陷并且可以在数学上如此证明时被否决。

例如,假设您尝试以每秒 30 帧的速度推送标清视频 (640x480)。假设视频是标准 RGB 格式,每个色带 8 位,每个像素 24 位。计算方法是:

宽度 x 高度 x 每像素字节数 x 每秒帧数 x Byte64 开销 = 每秒字节数

640 x 480 x 3 x 30 x 4/3 = 36,864,000

35MB/秒

请记住,大多数吞吐量测量以每秒兆比特而不是每秒兆字节为单位,这意味着 281.25Mb/s。有了这些带宽需求,您将很难找到能够满足您的数据需求的无线连接,并且面临着硬连线网络连接饱和的真正威胁。目前你需要压缩你的视频文件,你需要使用除soap之外的东西或使用像MTOM这样允许数据流的SOAP扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2017-01-16
    • 2017-12-10
    • 1970-01-01
    相关资源
    最近更新 更多