2014-11-26 5 views
0

Я работаю над проектом курьерской службы. Я разработал приложение для Android для наших сотрудников, которые работают как приложение для камеры, они могут делать фотографии и видеозаписи. Когда фото или видеофайлы готовы, это приложение может автоматически загрузить его на сервер (если активен WiFi-соединение). Сервер поддерживает веб-сайт, где мы можем видеть ежедневную работу каждого сотрудника, включая ссылки на фото и видео файлы. Конечно, нет проблем с доступом к фотографиям через любой браузер, но есть такая проблема с видеофайлами.Потоковое видео, записанное на Android

Мы не ограничиваем устройства Android, с которыми работает сотрудник, только на том, что он оснащен Android 2.3.3 или новее (и, безусловно, должен иметь камеру). Видео записывается с настройкой CamcorderProfile.QUALITY_LOW, поэтому формат зависит от решения устройства, что этот CamcorderProfile.QUALITY_LOW. Нет никакой проблемы при просмотре видеофайлов с разных устройств на рабочем столе (Windows). У меня и моего начальника есть некоторые плагины для браузера, поэтому эти файлы можно открыть в браузере. Но мы хотим иметь решение для просмотра видео на сайте, которое не требует какого-либо плагина для браузера или дополнительного программного обеспечения на стороне клиента.

Так вопросы:

  1. Что такое лучший видео формат, который может позволить онлайн просмотр видео без загрузки всего файла на стороне клиента (например, на YouTube), видео-записи могут быть очень длинными (час, два часа или даже больше).

  2. Какой инструмент мне нужен для универсального преобразования записанных на Android видеофайлов в этот формат, без указания вручную формата входного файла (так как это может быть совсем иная)? Наш сервер работает на "SMP Debian 3.2.63-2+deb7u1 x86_64".

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

ответ

0

Я ответил на мой собственный вопрос, поскольку все это уже было решено. После дальнейших исследований я пришел к решению о том, что мы будем передавать все на нашем сайте с помощью тега, единственным источником будет .mp4 (H.264), поскольку мы думали, что 99,9% наших пользователей не будут иметь проблема с этим. Я пользователь Windows, и у меня нет проблем с просмотром видео H.264 в Google Chrome, Mozilla Firefox и Microsoft Internet Explorer, и поэтому большинство наших клиентов будут делать.

Что касается преобразования видео в H.264, ffmpeg выполнит эту работу. Я уже сделал несколько тестов, все отлично. Реальная проблема заключалась в том, чтобы управлять поворотом видео, поскольку все видео записывается с телефонов Android в портретном режиме, и оказалось, что на Android это делается путем записи кадров в ландшафтном режиме (собственная ориентация камеры), но с указанием атрибута поворота на 90 градусов в мета данные. И большое количество видеопроигрывателей и Firefox отказались это понимать. Проблема может быть решена с помощью «транспонирования» и «вращать» в команде как это:

ffmpeg -i 1.avi -vf "transpose=1" -r 25 -b:a 64k -b:v 256k -metadata:s:v:0 rotate=0 r1.mp4 
  • -vf "transpose=1" физически вращается фреймам 90 градусов
  • -metadata:s:v:0 rotate=0 очищают атрибут вращения в мета-данных, поскольку вращение уже сделано

Влево - это задание для настройки параметров для качества вывода, записи сценария пакетного преобразования, установки его на crontab и написания HTML и JS, чтобы пользователи могли смотреть это видео.