Перекодировать RTSP для тега HTML5 Video в браузере

У меня есть поток rtsp с видеокодеком MP4 и аудиокодеком G711. Мне нужно, чтобы это работало без FlashPlugins.

Видеопоток в WEB — штука неприятная.

Есть ли возможность конвертировать в браузере с помощью javascript мое видео Mp4 и аудио G711 в веб-кодек или кодек h264 на лету, чтобы использовать его в качестве потока для элемента видео html5 или любого плеера!

Проблема в том, что flowplayer не поддерживает поток rtsp, vlc не работает в chrome, а flash не поддерживает в android.

поэтому есть много проблем, чтобы заставить его работать. Так что, если есть возможность транспонировать поток rtsp на клиенте, возможно, есть возможность решить эту проблему.

Спасибо


person Michael Burger    schedule 04.04.2016    source источник


Ответы (1)


Во-первых, MP4 - это не видеокодек, а контейнер. Итак, вопрос в том, что RTSP-сервер действительно транслирует MP4 (в чем я сомневаюсь, но может), или, может быть, вы перепутали MP4 с H.264.

И Chrome, и Firefox принимают живые видеопотоки в фрагментированных видеоконтейнерах MP4 и WebM (что не имеет значения в данном случае). Поэтому, если у вас действительно уже есть полезная нагрузка MP4, вы можете просто распаковать ее из потока RTSP и отправить в браузер. Если у вас есть H.264, вам придется выполнить мультиплексирование необработанного видеопотока H.264 в контейнер MP4 вместе со звуком (я не уверен, что G711 поддерживается браузерами, я сомневаюсь в этом, поэтому звук может потребоваться перекодировать). ). Бесплатный вариант — настроить FFmpeg для перекодирования rtsp в фрагментированный MP4 (есть много примеров для этого, просто Google) или, если вы ищете коммерческий продукт, наша компания только что выпустила продукт для видеонаблюдения, который может предлагать потоковую трансляцию, совместимую с HTML5. с RTSP-камер. Если у вас есть интерес к коммерческому продукту, оставьте комментарий.

person Rudolfs Bundulis    schedule 07.04.2016
comment
Привет, наша проблема в том, что браузер не поддерживает аудиокодек G711, а шлюз, на котором находится поток, недостаточно силен для перекодирования чего-либо, и в нашем случае мы не могли добавить промежуточное программное обеспечение для этого с помощью ffmpeg или чего-то подобного. Что делает ваш продукт для видеонаблюдения? - person Michael Burger; 08.04.2016
comment
Поскольку я полностью за открытый исходный код, и моя главная цель - не рекламировать наш продукт, а дать полезный ответ - может быть, вы можете рассказать некоторые подробности о промежуточном программном обеспечении FFmpeg? Что значит не удалось добавить - вы просто не смогли настроить FFmpeg или использование FFmpeg запрещено? Что касается нашего продукта — в настоящее время наши потоки HTML5 содержат только видеодорожки (аудио появится в ближайшие несколько месяцев, нам нужно выбрать кодек и т. д.), но аудио очень близко к нашей дорожной карте. Если вас интересует ознакомительная версия, свяжитесь со мной по адресу [email protected]. - person Rudolfs Bundulis; 08.04.2016
comment
Я включил запасной вариант для flashplayer, и у нас есть намерение включить webRTC, который также поддерживает аудиокодек G711, поэтому нам не пришлось выполнять транскодирование или трансмуксирование на стороне сервера. Чтобы лучше объяснить нашу проблему, наш сервер — это не настоящий сервер, а МАРШРУТИЗАТОР на MIPS и 256 МБ ОЗУ, поэтому мы не можем транскодировать 10 потоков на маршрутизаторе. Спасибо - person Michael Burger; 20.04.2016
comment
@MichaelBurger интересно. Насколько я понял из этого ( bugs.chromium.org/p/ chromium/issues/detail?id=500605 ) Поддержка H.264 для webRTC в Chrome все еще находится в разработке — разве это не проблема? - person Rudolfs Bundulis; 20.04.2016