« Отговор #140 -: Jun 16, 2015, 17:00 »
Покрай моите занимания с домашното видеонаблюдение и OpenCV имам известни наблюдения върху HTML5 <video> елемента - пълна каша е все още, в средата на 2015. Има няколко масово използвани формата - OGG Theora, H264 и webm. С изключение на chrome и то относително нова версия на последния, няма браузър който да подържа всичките и няма компромисен вариант който да се подържа от всички, следователно уеб сървъра трябва да може да сервира няколко версии на видеото в различни формати. Отделно понякога има и проблеми дори с подържани формати, макар че последните вероятно не са на браузъра а на библиотеките които ползва. В някои браузъри, видеото се подържа, но seek-ването не работи и се предлагат някакви безумни workaround-и, въобще не им е лесно на хората дето пишат неща като vbox7. Това е за плейване на видеофайлове, live стрийминга е съвсем различна боза, защото видеофайлът обикновено си има хедър в началото или в края, който съдържа информация за видеопотока - дължина, fps и т.н.
Live стриймовете обяснимо няма как да имат такъв хедър с необходимата информация и там вече кочината става пълна - каквото и както и да го направиш, ако въобще сработи с html5 video е чист късмет. На мен наличните ми варианти бяха в общия случай да стриймвам rtmp и да го плейвам с flash плеър (отврат), да се боря с безумия (опитах, бързо се вразумих). Накрая отебах тези опити и тръгнах да сервирам mjpeg, което не е истинско видео и естествено не подържа звук (и дори отделно да стриймваш аудио, синхронизацията между видео и аудио е невъзможна) - но пък за видеонаблюдение, синхронизирано аудио не трябва особено. Но дори и това е проблемно, защото никое IE не подържа mjpeg. За IE решението е едно прокси, което от mjpeg-а вади отделни кадри и картинката с javascript презарежда постоянно въпросния изход от проксито.
HTML5 <audio> елемента апропо не е много различна история - пълна боза.
За мен е просто учудващо как youtube са успяли да го постигнат това, работи достатъчно добре и ми е чудно на цената на какви саможертви (разхищение на дисково пространство и изчислително време най-малкото).
Иначе chrome най-добре се справя с тази задача, определено.