Как отправить видеопоток в веб-службу soap

#android #video-streaming

#Android #потоковое видео

Вопрос:

Мне нужно отправить записанный видеопоток в веб-службу.

Я делаю кодирование видеопотока с использованием базы 64, но у меня заканчивается исключение из памяти. Поэтому я думаю о другом способе сделать это.

Я искал это, но не могу найти ни одной ссылки.

Есть ли другой способ отправки видео, который я могу использовать?

Комментарии:

1. SOAP основан на XML, поэтому вам придется кодировать видео (например, с помощью Base64) и отправлять его на ваш веб-сервис. Я ошибаюсь?

2. @Knickedi вы правы. я использую ту же кодировку, используя базу 64, но я получаю исключение из памяти. поэтому я думаю о другом способе сделать это… пожалуйста, скажите мне, есть ли у вас какие-либо идеи …. спасибо

3. Сжимать перед отправкой? Подойдет Base64 newSize = videoSize / 3 * 4 . Может быть, не используя веб-службу? Но вы должны указать, что все это в вашем вопросе, а не в комментарии…

4. @Knickedi, я отредактировал вопрос. я не делаю никакого сжатия видео. Я отправляю видеопоток в виде закодированной строки в веб-службу. Пожалуйста, дайте мне, как сжать и отправить в веб-сервис. Спасибо

5. Я предполагаю, что необработанное видео представляет собой большой файл, поэтому я бы искал способ сжать / закодировать его перед отправкой (это должно быть вашей главной проблемой). Я никогда этого не делал, поэтому, к сожалению, я не могу дать вам больше советов.

Ответ №1:

Одно только кодирование Byte64 увеличивает размеры данных до 4/3 от их первоначального размера. Для видеофайла это исключительное количество накладных расходов. Скорее всего, вы не видели никаких ссылок на эту тему из-за невозможности использовать такое решение в любой текущей инфраструктуре.

Я настоятельно рекомендую вам начать поиск готовых решений для перекодирования для ваших нужд, пока вы не получите лучшего понимания этой проблемной области. В противном случае вам будет трудно найти людей, которые захотят ответить на ваши вопросы о stack overflow, опасаясь, что они будут отвергнуты, когда им придется объяснить вам, что вся ваша предпосылка ошибочна и может быть доказана математически.

Например, предположим, что вы пытаетесь передать видео стандартной четкости (640×480) со скоростью 30 кадров в секунду. Давайте также скажем, что видео в стандартном формате RGB с 8 битами на цветовую полосу, 24 бит на пиксель. Математика для этого будет:

ширина x высота x байты на пиксель x кадр в секунду x служебные данные Byte64 = байты в секунду

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

35 МБ в секунду

Помня, что большинство измерений пропускной способности измеряются в мегабитах в секунду, а не в мегабайтах в секунду, это переводится в 281,25 Мб / с. При таких потребностях в пропускной способности вам будет сложно найти беспроводное соединение, которое может удовлетворить ваши потребности в данных, и вы столкнетесь с вполне реальной угрозой насыщения проводного сетевого соединения. В настоящее время вам необходимо сжать ваши видеофайлы, и вам нужно использовать что-то другое, кроме soap, или использовать расширения SOAP, такие как MTOM, которые позволяют передавать потоковые данные.