для стриминга видео с телефона на сервер.
Поскольку хотелось обойтись без больших временный затрат, мы сначала нашли модуль для nginx, который позволяет стримить видео в HLS формате (https://github.com/arut/nginx-ts-module). Попробовали записывать видео на телефоне сразу в формате mp2t при помощи MediaRecorder, но, насколько я понял, этот формат поддерживается только с API 26. ffmpeg решили пока не затягивать, попробовать обойтись просто Android sdk.
По поводу RTCP - серверные ребята сказали, что они бы не хотели с ним заморачиваться.
Поэтому мы решили попробовать записывать коротенькие видео (секунд по 10) и отправлять их на сервер, потом их склеивать и отправлять клиентам. Опять же, метод, который позволяет на лету поменять файл, куда записывает MediaRecorder, появился только в API 26. Пытались использовали два MediaRecorder и менять их поочередно. Но так появилась задержка между кусочками.
Сейчас вот пытаемся уменьшить задержку. Появилась идея брать поток байтов с превью камеры (из callback-а Camera.PreviewCallback), прогонять через MediaCodec, записывать в файл и отправлять на сервер. Пока у меня что-то не получается разобраться, как правильно, собственно, прогнать поток байтов =/
Собственно, мои вопросы к знатокам:
- Подскажите, в правильную сторону ли я двигаюсь, или это "какая-то дичь"?
- Будет ли задача проще, если пробовать стримить видео по RTCP? Я видел библиотеку libstreaming, кто-нибудь пользовался?
- Может кто-нибудь знает, как вообще правильно решать подобную задачу?..
Заранее спасибо за ответы! Буду рад любым советам.
когда нам нужно было стримить (но у нас были свои специфические задачи), мы делали набор картинок + аудио, запаковывали кусочками в пакеты и отправляли по UDP с HTTP header. в хедере был номер пакета. сервер получал пакеты и сортировал их и отдавал обратно на клиент. на клиенте распаковывали и склеивали. в итоге получилось норм, но работы там много, чтобы сделать нормально. если бы вернуть время назад, взяли бы wowza и не мучались.. скоро будем делать стрим опять. собираемся делать с kurento, webrtc streaming
Обсуждают сегодня