Streaming videos android app

Streaming videos android app

Прошли те времена, когда игровой стриминг был доступен только для настольных компьютеров. В настоящее время геймеры транслируют свои игровые видео со своих смартфонов Android. В магазине Google Play доступно множество высококачественных приложений для Android, которые позволяют пользователям транслировать игровые видео на нескольких платформах.

Итак, если вы ищете лучшее приложение для Android, чтобы транслировать впечатляющий игровой процесс, тогда эта статья для вас. В этой статье мы собрали некоторые из лучших приложений для потокового вещания игр на смартфонах Android. С помощью этих приложений вы можете легко транслировать свои любимые игры без каких-либо дополнительных затрат.

Стоит отметить, что в Google Play Маркет доступно множество приложений для потоковой передачи в реальном времени, но этот список ориентирован только на приложения, которые специализируются на играх. Итак, давайте изучим список лучших Android приложений для потоковой передачи игровых видео.

1. StreamCraft

StreamCraft недоступен в магазине Google Play, но это не значит, что это не подходящее приложение. Это одно из лучших Android приложений для геймеров, которые ищут приложение для потоковой передачи своих игровых видео. Со StreamCraft вы можете транслировать свои игровые видео и получать награды. Это также платформа, где любой может провести конкурс или принять участие, чтобы выиграть реальные деньги.

2. Omlet Arcade

Если вы ищете Android приложение для трансляции игровых видео на нескольких платформах, таких как Facebook, YouTube, Twitch и т. д., тогда вам необходимо попробовать Omlet Arcade. Отличительной чертой Omlet Arcade является то, что приложение бесплатное и поддерживает широкий спектр мобильных игр. Однако бесплатная версия Omlet Arcade снижает качество видео при потоковой передаче.

3. Streamlabs

Если вы создатель видео или стример, Streamlabs может быть лучшим приложением для вас. Приложение позволяет вам начать работу всего несколькими нажатиями. Хорошая вещь в Streamlabs – это растущая база пользователей. Также Streamlabs позволяет добавлять фильтры и видеоэффекты в игровые видео, дополнительно улучшая качество.

4. Nexplay

Nexplay – это сама по себе потоковая платформа, поэтому она позволяет пользователям транслировать свои игровые видео только на своей платформе. Хотя платформа не так популярна, как Twitch и YouTube, у нее есть целевая база пользователей. Если вы не хотите транслировать, вы можете смотреть прямые трансляции с различных турниров со всего мира.

5. Mobizen прямая трансляция для YouTube

Mobizen прямая трансляция для YouTube позволяет пользователям транслировать в формате 1080p со скоростью 60 кадров в секунду. Mobizen также позволяет пользователям включать/выключать фронтальную камеру и скрывать чат во время потоковой передачи. Однако имейте в виду, что Mobizen Live Stream позволяет пользователям транслировать только на Youtube.

6. Ustream

Ustream – одно из тех замечательных приложений для Android, которое позволяет смотреть видео в прямом эфире и вести прямую трансляцию на вашем телефоне или планшете. С помощью этого приложения вы можете смотреть видео в реальном времени, узнавать о предстоящих событиях и т. д. Вы также можете вести прямую трансляцию для любого количества зрителей с помощью камеры вашего мобильного устройства.

7. Twitch

Twitch – это платформа, которая позволяет транслировать собственный игровой контент. По сути, это платформа для геймеров, позволяющая наблюдать за игровым процессом. Кроме того, Twitch также позволяет вам общаться в чате, когда вы смотрите, как геймеры играют в игры.

8. Nimo TV – Live Game Streaming

Что ж, если вы ищете приложение для Android, чтобы воспроизводить и транслировать свои игровые видео другим единомышленникам, то Nimo TV – Live Game Streaming может быть лучшим выбором для вас. Приложение служит глобальной платформой для миллионов геймеров, чтобы они могли продемонстрировать свои игровые таланты. Аудитория поддерживает платформу, смотрит, комментирует и критикует игровые видео игроков.

Читайте также:  Не удается установить обновление андроид

