Сергей Арнаут - Stream yourself with Android

604 views
528 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
604
On SlideShare
0
From Embeds
0
Number of Embeds
117
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Сергей Арнаут - Stream yourself with Android

  1. 1. Android AV streaming Как это сделать?
  2. 2. НЕЛЬЗЯ ПРОСТО ВЗЯТЬ СДКИ НАЧАТЬ СТРИМИТЬ ДАННЫЕ
  3. 3. Нам нужен хитрый план!
  4. 4. Что же дает нам андроид?Видео Линукс Аудио
  5. 5. Мы всегда можем сделать видеозапись
  6. 6. Часть первая: Легкий путь
  7. 7. Легкий путь: MediaRecorder- MediaRecorder объект- MediaRecorder объект- Источник видео/аудио- Путь к файлу с результатами записи- Источник видео/аудио- Prepare- Start- Путь к файлу с результатами записи- Stop- Release- Prepare- Start- Stop- Release
  8. 8. Усложняем: чтение файла "на лету" MediaRecorder Файл Поток
  9. 9. Пытаемся прочитать файл- Описание типа файла- Секция с бинарными данными (в семплах)- Таблица описания семплов (оффсет, длина) А почему таблица описания идет в конце? А почему таблица Начали запись.... Мы семплов пустая???все же должны читать Читаем файл... последовательно
  10. 10. Курение мануалов и сорцов
  11. 11. Процесс записи файла Секция данных (aka data atom) raw 1 raw 2 raw 3 raw 4 raw 5 raw 6 raw 7 raw 8 raw 9 raw 10 raw 11 raw 12 raw 13 raw 14 raw 15 raw 16Секция расположения данных (aka data alloc atom) alloc 1 alloc 2 alloc 3 alloc 4 alloc 5 alloc 6 alloc 7 alloc 8 alloc 9 alloc 10 alloc 11 alloc 12 alloc 13 alloc 14 alloc 15 alloc 16
  12. 12. Усложняем: чтение файла "на лету" MediaRecorderФайл #1 Файл #2 Поток
  13. 13. Типы "файлов"доступные для приложений Файл ПайпMediaRecorder использует RandomAccessFile
  14. 14. Часть вторая: Сложный путь
  15. 15. Raw dataCamera preview AudioRecord
  16. 16. Raw dataCamera preview AudioRecord Raw video frame Raw audio buffer Network stream Network stream
  17. 17. Курение мануалов и сорцов 2 + Свежая кровь мамонта
  18. 18. FFMPEG Параметры конвертацииMedia data Media data Стандарты
  19. 19. Raw dataCamera preview AudioRecord Raw video frame Raw audio buffer Network stream
  20. 20. А почему мы не можем использовать драйвера linux?Сетевой драйвер Video4Linux драйвер Отсутствие прав у пользователя
  21. 21. Большая картинка Драйвера Linux RAW RAWАудио поток Видео поток RAW RAW Аудио Видео пайп пайп
  22. 22. Большая картнка 2 Аудио Видео пайп пайп Тоже отдельный поток RTP packages InternetsПайп с RTP Наше приложение пакетами
  23. 23. Выводы- Видео и аудио стриминг в андроиде - это реальность- Не все так просто, как может показаться- Есть слабые места в любой реализации- Не бойтесь экспериментировать
  24. 24. Вопросы???
  25. 25. Что посмотреть- Atomic parsley (http://atomicparsley.sourceforge.net)- Imsdroid (http://code.google.com/p/imsdroid)- RTP (http://tools.ietf.org/html/rfc3550)- RTSP (http://tools.ietf.org/html/rfc2326)- UStream (Google play)- IP Webcam (Google play)

×