Realtime videorögzítés, közben látható képpel

Fórumok

Sziasztok!

Az lenne a kérdésem, hogy milyen programmal / szkripttel lehet(ne) megoldani, hogy egy tunerkártyára kötött videókamera képét egyszerre nézni is tudjam és menteni is. A mentés formátuma kb mindegy, mert webes felületre megy majd (ergo nem kell valami fantasztikus minőség). Sebesség szempontjából lehet tömörítve sem lesz először, szabad hely van bőven (ellenben a gép, amin futnia kéne, "csak" egy 1.6-os Celeron). Minden segítséget előre is köszönök!

Hozzászólások

Szia.

Sajna segíteni nem nagyon tudok, de én is keresek ilyen programot, szóval, ha valaki tud, segítsen! Ez egy nagy hiányosság linux alatt, má$ rendszerek alatt meg teljesen természetes, hogy így müködik :(...

<= Powered By Ubuntu & Gentoo Linux =>

'Software is like sex: It's better when it's free!'
By Linus Torvalds

vlc

Core2Duo T7100, 2.5G, Ubuntu 8.04, 2.6.27.6

Értem, vagyis, szóval, akkor magyarul fut egyszer az mplayer, ami a stream-et nyomja a memóriába, majd a memóriából ezt a stream-et elő tudom venni és "lejátszani/megjeleníteni" az mplayer-el, és közben akár mencoder-el rögzíteni is?! Ha így van, nagyon ötletes! Kipróbálom!

<= Powered By Ubuntu & Gentoo Linux =>

'Software is like sex: It's better when it's free!'
By Linus Torvalds

Igen, így van.

Vagy működhet fordítva is: az mencoder folyamatosan rögzíti a videót, amire időnként rá lehet nézni mplayer-el.

Ez zárt láncú rendszerhez készült, ezért csak a képet osztja meg. Ha 4-nél több videó kamera képét kell rögzíteni (DVD méretben), akkor a video2mem programocskát (mplayer video grabber része erősen "kiherélve") érdemes használni, mert ez nem olvassa be az összes videó frame-et, mert különben előbb-utóbb csontra fagy a linux :(. Ekkor mind az mencoder mint az mplayer az osztott memóriából dolgozik.

Nagyon jók ezek a patch-ek az mplayer-hez! Gratulálok hozzá! Egy kérdésem lenne, az osd menu patch elég régi, lefordul az újabb mplayer-el? Vagy már része a hivatalos forrásnak? Ezek a patch-ek miért nem részei a hivatalos forrásnak? Hiszen, mind nagyon jó ötlet!

köszi

<= Powered By Ubuntu & Gentoo Linux =>

'Software is like sex: It's better when it's free!'
By Linus Torvalds

Ha kell frissítem az aktuális verzióhoz vagy az utolsó kiadáshoz.

Mindet beküldtem az mplayer-dev listára, a látható eredménnyel: a dvdnav és OSD menü részben, a teletext átdolgozva (zvbi nélkül) került beillesztésre. A színes OSD-vel a dvdnav-hoz és teletext-hez évek óta nem sikerül előre jutni :(. A video mixer-re igazából nem is reagált senki...

Próbálom patch-elni az mplayer-t, mai svn, de a cctv patch ilyet ír ki:

$ patch -p0 -i cctv
patching file configure
Hunk #1 FAILED at 259.
Hunk #2 succeeded at 712 with fuzz 2 (offset -1013 lines).
Hunk #3 FAILED at 1028.
Hunk #4 succeeded at 1793 with fuzz 2 (offset -1209 lines).
Hunk #5 FAILED at 6754.
3 out of 5 hunks FAILED -- saving rejects to file configure.rej
patching file mencoder.c
Hunk #1 succeeded at 115 (offset 2 lines).
Hunk #3 succeeded at 1389 (offset 20 lines).
patching file cfg-mencoder.h
Hunk #1 succeeded at 214 (offset -24 lines).
can't find file to patch at input line 166
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- stream/Makefile 2006-10-30 19:07:00.000000000 +0100
|+++ stream/Makefile 2006-10-30 22:32:31.000000000 +0100
--------------------------
File to patch:

Szerintem mióta a patch készült pár dolog megváltozott a forrásban, ki tudnád javítani?

köszönöm.

Amugy a video mixer pontosan mire jó? Mert nem igazán értettem az oldaladon :(.

<= Powered By Ubuntu & Gentoo Linux =>

'Software is like sex: It's better when it's free!'
By Linus Torvalds

Elég régi patch (2006-os). A héten frissítem az aktuális SVN verzióhoz.

A video mixer-t egy videó vágó program alapjául szántam (később valami GUI-t tenni mellé, hogy ne csak parancs sorból lehessen vezérelni), csak sajnos nem igazán láttak benne fantáziát :(.

Ez a verzió több videó file-t tud össze fűzni néhány effektel: alpha változtatásával elhalványolásra, a méret és a beillesztési ablak megadásával: pl. oldalról beúszásra vagy középről felnagyításra/összezsugorítása van lehetőség.
A hang import szűrő a videó file-ok hangját keveri össze, itt a hangerőt lehet változtatni pl.: egyik lehalkul közben a másik felerősödik.

Itt van egy minta, amelyben két file lett összefűzve:

http://onebithq.com/root/mplayer/videomixer/20071210

Előre is köszönöm a patch-et!

Sajnálom, hogy a video mixer-ben nem láttak fantáziát, mert szerintem nagyon jó kezdeményezés! És nem gondolkoztál rajta, hogy ennek ellenére folytatod a fejlesztését?

<= Powered By Ubuntu & Gentoo Linux =>

'Software is like sex: It's better when it's free!'
By Linus Torvalds

Frissítettem a patch-eket a jelenlegi r28053 verzióhoz:

http://www.onebithq.com/root/mplayer/videomixer/download/20081130

Ebből neked elég az első kettő (01-stream.patch és 02-filter.patch).

A kódolást végző mencoder-hez hozzá kell adni egy export filter-t:
mencoder [opciók] -vf export=1[,többi videó szűrő] [opciók]

Az éppen aktuálisan dekódolt képet így tudod megnézni:
mplayer shmem://1

Ami lényeges, hogy az export szűrőnek paraméterként adott szám ugyan az legyen, mint amire a lejátszáskor hivatkozol (pl.: itt "1").

Az export szűrő paraméterei:
export=memoryid[:fmt:w:h:osd]

memoryid - osztott memória azonosítója
fmt - exportált kép formátum (pl.: YV12, BGR24, stb)
w,h - exportált képkocka mérete (w - szélesség, h - magasság)
osd - 0: nincs felirat, 1: felirat átméretezés nélkül, 2: felirat átméretezéssel (exportált képkocka méretéhez)

Ha valakit érdekel, írtam két script-et a vlc-hez, egyik egy "varázsló" segítségével visz végig azon, hogy honnan mit vegyél fel, a másik, simán, indítás után, elkezdi a felvételt a script-ben definiált helyre és névvel (így nem kell kattintgatni, össze vissza a vlc-ben felvéltel előtt). Mivel tunerem (itt) nincs, webcam-hoz írtam, szóval, tunerhez, plusz adatok kellenek, de egyszerűen módosítható a script. Felvétel közben a kép látható! Létre lehet hozni akár több script-et különböző tv csatornákhoz, amelyekre kattintva, autómatikusan indul a felvétel az adott csatornáról, de a lehetőségek tárháza végtelen, hisz nem zárt rendszerről beszélünk ;). Ha valkit érdekel a script, beillesztem ide, vagy elküldöm! Nem nagy szám, de teszi a dolgát!

A CCTV-t is próbáltam, de nekem vmiért a mencoder nem képes felvenni a webcam-om mikrofonjáról, így sajnos, azt felejtős :(, minden esetre, hang nélkül tökéletes! Nem tudom, egyébként a CCTV a hang-ot is buffer-eli, vagy csak a képet?

<= Powered By Ubuntu & Gentoo Linux =>

'Software is like sex: It's better when it's free!'
By Linus Torvalds

:D, ok, nem fogom vissza magam :P.
Ez a script, gyakorlatilag kérdezés nélkül teszi a dolgát!


#!/bin/sh

# Felvétel WebCamról

DATE=`date +%F`
TIME=`date +%R`
OUT=`echo -n "$DATE"_"$TIME"`
VIDEO=/dev/video0
AUDIO=/dev/dsp1
WIDHT=640
HEIGHT=480
VBR=768
ABR=128
PTH=~/Videók/Webcam

echo "--------------------------------------------"
echo "A Script webcam képét rögzíti!"
echo
echo "Szükséges programok:vlc, bash ;)"
echo
echo "Használata: indítás után a videó a"
echo "~/Videók/Webcam alatt található, a neve"
echo "autómatikusan generálódik a dátumból"
echo "avi kiterjesztéssel!"
echo
echo "a script módosításával szerkeszthető:"
echo "webcam, audio eszköz helye, felbontás,"
echo "audió, videó bitráta, útvonal, fáljnév"
echo "--------------------------------------------"
echo "By nZperX 2oo8"
echo "--------------------------------------------"
echo Jelenlegi Dátum: "$DATE" "$TIME"
echo
echo "Kimeneti fájl neve: " "$OUT"
echo
echo "A felvétel bármikor megszakítható CTRL+C -vel"
echo "Vagy a VLC bezárásával"

/usr/bin/vlc --volume 0 v4l:// :v4l-vdev="$VIDEO" :v4l-adev="$AUDIO" :v4l-norm=3 :v4l-frequency=-1 :v4l-caching=300 :v4l-chroma="" :v4l-fps=-1.000000 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=$WIDHT :v4l-height=$HEIGHT :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 --sout "#transcode{vcodec=mp4v,vb=$VBR,scale=1,acodec=mp3,ab=$ABR,channels=1}:duplicate{dst=display,dst=std{access=file,mux=mp4,dst="$PTH/$OUT.avi"}}"

echo "Kilépés..."

exit 0;

<= Powered By Ubuntu & Gentoo Linux =>

'Software is like sex: It's better when it's free!'
By Linus Torvalds

És itt a másik, ami varázslóval visz végig, remélem másnak is hasznos lesz, rengeteg hasonló scriptet írtam már, szerintem praktikus ;):


#!/bin/sh

# Felvétel WebCamról

DATE=`date +%F`
TIME=`date +%R`

clear
echo "--------------------------------------------"
echo "A Script webcam képét rögzíti!"
echo
echo "Szükséges programok:vlc, bash ;)"
echo
echo "Használata: "
echo "indítás után kövesd az utasításokat..."
echo "--------------------------------------------"
echo "By nZperX 2oo8"
echo "--------------------------------------------"
echo Jelenlegi Dátum: "$DATE" "$TIME"
echo
echo "Jól meggondoltad? kilépés CTRL+C"
echo "A felvétel bármikor megszakítható CTRL+C -vel"
echo "Vagy a VLC bezárásával"
echo "Alapértelmezett paraméterek:"
echo "-------------------------------"
echo "Videó eszköz: /dev/video0"
echo "Audió eszköz: /dev/dsp1"
echo "Felbontás: 640x480"
echo "Audió bitráta: 128 kbps"
echo "Videó bitráta: 768 kbps"
echo "Mentési útvonal: ~/Videók/Webcam"
echo "Fájlnév: "$DATE"_"$TIME".avi"
echo "-------------------------------"
echo "Megfelel?"
echo "(1) Nem, magam adom meg"
echo "(2) Igen, felvétel indítása"
echo -n "Választás [2]: "
read def
if [ "$def" = "1" ]; then

clear
echo "-------------------------------"
echo "Videó eszköz helye?"
echo "(1) magam adom meg"
echo "(2) /dev/video0"
echo -n "Választás [2]: "
read vid
if [ "$vid" = "1" ]; then
echo -n "Eszköz helye: "
read viddev
if [ "$viddev" != "" ]; then
VIDEO=$viddev
fi
else
VIDEO=/dev/video0
fi

echo "-------------------------------"
echo "Audió eszköz helye?"
echo "(1) magam adom meg"
echo "(2) /dev/dsp1"
echo -n "Választás [2]: "
read aud
if [ "$aud" = "1" ]; then
echo -n "Eszköz helye: "
read auddev
if [ "$auddev" != "" ]; then
AUDIO=$auddev
fi
else
AUDIO=/dev/dsp1
fi

echo "-------------------------------"
echo "Felbontás?"
echo "(1) magam adom meg"
echo "(2) 640x480"
echo -n "Választás [2]: "
read felb
if [ "$felb" = "1" ]; then
echo -n "Vízszintes felbontás: "
read wid
if [ "$wid" != "" ]; then
WIDHT=$wid
fi
echo -n "Függőleges felbontás: "
read heig
if [ "$heig" != "" ]; then
HEIGHT=$heig
fi
else
WIDHT=640
HEIGHT=480
fi

echo "-------------------------------"
echo "Audió bitráta (kbps)?"
echo "(1) magam adom meg"
echo "(2) 128"
echo -n "Választás [2]: "
read abr
if [ "$abr" = "1" ]; then
echo -n "Bitráta: "
read myabr
if [ "$myabr" != "" ]; then
ABR=$myabr
fi
else
ABR=128
fi

echo "-------------------------------"
echo "Videó bitráta (kbps)?"
echo "(1) magam adom meg"
echo "(2) 768"
echo -n "Választás [2]: "
read vbr
if [ "$vbr" = "1" ]; then
echo -n "Bitráta: "
read myvbr
if [ "$myvbr" != "" ]; then
VBR=$myvbr
fi
else
VBR=768
fi

echo "-------------------------------"
echo "Mentési útvonal?"
echo "(1) magam adom meg"
echo "(2) ~/Videók/Webcam"
echo -n "Választás [2]: "
read pth
if [ "$pth" = "1" ]; then
echo -n "Útvonal: "
read mypth
if [ "$mypth" != "" ]; then
PTH=$mypth
fi
else
PTH=~/Videók/Webcam
fi

echo "-------------------------------"
echo "Fájlnév (kiterjesztés nélkül)?"
echo "(1) magam adom meg"
echo "(2) indítás dátuma"
echo -n "Választás [2]: "
read file
if [ "$file" = "1" ]; then
echo -n "Fájlnév: "
read filen
if [ "$filen" != "" ]; then
OUT=$filen
fi
else
OUT=`echo -n "$DATE"_"$TIME"`
fi

clear
echo "-------------------------------"
echo "Videó eszköz: $VIDEO"
echo "Audió eszköz: $AUDIO"
echo "Felbontás: $WIDHT"x"$HEIGHT"
echo "Audió bitráta: $ABR kbps"
echo "Videó bitráta: $VBR kbps"
echo "Mentési útvonal: $PTH"
echo "Fájlnév: $OUT.avi"
echo "-------------------------------"
echo "Megfelel? Folytatás ENTER"
echo "kilépés CTRL+C"
read key

else

OUT=`echo -n "$DATE"_"$TIME"`
VIDEO=/dev/video0
AUDIO=/dev/dsp1
WIDHT=640
HEIGHT=480
VBR=768
ABR=128
PTH=~/Videók/Webcam

fi

clear
echo "Felvétel indítása..."

/usr/bin/vlc --volume 0 v4l:// :v4l-vdev="$VIDEO" :v4l-adev="$AUDIO" :v4l-norm=3 :v4l-frequency=-1 :v4l-caching=300 :v4l-chroma="" :v4l-fps=-1.000000 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=$WIDHT :v4l-height=$HEIGHT :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 --sout "#transcode{vcodec=mp4v,vb=$VBR,scale=1,acodec=mp3,ab=$ABR,channels=1}:duplicate{dst=display,dst=std{access=file,mux=mp4,dst="$PTH/$OUT.avi"}}"

echo "Kilépés..."

exit 0;

<= Powered By Ubuntu & Gentoo Linux =>

'Software is like sex: It's better when it's free!'
By Linus Torvalds