9. SGETHER Studio

SGETHER Studio предназначена для тех, кто искал приложение для Android, чтобы транслировать экран телефона. Приложение поддерживает широкий спектр игр, включая ролевые игры, шутеры от первого лица и стратегические симуляторы. В SGETHER Studio вам необходимо создать свой канал для прямой трансляции игровых видео. Уникальные игровые видеоролики помогут расширить ваш канал и стать популярным стримером.

10. StreamElements

StreamElements – это приложение, которое помогает транслировать игровые видео в прямом эфире с мобильного устройства. Вы можете транслировать прямо на YouTube или Twitch со своего телефона или планшета. Более того, StreamElements также позволяет вам взаимодействовать с подписчиками и управлять своими трансляциями.

Итак, это лучшие приложения для игрового стриминга на Android. Если вам известны другие подобные приложения, сообщите нам об этом в поле для комментариев.

Источник

Потоковое видео в Android

В этой заметке я хочу рассказать о некоторых подводных камнях, с которыми можно столкнуться при работе с потоковым видео в Android приложениях. Конкретно, речь пойдёт о конвертации видео и протоколах доставки/воспроизведения видео.
Сразу оговорюсь, что экспертом я в данной области не являюсь, а лишь хочу поделится недавно полученным опытом.

Представим, что перед вами стоит задача реализовать Android приложение, способное проигрывать множество файлов, заливаемых пользователями на ваш сервер. Написать свой youtube, с блекджеком и кодеками. Для этого вам придётся решить как минимум две задачи: конвертации видео к поддерживаемому на Android формате, воспроизведение видео с удалённого источника. Рассмотрим обе эти задачи более подробней.

Конвертация видео

И так, прежде чем воспроизвести какое-то видео нашем Android устройстве, надо это видео перекодировать в поддерживаемый формат. В документации к Android чётко обозначен список этих самых форматов.

Для того, что бы перекодировать файлы, заливаемые пользователями на ваш сервис, или же записать поток с TV-тюнера, вам потребуется помощь специальной утилиты ffmpeg, являющейся де-факто стандартом в отрасли. Подробную инструкцию по её установке можно найти на сайте одноимённого проекта.

Наиболее распространённым сейчас (на мой взгляд) способом хранения видео является контейнер MP4 с использованием кодека H.264 AVC. Их мы, собственно, и рассмотрим.

Первым делом обратите внимание, что Android поддерживает не все возможности кодека H.264, а только определённый набор — профиль, именуемый Baseline Profile(BP). Так, например, в BP не входят такие полезные фичи H.264 как CABAC или B-Frames.

Для нас это значит, что если мы будем использовать эти фичи при кодировании видео, то Android проигрывать это видео будет не обязан. Хотя и может, если ваш телефон достаточно мощный и вендор позаботился об установке и поддержке дополнительных кодеков. Так, например, видео в Main Profile без проблем проигрывается на Samsung Galaxy SII. На телефонах же обычного класса (например, Samsung Galaxy Ace) мы получим сообщение о невозможности воспроизведения видео и ошибку с кодом неверного кодека в logcat‘е.

Но перейдём от теории к практике. Для того, что бы пережать видео, необходимо выполнить следующую команду:

ffmpeg -i in.3gp -f mp4
-vcodec libx264 -vprofile baseline -b:v 1500K
-acodec libfaac -b:a 128k -ar 44100 -ac 2
-y out.mp4

Рассмотрим подробнее каждый из параметров:

  • -i src входной (перекодируемый) файл;
  • -f mp4 используемый видеоконтейнер;
  • -vcodec libx264 используемый видеокодек;
  • -vprofile baseline используемый профиль;
  • -b:v 1500K bitrate;
  • -acodec libfaac используемый аудиокодек;
  • -b:a 128k аудио bitrate;
  • -ar 44100 частота звука;
  • -ac 2 количество аудиопотоков;
  • -y флаг перезаписи выходного файла;
Читайте также:  Громкий звонок для android

