
Rtsp stream přes web
Zdravím Vás.
Chtěl bych poprosit o pomoc
Mam doma IP kamery a už umím přehrat rtsp stream třeba ve VLC.
Zkoušel jsem ten rtsp stream přes VLC v prací a funguje to, takže v routru to mám ok.
Bych chtěl ty kamery na moji www na raspi.
Jak nejlepe na to?
https://stackoverflow.com/questions/2245040/how-can-i-display-an-rtsp-video-stream-in-a-web-page
Skoro dole.
<!--- BEGIN PLAYER --->
Player se mi vykresli ale žadný rtsp stream se nezobrazi.
A kousek výše je.
For the one I use, The following URL works:
rtmp://<IP_address>/flash/11:<username>:<password>
for example:rtmp://192.168.1.10:1935/flash/11:admin:admin
Já když to přehravám ve VLC tak zadavam první jmeno a heslo.
rtsp://admin:admin@xxx.xxx.xxx.xxx
Tu je něco podobneho.
https://www.svethardware.cz/forum/showthread.php/56654-Jak-na-stream-videa-z-IP-kamery-na-webovou-stranku
Co toto:
<video width="640" height="480" controls>
<source src="rtmp://192.168.1.10:1935/flash/11:admin:admin" type="video/mp4">
Your browser does not support the video tag.
</video>
To jsem zkoušel dat ten login dozadu.
Proč pořád zkoušíš to tvoje?
Embedit player je zastaralý a teď si nejsem jistý jestli nefunguje jen v internet exploreru.
Rady jsi už dostal.....
Aha, tak promin, jen lama s kmerou
Nebylo nalezeno zadné video s podporovanÿm formatem a typem MIME.
Protokol rtmp:// jak radil Flash_Gordon jsi zkusil a nefunguje?
ano
To je zvláštní.
Protože jak upozorňuje host máš tam mít protokol rtmp:// nikoliv rtps
A googlils?
https://github.com/Streamedian/html5_rtsp_player
demo
https://streamedian.com/demo/free/
Nějak se nedaři
Toto normalně funguje.
Toto ti normálně funguje proto, protože přehrávat soubor mp4 s AVC/h264 je naprostá trivialita.
RTSP je ale úplně něco jinýho.
Co to je za ip kamery? Nejde tam nastavit na výstupu něco jinýho než rtsp?
Nejde a nejedna se mi jen o jednu kameru.
Třeba mam 3 kousky Hikvision a take vim jak přehrat rtsp stream přs VLC.
To se neda nějak protahnout přes ffmpeg?
https://stackoverflow.com/questions/43018004/ffmpeg-encoding-for-html
Protahnout se to ffmpegem dá, však tu máš jednu z možných variant (přes HLS):
https://stackoverflow.com/questions/1735933/streaming-via-rtsp-or-rtp-in-html5
Pokud to muzete protahnout pres ffmpeg a chcete to mit na webu, tak nejlip tim ffmpegem generovat HLS stream - chunky a playlist. To je dle mne pro web nejrozumnejsi.
Googlim až se mi z klavesnice praši a nic.
Převest ten stream z kamery na disk přes ffmpeg do mp4 a pak to přehrat v tom HTML5 video playeru je brnkačka.
Ale jak na to, když to nechci ukadat na disk?
ffmpeg by měl jit použit i přes PHP.
https://trac.ffmpeg.org/wiki/PHP
ffmpeg by měl umět nejen video ukladat na disk, ale i streamovat ho do sitě,ne?
Ukladat musite - playlist a .ts chunky toho playlistu (playlist je dynamicky, obnovuje se s kazdym dalsim chunkem, a chunky se dle nastaveni taky prubezne mazou). Staci si na to udelat "RAM disk" vhodne velikosti = bude ukladat jen do pameti.
Jsem uplna lama, ale při googleni jsem se dočet, že PHP běží na servru a html, na ktere je ten HTML5 video playeru v počitači uživatele.
Takže když v php spustim ffmpeg a budu to streamovat do sitě, třeba tcp://192.168.1.41:5000
Tak když v tom HTML5 video playeru nastavim to same, mělo by to fungovat,ne?
PHP nepotrebujete, michate hrusky s jablky.
Na stroji ktery bude serverem HLS streamu (kde bude ffmpeg generovat potrebne) musi bezet nejaky webovy server, treba Apache nebo Lighttpd. Ffmpeg na serveru generuje playlist a chunky, takze to pak vypada treba nejak takhle: https://pc.poradna.net/files/88913-scrshit-pc2-01-15-20-at-01-42-pm-png
- v playlistu (tady mystream.m3u8) jsou pak odkazy na ty vytvorene chunky: https://pc.poradna.net/files/88914-image1-png
Na strane klienta - ve webovem prohlizeci pak otevrete jenstranku kterou mate vytvorenou na serveru. Na te strance si vlozite nejaky player s adresou playlistu - ja pouzivam Viblast (https://viblast.com/player/) - neni podminkou, moznosti je spousta.
Vysledek je pak takovyhle: http://zoo.peklo.biz/?page=cam6
Zdrojak pro webovou stranku - jen cast s prehravacem:
(po registraci na Viblastu, je i spousta jinych playeru, je na vas jaky popuzijete):
Snad je to takhle aspon trochu srozumitelne.
Ten Tvuj zpusob dava pěkně zahulit procesoru a to jsem testoval jen jednu kameru.
Tady je to, čeho chci dosahnout a take mu tam radi ten Tvuj zpusob.
https://video.stackexchange.com/questions/25390/ffmpeg-live-stream-into-a-browser-video-tag-localhost-only
Takto vubec nepoznan na procaku, že to běži.
ffmpeg -rtsp_transport tcp -i rtsp://admin:admin@192.168.1.250/11 -an -f mp4 -codec copy streamkamery.mp4
Jen nevim jak to poslat do sitě.
ffmpeg -rtsp_transport tcp -i rtsp://admin:admin@192.168.1.250/11 -an -f mp4 -codec http://192.168.1.222:8090
piše to At least one output file must be specified
Ten Tvuj zpusob dava pěkně zahulit procesoru
Dyť ten video stream nemusíš enkodovat .-)
Tady je to, čeho chci dosahnout
Máš tam napsané "The video tag does not support live streaming directly" furt nechápeš? Tak proč furt řešíš streamování? Jak se řeší streamování máš třeba tu:
https://flashphoner.com/7-ways-to-stream-rtsp-on-the-page/
Prvně jsem ti dal odkaz na metodu s využitím rtsp, tu jsi nedal.
Pak jsem ti dal odkaz na HLS, je tam jasně uvedené, že výstup je m3u8, tak proč neděláš m3u8?
Když prostě spustíš ffmpeg s vhodnými parametry a výstup je m3u8, tak ti to bude dělat aktualizovaný m3u8 playlist s ts soubory, ty staré se myslím i mažou, pokud to nastavíš, no a to m3u8 pak použiješ na webu v nějakém přehravači. Co na tom nechápeš?
Mimochodem máš tam "-codec" a neuvedený parametr kodeku... tak se nediv, že ti to háže chybu.
Toto jsi mi tu dal.
https://stackoverflow.com/questions/1735933/streaming-via-rtsp-or-rtp-in-html5
ffmpeg -rtsp_transport tcp -i rtsp://admin:admin@192.168.1.250/11 -an -c:v copy -c:a copy -bufsize 1835k -pix_fmt yuv420p -flags -global_header -hls_time 10 -hls_list_size 6 -hls_wrap 10 -start_number 1 /dev/shm/test.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:13
#EXTINF:10.080000,
test3.ts
#EXTINF:10.000000,
test4.ts
#EXTINF:10.000000,
test5.ts
#EXTINF:10.000000,
test6.ts
#EXTINF:10.000000,
test7.ts
#EXTINF:10.000000,
test8.ts
Jo dal, a taky tam je i další příspěvek a pokud jsi aspoň trošku rozumný, tak pak z toho sesmolíš třeba toto, jednoduchý příklad pro jednu volně dostupnou webku na rtsp:
A tedy, vytváří to m3u8 s 6 posledními ts po 10 sekundách a staré to maže. A stream to nepřevádí (neenkoduje), pouze remuxuje.
Tak zatím jsem to vyřešil jen s ukládáním na disk ale funguje to
Děkuji moc.
Jsem zjistil, že to vytížení procaku děla asi terminál na deskopu.
Když se připojím přes putty a spustím, tak mi raspi vrči na krásných 6% a to mi na něm ještě jede program, co mi řídi celý barák.
PS: nevíš náhodou jak spustit v terminalu příkaz tak, aby zůstal aktivní, i když ho vypnu.
Jsem to věděl ale roky jsou už tu a skleroza zezahali