Я сам с полгода назад задался целью сменить свой велосипед на mjpeg'ах на другой велосипед, который не будет вешать текущий браузер (дело в том, что в mjpeg-потоке браузер не удаляет уже ненужные кадры, поэтому каждую минуту-две приходится iframe, в котором находится отображальник видео, перегружать).
Итак, ситуация до сих пор плачевная: ничего нативного просто не существует. Есть webRTC, но там темно, как в танке.
Поэтому я начал велосипедить видеопоток на вебсокетах. Получил порядка 7 кадров в секунду (опять-таки, из-за того, что браузеры не умеют отображать блобы в img, поэтому приходится кодировать/декодировать в base64). Для моей задачи этого за глаза хватит (нужно 1-5 кадров в секунду + выполнение простых действий), и я смогу "малинку" использовать как управлялку железякой.
Если вам нужно пошустрей, то где-то в пределе 15 кадров в секунду на 640x480 вам помогут mjpeg'и. Только не забывайте перезагружать iframe.
Да, естественно, оба способа не подразумевают наличие звука. Играть звук вне тегов или браузеры еще не умеют. Поэтому идея потокового видео со звуком в режиме реального времени пока что не реализуема никак. Пишите standalone приложение.
К сожалению, подключить к браузеру вызов mplayer для просмотра потокового видео (скажем, в отдельном iframe) не получится, т.к. у вас не будет обратной связи. Возникнут проблемы, если сеть не будет справляться с потоком.