Так же стоит отметить, что можно обойтись и без указания профиля, а явно включить/отключить нужные опции кодека H.264 через параметр -x264opts, так что бы они удовлетворяли условиям BP. Но это же занятие для любителей.

Раздача видео

Самый простой способ воспроизвести видео с удалённого сервера — это скачать его во временное хранилище и воспроизвести локально. Однако, думаю всем понятно, что в виду размеров современных видеозаписей — это не вариант.

Как же быть? Платформа Android предлагает нам нативную поддержку следующих технологий/протоколов:

  • HTTP/HTTPS progressive streaming;
  • HTTP/HTTPS live streaming;
  • RTSP (RTP, SDP);

Рассмотрим их по порядку.

Progressive streaming

Наиболее простой способ раздачи видео с помощью обычного web-сервера, сводящийся по сути к скачиванию заранее подготовленного файла по HTTP(S) протоколу. Вся соль в данном случае заключается в том, что воспроизведение файла начинается не по окончанию загрузки, а как только будет скачано достаточно данных (наполнен некоторый буфер).

Тут стоит уточнить, что при использовании контейнера MP4, необходимо сформировать файл так, что бы метаданные о видео потоке (moov atoms) располагались в начале файла (после атома ftyp), перед видеоданными (mdat atoms). Сделать это можно с помощью обработки файла утилитой qt-faststart:

Основной проблемой progressive streaming‘а является невозможность перемотки видео к нескачанному моменту, наличие достаточного количества свободного места на устройстве и необходимость поддержки большого числа «толстых» клиентов, скачивающих видео, на web-сервере.

Воспроизведение с помощью данной технологии поддерживается платформой Android нативно. Вы без проблем (если не считать канал связи, мощность девайса и наличие свободного места) сможете проиграть удалённый файл с помощью стандартного класса MediaPlayer.

Pseudo streaming

Данная технология является логическим расширением progressive streaming‘a и позволяет решить одну из его главных проблем — перемотки к ещё не скачанному фрагменту. Применима для контейнеров MP4/FLV с кодеком H.264/AAC.

Единственным отличием от progressive streaming‘a в данным случае является, тот факт, что вам потребуется специальный web-сервер, который с учётом временной метки в GET-запросе будет отдавать нужный вам фрагмент видео файла. Примером такого web-сервера естественно может служить православный NGINX с его ngx_http_mp4_module.

Мне не удалось найти какой-либо официальной информации относительно поддержки данного стандарта в Android. Однако, эмперическим путём было установлено, что она присутствует как минимум на устройствах HTC Desire и Samsung Galaxy SII. Однако, хочу обратить внимание, что да же в случае отсутствия нативной поддержки на вашем устройстве всегда можно воспользоваться сторонними плеерами типа MX Player, которые самостоятельно реализуют логику скачки и воспроизведения фрагментов видео с нужной временной меткой, что позволяет организовать перемотку.

Live streaming

Довольно нестандартный протокол передачи данных от компании Apple. Суть его сводится к тому, что раздаваемый файл «пилится» на множество небольших частей, объединяемых спецтальным файлом-playlist’ом формата M3U8. Передача данных происходит по протоколу HTTP(S).

Ни каких проблем с перемоткой и свободным местом на устройстве в данном случае не возникает. Более того, при некоторых условиях у вас появляется возможность выбирать качество проигрываемого видео.

Однако, появляются и проблемы. Для «распила» файла и создания playlist’а потребуется ресурсы процессора, время и место на сервере. Для вещания файла в сеть, как и в предыдущих примерах, потребуется HTTP сервер (без каких-либо дополнительных модулей).

«Распилить» видео файл можно использовать VLC:

Воспроизвести такой файл можно по URL localhost/pornofilm.m3u8.

Поддержка HTTP Live Streaming на нативном уровне в Android присутствует начиная с версии 3.0. С помощью сторонних плееров (DicePlayer, MX Player), судя по wiki, можно добиться поддержки с версии 2.2.

Real Time Streaming Protocol (RTSP)

