Teoreticky je to jedoduche - RTSP/MJPEG pomoci ffmpeg prelozit na RTMP; nacpat RTMP na youtube.com; na webu mit youtube-live prehravac. Kompatibilita ruznych rychlosti linek a zarizeni maximalni.
Ja aktualne skoncil a tom prekladu RTSP/RTMP a aktualne a to nemam vic casu. Jednoduse semi zatim nepodarilo kombinaci ffmpeg+Youtube uchodit. Ale bude to jen otazka vice investovane casu.
BTW: Alternative lze udelat to (mel jsem to tak nejakou dobu), ze kazdou sekundu skript cte nahled z kamery a uklada ho a webserver jako neco.temp a kdyz to ma hotove, tak toprejmenuje na neco.jpg na ktery kouka html5 a co vterinu nacita obrazek novy.
BTW2: Zaklad je NIKDY, ale opravdu NIKDY, nevystavovat IP kameru primo na net.
Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz
Stream z IP kamery pro web
ověřeno a už cca více než rok v provozu na OrangePiOne (na OPi Zero to nejelo spolehlivě, jiný procesor H2 vs H2+)
nainstalovaný Rasbian pro Orange Pi, doinstalován ffmpeg a shellovým skriptem získávám ze streamu jpg, které posílám pmocí ftp na můj pronajatý webprostor, předtím ještě provádím ořez oblastí které nechci zveřejnit a doplňuji do obrazu text s teplotou vzduchu.
#!/bin/sh
# převod streamu na JPG
# na OrangePiOne
# výšení frekvence CPU
sudo cpufreq-set -d 960Mhz
sudo cpufreq-set -u 1010Mhz
sudo cpufreq-set -g ondemand
sleep 2
ffmpeg -i rtsp://10.0.0.51/user=jmeno_password=he ... ream=0.sdp -f image2 -vframes 1 -y /media/ramdisk/shot111.jpg
# rtsp://........ tvar se musím vložit podle konkrétní kamery, kamer může být i několik po sobě ukládaných do různých proměnných (aby to ARM v nastaveném cyklu postupně vše stíhal, zpracovat, já mám 4 IP kamery v cyklu 2 minuty a je tam ještě časová rezerva)
cd /media/ramdisk
#vložení textu do obrazu
ffmpeg -i /media/ramdisk/shot111jpg -y -vf "drawtext=textfile=t3.txt:fontcolor=white@1.0:fontsize=35:x=10:y=65:fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf:box=1:boxcolor=black@0.4:boxborderw=4" /media/ramdisk/shot112.jpg
#orezani obrazu - maska zakázených oblastí
convert /media/ramdisk/shot112.jpg -crop 1280x960-0-220 +repage /media/ramdisk/shot113.jpg
cd /home/doma
#odeslání souboru JPG na Jupitera
HOST='jupiter.abzone.cz'
USER=/user/
PASSWD=/heslo/
FILE1='shot111.jpg' #odeslani zachyceneho jpg
FILE2='shot112.jpg' #odeslani zachyceneho jpg + doplneny text
FILE3='shot113.jpg' #odeslani zachyceneho jpg + text + orezani oblasti
cd /media/ramdisk # prepnuti se adresar v Orange Pi kde jsou ulozeny v snimky ze streamu
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd /web/cam # prepnutí na adresar ve kterém budou na webserveru ulozeny obrazky
binary
put $FILE1
put $FILE2
put $FILE3
quit
END_SCRIPT
cd /home/doma
sudo cpufreq-set -d 240Mhz
sudo cpufreq-set -u 480Mhz
sudo cpufreq-set -g ondemand
exit 0
ffmpeg toho umí více, včetně ukládání streamu do videosouboru apod.
nainstalovaný Rasbian pro Orange Pi, doinstalován ffmpeg a shellovým skriptem získávám ze streamu jpg, které posílám pmocí ftp na můj pronajatý webprostor, předtím ještě provádím ořez oblastí které nechci zveřejnit a doplňuji do obrazu text s teplotou vzduchu.
#!/bin/sh
# převod streamu na JPG
# na OrangePiOne
# výšení frekvence CPU
sudo cpufreq-set -d 960Mhz
sudo cpufreq-set -u 1010Mhz
sudo cpufreq-set -g ondemand
sleep 2
ffmpeg -i rtsp://10.0.0.51/user=jmeno_password=he ... ream=0.sdp -f image2 -vframes 1 -y /media/ramdisk/shot111.jpg
# rtsp://........ tvar se musím vložit podle konkrétní kamery, kamer může být i několik po sobě ukládaných do různých proměnných (aby to ARM v nastaveném cyklu postupně vše stíhal, zpracovat, já mám 4 IP kamery v cyklu 2 minuty a je tam ještě časová rezerva)
cd /media/ramdisk
#vložení textu do obrazu
ffmpeg -i /media/ramdisk/shot111jpg -y -vf "drawtext=textfile=t3.txt:fontcolor=white@1.0:fontsize=35:x=10:y=65:fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf:box=1:boxcolor=black@0.4:boxborderw=4" /media/ramdisk/shot112.jpg
#orezani obrazu - maska zakázených oblastí
convert /media/ramdisk/shot112.jpg -crop 1280x960-0-220 +repage /media/ramdisk/shot113.jpg
cd /home/doma
#odeslání souboru JPG na Jupitera
HOST='jupiter.abzone.cz'
USER=/user/
PASSWD=/heslo/
FILE1='shot111.jpg' #odeslani zachyceneho jpg
FILE2='shot112.jpg' #odeslani zachyceneho jpg + doplneny text
FILE3='shot113.jpg' #odeslani zachyceneho jpg + text + orezani oblasti
cd /media/ramdisk # prepnuti se adresar v Orange Pi kde jsou ulozeny v snimky ze streamu
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd /web/cam # prepnutí na adresar ve kterém budou na webserveru ulozeny obrazky
binary
put $FILE1
put $FILE2
put $FILE3
quit
END_SCRIPT
cd /home/doma
sudo cpufreq-set -d 240Mhz
sudo cpufreq-set -u 480Mhz
sudo cpufreq-set -g ondemand
exit 0
ffmpeg toho umí více, včetně ukládání streamu do videosouboru apod.
0 x