LINUX.ORG.RU

Как застримить видео по http

 , , ,


0

2

Встала задача стримить видео по http. На входе есть поток изображений в jpeg. Сейчас реализовал через mjpeg, но канал не выдерживает, получается по 6 Мб/с. Решение либо сильнее сжимать, но тогда качество потеряется, либо использовать что-то другое. Вроде, h.264 применяют, но что-то не смог нагуглить реализации на c++.

Кто сталкивался и может помочь?

Ответ на: комментарий от former_anonymous

Закодировать через opencv я смогу, но вот не могу примера по стримингу нагуглить.

panter_dsd ★★★★
() автор топика

Лучше бери h265 — качество не в пример выше при меньшем битрейте. Не забудь отстегнуть роялти. Ну а дальше всё просто: берёшь какой-нибудь ffmpeg и стримишь им. Ну или monaserver накати, по обстоятельствам.

anonymous
()
Ответ на: комментарий от panter_dsd

А, я просто жопой читать учусь - пока не особо получается. Ну посмотри как тот же HLS устроен - там тупо плейлист отдается с нарезанным на фрагменты (по несколько секунд) исходным роликом. Или ты транскодингом хочешь пострадать? Тогда из ffmpeg либу бери.

cnupm
()

На входе есть поток изображений в jpeg.

Если по проще, то кодируй изображения в небольшие например 3-10 секундные куски, складывай по порядку на диск (можно на tmpfs). Дальше 2 варианта или hls или просто потоковая передача склеенных кусков начиная с определенного. Устаревшие куски можно удалять.

surefire ★★★
()
Ответ на: комментарий от surefire

Про hls сейчас читаю. А что такое «просто потоковая передача склеенных кусков начиная с определенного»? Мне так, чтобы в браузере оно отображалось.

panter_dsd ★★★★
() автор топика
Ответ на: комментарий от panter_dsd

Тоже, что делает cat a.ts b.ts. Передавать файлы один за другим как будто это один файл, mpegts такое позволяет. HLS больше нужен если у тебя кодируется несколько битрейтов, это позволяет клиенту самостоятельно выбирать и бесшовно его менять.

surefire ★★★
()
Последнее исправление: surefire (всего исправлений: 1)
Ответ на: комментарий от panter_dsd

См. activehttp внутри vlc и hls внутри ffmpeg. Примеры как дергать ffmpeg libav* есть.

hizel ★★★★★
()

может тебе нужна libx264?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.