Протокол прикладного уровня с поддержкой состояния, разработанный специально для передачи видео. Формат команд очень напоминает HTTP. Сами же команды напоминают кнопки на обычном кассетном магнитофоне: PLAY, PAUSE, RECORD и т.д.

Читайте также:  Как найти андроид с айфона местоположение геолокация

В отличие от HTTP Live Streaming RTSP не требует разбиения фалов на мелкие части и составления playlist’ов. Нужные части файла будут генерироваться и отдаваться клиенту налету. В качестве RTSP сервера можно использовать VLC.

Стоит заметить, что сам протокол RTSP не определяет способ передачи данных, а делегирует это другим протоколам. Например, RTP. Для вещания файла по протоколу RTP нужно будет запустить VLC со следующими параметрами:

Однако, поднимать для каждого файла свой процесс с отдельным портом вне зависимости от наличия пользователей, желающих его просмотреть, было бы глупо.

Поэтому вернёмся к протоколу RTSP и воспроизведению видео по требованию (Vidoe On Demand). Для того, что бы использовать VLC в качестве RTSP сервера для проигрывания VOD необходимо прежде всего запустить VLC, указав атрибуты RTSP сервера и Telnet интерфейса:

vlc -vvv -I telnet —telnet-password 123 —rtsp-host 127.0.0.1 —rtsp-port 5554

После этого как сервер запущен, необходимо произвести его настройку. Делать это удобнее всего с помощью telnet‘a, так как такой подход даёт возможность настройки налету:

setup porno input /path/to/pornofilm.mpg

Для воспроизведения видео (в том числе и на платформе Android) необходимо запросить его по URL rtsp://localhost:5554/pornofilm.

Из недостатков можно отметить тот факт, что HTTP открыт зачастую на всех firewall’ах и проксях… с RTSP в случае политики Deny,Allow всё иначе.

Кроме того, при использовании RTSP-сервера для добавления/удаления файлов на сервере придётся обновлять его конфигурацию (список vod’ов). Да, для этого есть telnet, но это всё равно сложнее, чем просто заливать или удалять файлы из каталогов web-сервера.

Воспроизведение с помощью данной технологии поддерживается платформой Android нативно. Например, с помощью всё того же стандартного класса MediaPlayer.

Multicast

Многие считают, что multicast не работает в Android. Это не совсем так.

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

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

Однако, как показывает практика, проигрывать multicast видео на Android всё можно. В моём случае с этой задачей удачно справился недавно вышедший VLC Beta для Android.

Кроме того с помощью VLC-сервера всегда можно свести воспроизведение multicast‘a к HLS:

new multicast-porno vod enabled

setup multicast-porno input udp://@192.168.20.1:1234

Попытать удачу с проигрыванием multicast’a на вашем устройстве вы можете, передав плееру URL вида udp://@192.168.20.1:1234.

Что выбрать

Если с форматом видео всё ясно (H.264 BP / MP4), то со спобом дистрибуции вопрос открыт. У каждого их них есть свои достоинства и недостатки.

Первым делом из рассмотрения я бы убрал обычный progressive streaming. Да он работает всегда и везде, но отсутствие перемотки и загрузка всего файла целиком — это уже слишком.

Следующим кандидатом на вылет является live streaming. Главным его недостатком является нативная поддержка в Android начиная с версии 3.0. А игнорирование более 80% пользователей c версией 2.x — не вариант. Хотя тут можно посмотреть на сторонний плеер, или заняться собственной реализацией (свободных наработок для поддержки HLS я, увы, не нашёл).

И последним я бы вычеркнул RTSP. Да, это протокол, разработанный специально для видео. Да, его использование идейно верно. Но есть два момента. Во первых — необходимо постоянно обновлять конфигурацию сервера. Во вторых, HTTP открыт всегда и везде, чего нельзя сказать о RTSP/RTP.

Лично я бы остановился на pseudo streaming. Он позволяет осуществлять перемотку и при этом не скачивать весь файл полностью. От нас требуется только немного донастроить web-сервер.

Источник

Оцените статью