И еще о потоковом видео
Feb. 28th, 2021 12:06 pmПоигрался с трансляцией посредством vlc
Вот такая командная строка
cvlc v4l2:///dev/video0 :v4l2-standard= :input-slave=alsa://hw:1,0 :live-caching=300 \
:sout=#transcode{vcodec=VP80,vb=2000,acodec=vorb,ab=128,channels=2,samplerate=44100,scodec=none} \
:http{dst=:8080/stream.webm}
Картинку показывает и звук передает и даже с более-менее правильным количеством кадров. Но почему-то изображение на экране браузера отстает от моих действий перед экраном почти на минуту. Что для дверного глазка неприемлемо.
И это не на Rasberry Pi, а на десктопе. Впрочем, принципиальной разницы в производительности между Raspberry Pi 4 c 8Гб и десктопом 2013 года выпуска, пожалуй, нет. Ну в два, ну в три раза.
Пробовал файрфокс десктопный, файрфокс мобильный и chromium десктопный.
Как это встраивать в html-5 страничку более-менее понятно. Но может быт все же раздавать надо не по http, а по rtsp? Лучше бы, конечно через WebRTC, но поди найди в документации на VLC умеет он такое или нет.
no subject
Date: 2021-02-28 01:30 pm (UTC)no subject
Date: 2021-02-28 04:30 pm (UTC)no subject
Date: 2021-02-28 05:20 pm (UTC)Скорее по RTP. RTSP потребует дополнительных телодвижэний, и потэнцыально добавит к нему добавит перемотку, которой всё равно у тебя нет.
no subject
Date: 2021-02-28 05:23 pm (UTC)Слава КПССWebRTC -- это вроде вообще не протокол. Он там в подложке SDP/RTP кажэтся использует, а в остальном -- это набор интэрфейсов к javascript для отправки микрофонов и камер в SDP/RTP.а может, это браузер был?
Date: 2021-03-01 03:31 am (UTC)Re: а может, это браузер был?
Date: 2021-03-01 04:19 am (UTC)Может. Но ведь jitsy умудяется как-то его от этого отучить.
Re: а может, это браузер был?
Date: 2021-03-01 02:27 pm (UTC)Кстати, тот низкоуровненвый способ с транслированием видео на порт (mencoder + nc) насколько я помню, приводил к задержке в 10 секунд. Но это было давно и на слабом Asus EEE с процессором Intel Atom.
no subject
Date: 2021-03-01 11:48 am (UTC)no subject
Date: 2021-03-01 12:04 pm (UTC)Ну вопрос не в том, как транслировать видеопоток по rtp или rtmp, а в том как потом это в браузере принять. Чтобы оно средствами HTML5 корректно отобразилось во всех возможных браузерах.
no subject
Date: 2021-03-01 10:39 pm (UTC)Но вообще DASH и плееры для него придумали не просто так, я бы в его сторону копал.
no subject
Date: 2021-03-02 06:25 am (UTC)Серверу мозги не потребуются. В атрибуте src тэга video указывается URL. Соответственно, что по этой URL сервер отдает, то браузер и покажет. И никаких файлов, ни статических, ни якобы статических там и рядом не стояло.
Другое дело, что браузер URL-схемы rtp: и rtsp: в этом месте почему-то не понимает.
no subject
Date: 2021-03-03 05:00 am (UTC)Я недавно пробовал стриминг с ffmpeg на MediaPlayerClassic. Путем плясок с бубном и тонких настроек сервера и клиента задержку удалось уменьшить до 15 секунд (с 80% вероятностью, что клиент не затупит и не тормознется до 45 секунд).
Пришлось признать, что контейнерно-поточные технологии передачи видео созданы не для реального времени.
Я давно на андроиде игрался с IP Webcam, там был MJPEG, насколько я помню - с минимальной задержкой.
no subject
Date: 2021-03-18 09:19 am (UTC)no subject
Date: 2021-03-18 04:04 pm (UTC)У скайпа своя проприетарная технология, и, подозреваю, что она отличается от mpeg или mkv настолько же, насколько, скажем C++ отличается от Java.
В open source есть, например, Jitsi. Но я его устройством не интересовался, сказать ничего не могу.