Kwert-soft.ru

IT Софт для ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Локальное видео в телефоне

Воспроизведение локального и потокового видео разных форматов

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

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

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

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

Для удобства просмотра и обмена онлайн видео, так же можно воспользоваться плейлистами, например, с разрешением «*.M3U». По сути это обычный текстовый файл с прямой ссылкой на видео внутри него. Вся прелесть в том, что за раз добавить в библиотеку можно несколько фильмов, серий любимого сериала или же сразу пару сезонов. Кроме того это могут быть ссылки на различные трансляции, передачи и даже каналы. По умолчанию такие плейлисты распознают BSPlayer и VLC for Android, а тот же MX Player, только если вставить ссылку на прямую.

Напоследок хотелось бы отметить, что оба метода хороши и имеют как достоинства, так и недостатки. Лучше всего не ограничиваться только локальным или онлайн просмотром, а совместить и тот и другой вариант. Когда есть доступ к интернету, смотреть потоковое видео, а когда сетевое подключение не доступно, довольствоваться тем, что сохранено во внутренней памяти устройства.

Статья была Вам полезна?

Поставьте оценку — поддержите проект!

(4 оценок, среднее: 3,00 из 5)

Как смотреть видео на смарфоне или планшете под управлением Andro >

Существует немало способов связать Android девайс с компьютером, чтобы воспроизводить мультимедийный контент на мобильном устройстве. Можно, например, для этого использовать довольно неплохое приложение BubbleUPnP, но я решил использовать всем знакомый ES проводник. У меня уже настроена домашняя локальная сеть с участием Wi-Fi роутера. На ПК установлена всем знакомая программа Home Media Server. Поэтому, чтобы смотреть видео на Android с компьютера или транслировать видео поток на телевизор никакого ПО больше не нужно.

О том, как установить и настроить программу «Домашний медиа-сервер» и транслировать видео на телевизор, я уже писал в одной из предыдущих статей, но принцип действия передачи потока на планшет или смартфон остается неизменным. Следует сказать, что вы можете смотреть видео на планшете с компьютера без установленного ПО, дополнительных сетевых устройств, но для этого вам нужно настроить на ноутбуке точку доступа и открыть общий доступ к папке, где лежат фильмы, и фотографии. А на планшет или смартфон под управлением Andriod скачать и установить ES проводник.

Прежде, чем приступить к подключению, я предполагаю, что вы установили на Android устройство упомянутое приложение, и если вы не используете медиа-сервер и маршрутизатор, то подключаетесь к ноутбуку по Wi-Fi напрямую. При этом ваш смартфон/планшет коннектится к Интернету, через точку доступа без проблем, а папка в которой лежит желаемое видео для просмотра расшарена.

Транслируем видео с компьютера на устройство на базе Андроид.

Запустите на планшете/смартфоне ES проводник. Обратите внимание на левый верхний угол. Там в интерфейсе программы размещена кнопка «КПК». Кликните по ней и на экране устройства появится всплывающее окошко. Здесь вам нужно выбрать вкладку «LAN» (локальная сеть).

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

По завершению процесса сканирования вы увидите на экране имя или IP-адрес компьютера.

Если вы подключаетесь к ПК на прямую (без медиа-сервера), то возможно компьютер не будет найден. В этом случае добавьте его вручную.

Читать еще:  Скачать снималку для видео

Нажмите на кнопку «Создать» — «Сервер» и пропишите в форме логин и пароль от своей учетной записи в ОС Windows и укажите IP-адрес компьютера (посмотреть можно в свойствах сетевого подключения).

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

Осталось выбрать желаемый видео файл и плеер чтобы воспроизвести на своем Android устройстве. Для примера я включил мультфильм.

Я рекомендую для просмотра использовать KMP, BSPlayer или MX Player. Вот легко и просто можно смотреть видео на планшете с компьютера. Желаю удачного коннекта. Пока!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Локальное видео в телефоне

Если вы пользовались мобильным телефоном в начале-середине 2000-х годов, то наверняка должны помнить, что раньше единственным вариантом посмотреть видео на телефоне (о смартфонах тогда не было и речи) было перекодировать его в формат 3GP, после чего нужно было «залить» файл на телефон и наслаждаться видео. Наслаждением это было назвать сложно из-за мизерных дисплеев с никакущим разрешением, но сам факт того, что у вас есть возможность посмотреть фильм на телефоне завораживал. Сегодня подобных «танцев с бубном» устраивать не надо. Достаточно лишь скачать соответствующее приложение из Google Play Store.

MX Player — Простота и скорость

MX Player имеет довольно аккуратный и простой в использовании интерфейс. Он поддерживает практически все форматы видео и даже аудио файлов. Кроме всего прочего, MX Player является одним из первых видеоплееров для Android, который поддерживает многоядерное декодирование. А значит с файлами он будет «разбираться» на раз-два. Также тут есть поддержка субтитров, увеличение/уменьшение масштаба текста и самого видео, управление жестами, а также блокировка от детей, если вдруг вы дали свой смартфон ребенку и не хотите, чтобы он «шастал» по другим программам, а имел возможность лишь просмотра видео.

VLC — Почти идеал

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

Fipe Player — Для видео высокой четкости

Отличительной особенностью Fipe Player, выделяющей его на фоне конкурентов, является возможность воспроизведения видео высокой четкости вплоть до 4K. Также стоит отметить занятную функцию воспроизведения, с помощью которой вы можете смотреть видео на «плавающем экране», который накладывается поверх рабочего стола устройства или других приложений. Очень удобно! А вы часто смотрите видео на своих мобильных устройствах? Расскажите об этом в нашем чате в Телеграм.

BS Player — Покажет фильм и пощадит батарею

BS Player — это еще одно многофункциональное приложение для проигрывания видеофайлов на Android. Он оснащен аппаратным ускорением воспроизведения видео, что увеличивает скорость работы и снижает энергопотребление батареи. А также на месте тут почти все популярные форматы мультимедийных файлов, возможность воспроизведения нескольких аудиопотоков одновременно, поддержка плейлистов и так далее. Плюс ко всему тут имеется ряд тем для изменения внешнего вида программы и, как и у Fipe Player, тут есть опция воспроизведения видео во всплывающем окне.

PlayerXtreme Media Player — Любителям красоты

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

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

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

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

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

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

Читать еще:  Intel r hd graphics объем видеопамяти

Для того, что бы перекодировать файлы, заливаемые пользователями на ваш сервис, или же записать поток с 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 флаг перезаписи выходного файла;

Так же стоит отметить, что можно обойтись и без указания профиля, а явно включить/отключить нужные опции кодека 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:

vlc -I dummy /path/to/pornofilm.mpg vlc://quit —sout ‘#transcode

Воспроизвести такой файл можно по 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:

vlc -I dummy udp://@192.168.20.1:1234 vlc://quit —sout ‘#transcode

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-сервер.

Ссылка на основную публикацию
Adblock
detector