Sziasztok!
Van egy FosCam FI8918W IP kamerám, valamint egy Raspberry Pi-m, amire rá van kötve egy 1 Tb-os HDD.
Az udvarról szeretnék éjszaki felvételt csinálni. A kamera szoftvere azt meg tudja csinálni, hogy x másodpercenként feltölt egy képet FTP szerverre. Én azonban videó-felvételt szeretnék.
Van-e olyan program, amivel be tudnám állítani Linuxon, hogy a kamera képét vegye fel, és nem kell hozzá grafikus felület?
- 2171 megtekintés
Hozzászólások
szerintem siman tudod pl. vlc-n keresztul a streamet tolni egy file-ba
t
- A hozzászóláshoz be kell jelentkezni
ffmpeg
- A hozzászóláshoz be kell jelentkezni
Néztem mind kettőt, tud is mind a kettő, de nem nagyon jöttem rá hogyan.
Amit tudok, hogy Windows alatt VLC-ben ha megnyitom a következő címet: http://IPADDRESS/videostream.asf akkor a VLC bekéri a felhasználónevet és jelszót, majd elkezdi a videó lejátszását.
Most az kellene, hogy konzolon hogy tudom megnyitni és videó fájlba menteni. Nézegettem a leírást, de nem igazán jöttem rá eddig.
- A hozzászóláshoz be kell jelentkezni
Valahogy így kéne mennie:
vlc http://username:password@ip/videostream.asf --sout="#std{access=file,mux=ps,dst=camera.mpg}"
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Valami nem stimmel. Fel kell tenni mpg kódolót? Néztem az apt-get mit talál mpg-re, de nem tudom kell-e valamelyik, és melyik. Vagy más probléma lehet? Azért cvlc-vel indítottam, mert az előző hibaüzenetben benne volt, hogy konzolos felületen cvlc-t használjak.
kisspepe@raspberrypi ~ $ cvlc http://felhasználónév:jelszó@192.168.1.110/videostream.asf --sout="#std{access=file,mux=ps,dst=/media/Munka/Movies/ejszaka.mpg}"
VLC media player 2.0.3 Twoflower (revision 2.0.2-93-g77aa89e)
[0x985fa0] inhibit interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0x985fa0] main interface error: no suitable interface module
[0xae99f0] main interface error: no suitable interface module
[0x976908] main libvlc error: interface "globalhotkeys,none" initialization failed
[0xae99f0] dummy interface: using the dummy interface module...
[0xaf80c8] mux_ps mux: Open
[0xaf80c8] main mux error: cannot add this stream
[0xaf91d0] main decoder error: cannot create packetizer output ( ms)
[0xaf80c8] main mux error: cannot add this stream
[0xa0c8d0] main decoder error: cannot create packetizer output (MJPG)
^C[0xaf80c8] mux_ps mux: Close
- A hozzászóláshoz be kell jelentkezni
Rég csináltam ilyet;)
Így?
cvlc --no-disable-screensaver --vout=dummy http://felhasználónév:jelszó@192.168.1.110/videostream.asf --sout="#std{access=file,mux=ps,dst=/media/Munka/Movies/ejszaka.mpg}"
Szerk.: közben még rájöttem hogy a transcode is hiányzik neki
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Sajnos még most sem jó.
Amúgy ha Windowsban felhasználónévvel és jelszóval adom meg a VLC-nek a webcímet, akkor is bekéri a felhasználónevet és jelszót.
kisspepe@raspberrypi ~ $ cvlc --no-disable-screensaver --vout=dummy http://felhasználónév:jelszó@192.168.1.110/videostream.asf --sout="#std{access=file,mux=ps,dst=/media/Munka/Movies/ejszaka.mpg}"
VLC media player 2.0.3 Twoflower (revision 2.0.2-93-g77aa89e)
[0x1010038] inhibit interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0x1010038] main interface error: no suitable interface module
[0x1178f28] main interface error: no suitable interface module
[0x1000908] main libvlc error: interface "globalhotkeys,none" initialization failed
[0x1178f28] dummy interface: using the dummy interface module...
[0x1181f50] mux_ps mux: Open
[0x1181f50] main mux error: cannot add this stream
[0x1182a20] main decoder error: cannot create packetizer output ( ms)
[0x1181f50] main mux error: cannot add this stream
[0x10969b8] main decoder error: cannot create packetizer output (MJPG)
^C[0x1181f50] mux_ps mux: Close
Feltettem a transcode-ot
- A hozzászóláshoz be kell jelentkezni
Még nem sikerült megoldást találnom. A hibaüzenetből lényegében ami érdekes az a következő:
[0x1181f50] mux_ps mux: Open
[0x1181f50] main mux error: cannot add this stream
[0x1182a20] main decoder error: cannot create packetizer output ( ms)
[0x1181f50] main mux error: cannot add this stream
[0x10969b8] main decoder error: cannot create packetizer output (MJPG)
[0x1181f50] mux_ps mux: Close
A többi hibaüzenet az csak azért van ha jól gondolom, mert nincs grafikus interface.
Próbáltam több parancsot is, amiket a neten találtam leírásokba, de nem működött egyik se.
- A hozzászóláshoz be kell jelentkezni
próbáld meg a fentebb már említett ffmpeg -et vlc helyett
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
ffmpeg-el a felvétel már működik. Kicsit mintha szaggatna, de jó lesz. Viszont ha VLC-ben megnyitom a videót, akkor van hangja is, ugyanis a kamerának van mikrofonja. Az ffmpeg felvételen viszont nincs hang.
A felvételt a következő paranccsal indítom:
kisspepe@raspberrypi ~ $ ffmpeg -i http://felhasználónév:jelszó@192.168.1.110/videostream.asf -r 30 -vcodec copy -an /media/Munka/Movies/udvar.mp4
ffmpeg version 0.8.17-6:0.8.17-1+rpi1, Copyright (c) 2000-2014 the Libav developers
built on Mar 25 2015 00:39:58 with gcc 4.6.3
The ffmpeg program is only provided for script compatibility and will be removed
in a future release. It has been deprecated in the Libav project to allow for
incompatible command line syntax improvements in its replacement called avconv
(see Changelog for details). Please use avconv instead.
[asf @ 0x16df660] max_analyze_duration reached
[asf @ 0x16df660] Estimating duration from bitrate, this may be inaccurate
Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 25.00 (25/1)
Input #0, asf, from 'http://felhasználónév:jelszó@192.168.1.110/videostream.asf':
Duration: N/A, start: 0.000000, bitrate: 32 kb/s
Stream #0.0: Video: mjpeg, yuvj422p, 640x480, 25 tbr, 1k tbn, 1k tbc
Stream #0.1: Audio: adpcm_ima_wav, 8000 Hz, 1 channels, s16, 32 kb/s
File '/media/Munka/Movies/udvar.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to '/media/Munka/Movies/udvar.mp4':
Metadata:
encoder : Lavf53.21.1
Stream #0.0: Video: mjpeg, yuvj422p, 640x480, q=2-31, 1k tbn, 1k tbc
Stream mapping:
Stream #0.0 -> #0.0
Press ctrl-c to stop encoding
frame= 458 fps= 6 q=-1.0 Lsize= 8058kB time=96.68 bitrate= 682.8kbits/s
video:8051kB audio:0kB global headers:0kB muxing overhead 0.093291%
Received signal 2: terminating.
- A hozzászóláshoz be kell jelentkezni
ffmpeg-el jelenleg ott tartok, hogy a következő parancs:
ffmpeg -i input -s 640x480 -r 25 -b:0 1500k -vcodec:0 libx264 -acodec:1 libmp3lame -b:1 256k output.mkv
Elkezdi felvenni a videót és a hangot. A fájl mérete folyamatosan növekszik. Ha Ctrl+c-vel leállítóm (kétszer kell ctrl+c-t nyomni), majd megnézem a videót, a VLC nem tudja megállapítani a videó hosszát, és kb. fél percet játszik le.
Hogy miért arra még nem jöttem rá. Valakinek van ötlete mi lehet a gond?
- A hozzászóláshoz be kell jelentkezni
A tippem az lenne, hogy nincs meg a 25 frame / sec (hanem ennél kevesebb és ezért tűnik szaggatósnak), így nem kerül be annyi frame, mint amennyinek lennie kéne
Próbáld ki 10-el teszteléskén
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
zoneminder
- A hozzászóláshoz be kell jelentkezni
egy kamerához ágyúval verébre, de amúgy én is ezt preferálom
- A hozzászóláshoz be kell jelentkezni
ejszakai felvetelhez mit hasznalsz?
Pi noir camerat infra ledekkel? Ha igen milyen infra ledeket hasznalsz? Amit en probaltam, az kb. 3 meterre vilagitott wl csak.
Pl. feszket megfigyelni jo, de egy kapubeallot mar nem.
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
Mivel látom hogy fabrikálnál is hozzá, ebay/aliexpress -en lehet venni 50-100W infrared led-eket, meghajtóval. Ezt megfelelő hűtőborda keretében bele lehet tenni egy fényvető házába
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Lényegében az alapprobléma megoldódott az ffmpeg-el.
A bash script amivel felveszek a FosCam FI8918W IP kamerámról, a következő:
#!/bin/bash
#Videó felvétel készítése Foscam-al
#Videó fájl neve
name="`date +%Y-%m-%d_%H.%M`.mkv"
#Felvétel helye
RECpath='/media/Munka/Movies/Kamera/'
#Kamera képének elérése
kamera='http://felhasznalonev:jelszo@kamera_ip_cime/videostream.asf'
#Felvétel indítása
ffmpeg -i $kamera -t 20:00:00.000 -s 640x480 -r 30 -vcodec copy -acodec copy $RE
Ez 20 órányi anyagot vesz fel a kameráról. Még kísérleteztem azzal, hogy időbélyeget tegyek a videóra, de ez eddig még nem sikerült a talált leírások alapján.
- A hozzászóláshoz be kell jelentkezni
http://einar.slaskete.net/2011/09/05/adding-time-stamp-overlay-to-video…
nem letezik, hogy FOScam a gyarto neve... :))
Gondolom kellene meg szoftveres mozgaserzekeles is.
Nekem van egy ilyen szkriptem, ami thumbnaileket general egy videobol (majd abbol egy gyorsitott videot), ahol mozgas volt.
Ime:
lamer@lamerorszagban:/mnt/dug/100HDDVR/20150221-1218$ cat extract_short.sh
#! /bin/bash
# F="MINI0820.MOV";
# 20120107-2105--20150221-1218
CWD=$(pwd)
TMP=${CWD%%/}/TMP
mkdir $TMP
rm $TMP/scenes*
((j=1))
for F in MINI*; do
rm $TMP/scenes-0.05a.txt
ffprobe -show_frames -of compact=p=0 -f lavfi \
"movie=$F,select=gt(scene\,0.05)" | \
sed -r 's/.*pkt_pts_time=([0-9.]{8,})\|.*/\1/' >> \
$TMP/scenes-0.05a.txt
FOO=()
while read p; do
FOO+=($p)
done <$TMP/scenes-0.05a.txt
FOO2=()
((k=0))
for i in "${!FOO[@]}"; do
if [ $i -gt 0 ]
then
diff=$(echo "scale=6;a=${FOO[$i]}-${FOO[$k]};if (a > 1.5) 1 else 0" |bc -l)
echo "diff: $diff"
if [ $diff -gt 0 ]
then
((k=i))
FOO2+=(${FOO[$i]})
fi
else
FOO2+=(${FOO[$i]})
fi
done
echo -e "\n\nFOO2\n\n"
for i in "${!FOO2[@]}"; do
printf "%s\t%s\n" "$i" "${FOO2[$i]}"
t_start=$(echo "scale=6;a=${FOO2[$i]}-0.5;if (a > 0) a else 0" | bc)
# I don't know why, but -t 0.2 equals 6 frames. Which is about 1.5sec @5fps
if [ $t_start -eq 0 ]
then
echo "ffmpeg -i $F -vf transpose=1 -vframes 1 -ss $t_start $TMP/pout-$(printf %06d $j)%02d.png" >>$TMP/scenes-0.05b.sh
else
echo "ffmpeg -i $F -vf transpose=1 -vframes 1 -ss $t_start $TMP/pout-$(printf %06d $j)%02d.png" >>$TMP/scenes-0.05b.sh
fi
((j=j+1))
done
done
chmod 755 $TMP/scenes-0.05b.sh
$TMP/scenes-0.05b.sh
((j=0))
cd $TMP
for i in pout*; do
((j=j+1))
mv $i output-$(printf %06d $j).png
done
cd $CWD
ffmpeg -framerate 5 -i $TMP/output-%6d.png -c:v libx264 -r 30 -pix_fmt yuv420p preview.mp4
Anno egy napot elpocsoltem vele, mire osszehoztam.
Nem tul egyertelmu az ffmpeg itt-ott...
Ezt ha negyedorankent uj fajlba mentened (file-20150730-1530.mkv), akkor lehetne naponta egy tomoritette mozgaserzekelost csinalni, es a fajlokat kukazni.
Nalam 720p-ben 2.5 nap fer fel 32GB-ra. Mozgaserzekelessel megszurve 56MB ugyanez a 2.5 nap.
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni