Ez nem egy pörkölt recept, éppen vaskarikából szeretnék fát készíteni! Viccnek is rossz :(
Van egy pompás IP kamera a kezemben (1920x1080 30fps), viszont a streamhez RTP vagy RTCP formában lehet hozzáférni. Nekem van egy többé-kevésbé kész Linux alapú rendszerem ami nem IP kamerára lett felépítve, egy-egy kép feldobására.
A lényeg, hogy kell valami a Linux oldalon, ami a képes "levenni" a streamet és "kikockázni" azaz egy-egy képet lerakni belőle, valami emészthető formában (jpg, png).
Úgy látom, két eszköz jöhet szóba az mplayer vagy a vlc - X NINCS és nem is lehet, csak konzol. A vlc tűnik a legígéretesebbnek.
1. Kérdőjel, vajon a Squeeze -ben lévő vlc-nox képes arra hogy leszdjen egy rtp streamet? Ha nem, szabad-e próbálkozni a VLC forrásból fordításával - nem tűnik egy egyszerű kis programnak.
2. Azt értem, hogy a vlc képes rtp streamet leszedni vagy generálni, viszont tud-e kockára szeletelni?
- 1866 megtekintés
Hozzászólások
"Ha nem, szabad-e próbálkozni a VLC forrásból fordításával - nem tűnik egy egyszerű kis programnak."
- én anno forrásból tettem mindig a friss vlc-t a debian stabilra, nem volt gondom vele - ha a kérdés erre vonatkozott...
--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség
- A hozzászóláshoz be kell jelentkezni
Köszönöm a megerősítést!
Az egyik igen. Az utóbbi időben több csomagot is kénytelen voltam forgatni (busybox, ffmpeg stb.) De itt komolyabb függőségekre számítok, különösen az X hiánya miatt.
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
a fordításnál úgy is kiírja hogy mi kéne neki, ha ezt nem akarod pótolni (nincs rá szükséged), akkor tiltsd le.
--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség
- A hozzászóláshoz be kell jelentkezni
apt-get build-dep vlc-nox ?
___
Blogom
- A hozzászóláshoz be kell jelentkezni
Ezt még sosem próbáltam.
man apt-get
build-dep
build-dep causes apt-get to install/remove packages in an attempt to satisfy the build dependencies for a source package.
Ez most mire is jó? A "source package" a Debian source package vagy bármilyen forrás csomag? Mennyiben különbözik ez a vlc-nox bináris csomag telepítésétől? Vagy mennyiben segít ez a szerzői stabil verzió forgatásában?
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
A source lefordításához szükséges függőségeket telepíti. Ezek után már nem fog hibát dobni a configure.
- A hozzászóláshoz be kell jelentkezni
vagyis kb. futtat egy configure-t a source-on és a függőségeket kigyűjti, majd telepíti (sose használtam)?
--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség
- A hozzászóláshoz be kell jelentkezni
logika szerint megnezi, hogy a binaris csomag mire dependal, es azoknak a -devel csomagjat felpakolja.
- A hozzászóláshoz be kell jelentkezni
aham, akkor ezzel nem nagyon vagyunk kint a vízbűl :)
--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség
- A hozzászóláshoz be kell jelentkezni
Hát egy rendszeridegen program függőségeit nyilván nem ismeri, csak olyat, amit csomagból is feltehetnél.
- A hozzászóláshoz be kell jelentkezni
pedig egy configure lefuthatna és ami függőség, azt szépen kigyűjthetné a repókból. ehhh, sose használtam, de nem is kellett...
--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség
- A hozzászóláshoz be kell jelentkezni
De most ez ugye a Debian source packet -re vonatkozik? Egy akármilyen source csomagból, hogy szedné elő a függőségeket?
Akkor viszont mi értelme a fordításnak? Más opciók? De ha más opciók, akkor más függőségek ... Kis elefánt nem látom a hasznot :(
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
elvileg nem, hiszen az apt-get kezeli a függőségeket amúgy is.
--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség
- A hozzászóláshoz be kell jelentkezni
openrtsp + ffmpeg
openrtsp egyszerűen fordítható
- A hozzászóláshoz be kell jelentkezni
Addig rendben lenne, ha az openrtsp, csinál egy fájlt amit az ffmpeg olvas és kockákat csinál. Viszont itt folyamatosan dől a stream.
Tudok olyat mondani az openrtsp -nek mondani, hogy ennyit csináljon, állj, ffmpeg kockáz, openrtsp újraindul ... ? Mindezt 1-3 másodperces ciklusban?
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
Hasonlót csináltam openrtsp + ffmpeg + timelimit hármassal, igaz, ott 30 másodperces frekvenciával. Timelimit is könnyen fordítható más procra.
- A hozzászóláshoz be kell jelentkezni
mplayer -nosound -vo png -frames 1 -ss <időköz>
nem teszteltem, de valami ilyen rémlik.
---------------------------------------------------------------------------------------
Unix is simple. It just takes a genius to understand its simplicity. — Dennis Ritchie
- A hozzászóláshoz be kell jelentkezni
Na most van gáz! A windows vlc nem tudja megnyitni a beállított porton a streamet - miért, ki tudja.
A Debian vlc-nox -ba úgy tűnik nem fordították be az rtp-t :(
(még megnézem a Debian vlc X alól), aztán valami más kerülőt kell találnom :( De hogy miért nem megy az nagy kérdés!
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
egy teszt linket adjál már, hagy próbáljuk mi is...
--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség
- A hozzászóláshoz be kell jelentkezni
Az biztos segítene, de ...
A nmap ezekt a portokat látja nyitva:
Starting Nmap 4.62 ( http://nmap.org ) at 2011-07-02 15:25 CEST
Interesting ports on 172.16.3.2:
Not shown: 1707 closed ports
PORT STATE SERVICE
21/tcp open ftp
23/tcp open telnet
111/tcp open rpcbind
513/tcp open login
514/tcp open shell
554/tcp open rtsp
5000/tcp open upnp
10082/tcp open amandaidx
Nmap done: 1 IP address (1 host up) scanned in 0.210 seconds
és a tshark, nyugalmi állapotban ilyen csomagokat lát:
0.000000 172.16.3.2 -> 239.255.255.250 SSDP NOTIFY * HTTP/1.1
0.100211 172.16.3.2 -> 239.255.255.250 SSDP NOTIFY * HTTP/1.1
0.200494 172.16.3.2 -> 239.255.255.250 SSDP NOTIFY * HTTP/1.1
0.301393 172.16.3.2 -> 239.255.255.250 SSDP NOTIFY * HTTP/1.1
0.402150 172.16.3.2 -> 239.255.255.250 SSDP NOTIFY * HTTP/1.1
ami a címből ítélve multicast.
Ráadásul, a teszt környezetben egy második (a netről nézve) nat mögött csücsül - nehézkes.
szerk:
Egyébként, az ftp -vel "benéztem" a fájlrendszerébe, az egész látszik, még nem próbáltam "belefirkálni" - nem kizárt hogy lehet, hiszen "firmware" -t lehet frissíteni.
szerk:
Elvileg tud rtps/multicast lenni - ha bekapcsolom, akkor az ie felület nem tud csatlakozni ...
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
ugyan hadd má'! (ott a pont :))
--
"Nem akkor van baj amikor nincs baj, hanem amikor van!"
Népi bölcsesség
- A hozzászóláshoz be kell jelentkezni
Sikerült nagyot lépni előre :D
openRTSP - csont nélkül fordul a Debian Squeeze amd64 -en.
Sikerült kapcsolatot teremteni a kamerával, egyedül a pufferen kellett állítani - mjpeg miatt (a legnagyobb felbontásnál nem tudja a h.264 -et).
Miután itt sikerült "kitalálni" a stream url -t (a kézikönyvben csak a multicasthoz van leírva), a windows vlc -t is sikerült beindítanom.
Az openRTSP framenként is tud menteni ... csak azt nem tudom ez milyen formátum, és azzal mit tudok kezdeni?
szerk:
Jó :( A frame az a streamen belüli framekre vonatkozik, azaz ha több frame jön egy streamen belül?
Mindegy, a kockázáshoz megpróbálom ffmpeg -et.
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
megoldás 1.
#!/bin/sh
#
SLICE1_FILE=slice1.mjpeg
SHOT1_FILE=shot1.jpg
LOG_FILE=grab-err.log
#
openRTSP -u tovis tovis -vm -b 1000000 rtsp://172.16.3.2/mjpeg >$SLICE1_FILE 2>$LOG_FILE &
SLICE1_PID=$!
sleep 1
kill -HUP $SLICE1_PID
#
ffmpeg -i $SLICE1_FILE -vframes 1 -an -s 1920x1080 $SHOT1_FILE >>$LOG_FILE 2>&1
Ami még piszkálja a csőrömet, hogy ha az output fájl mpeg (szerintem ez a helyes, ezt ismeri fel a windows is) akkor nem készül snapshot :( Hiába teszem be a -i $SLICE1_FILE -vcodec mjpeg opciót, hibásnak veszi a fájlt az ffmpeg?
Mindenesetre ha a kiterhjesztés mjpeg akkor zöld :D
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
A kamerád multipart jpeg-et tol nem mpeg-et. Egy néhány tíz bájtos ascii header után jön egy jpeg kép. Ez ismétlődik.
- A hozzászóláshoz be kell jelentkezni
És akkor hiába teszem be hogy -vcodec mjpeg?
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
ffmpeg [input options] -i [input file] [output options] [output file]
Hová teszed be? A -i elé vagy mögé?
De ha jól emlékszem, akkor nincs is rá szükséged, hiszen az openrtsp kimenete mjpeg, amelyből vagy ffmpeg-gel vagy egy egyszerű saját progival kiemelsz egy jpg képet. Az mjpeg-be ha belekukkantasz látnod kell a mime típust, pl.: 'multipart/x-mixed-replace; boundary=[valami]', esetleg még egy 'size' sort is. A [valami] értéke kamera specifikus, általában a vonatkozó api-ban definiálják (pl. axis esetén a http api-ban). A 'size' küldése általában a kamera beállításától függ, ki- vagy bekapcsolható. A header után azonnal jön egy jpeg kép, majd újra a mime, majd kép, ...
Megoldás lehet még, hogy az openrtsp standard kimenetét küldöd az ffmpeg bemenetére és bitstream filterrel (-bsf) néha kiemelsz egy képet a folyamból. Darabolhatsz mime alapján vagy a jpeg SOI, EOI alapján.
- A hozzászóláshoz be kell jelentkezni
Hát mögé (én is csodálkoztam, de mindenütt amit láttam példa az ilyen volt).
Egyenlőre ez a megoldás megteszi, majd inkább a streamet kell használni, itt és most szimplán csak van egy kupac kész dolog, és ahhoz kellet illesztenem ezt. Majd még jobban körüljárom.
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni