motion and vloopback 使用
這次主要測試與了解 vloopback 的作用並與 motion 整合。
vloopback 主要作用在於產生 stream pipe。一般情形我們的 usbcam 只能被一個程式使用,例如 motion 在跑的時候你就不能用 vlc 去擷取它,因為 motion 會佔住它的資源;vloopback 則會額外產生 stream pipe 做底層的資料轉送,就可以多出一個 device可以使用。
{{http://www.my-net.idv.tw/%7Ethomas/wp/wp-content/uploads/2007/05/vloopback_s.jpg
安裝
主要是參考 http://www.lavrsen.dk/twiki/bin/view/Motion/LoopbackDevice
從 video4linux loopback device 下載最新的 vloopback並進行解壓縮
cd /usr/local
tar -xvzf /path/to/vloopback-1.1-rc1.tar.gz
ln -s vloopback-1.1-rc1 vloopback
cd vloopback
開始編譯,編譯前要先準備 kernel-source 在 /usr/src/linux
下載 kernel source 並解壓縮到 /usr/src/
ln -s /usr/src/linux-2.4.18-4 /usr/src/linux
編譯vloopback
make
測試與使用
載入模組
insmod /usr/local/vloopback/vloopback.k
dmesg log
[17475576.028000] /usr/local/src/vloopback-1.0/vloopback.c: Video4linux loopback driver v1.0
[17475576.032000] /usr/local/src/vloopback-1.0/vloopback.c: Loopback 0 registered, input: video1,output: video2
測試
我們的環境中 video0 是實體介面,載入vloopback模組之後,video1是vloopback input 介面, 而 video2 是輸出的介面。因此我們可以用 effedtv 把 video0 的 stream 餵到 video1,供其他程式由 video2 使用資源。
effectv -vloopback /dev/video1 -device /dev/video0
vlc v4l:// :v4l-vdev="/dev/video2" :v4l-adev="/dev/dsp" :v4l-norm=3 :v4l-frequency=-1
如果 effectv 和 vlc 都有畫面出來表示成功。還有更多應用方式
用 effectv 擷取並用ffmpeg錄下來
effectv -vloopback /dev/video1 -device /dev/video0
ffmpeg -vd /dev/video2 -s 320x240 effect.mpg
在 motion 中,只要加入一個option
video_pipe -
就會幫你把 MJpeg 的畫面," - " 表示轉送到 free 的 vloppback resourc,當然也可以直接指定input device
video_pipe /dev/video1
參考資料:
ref. motion http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome
ref. vloopback
http://directory.fsf.org/vloopback.html, http://www.lavrsen.dk/twiki/bin/view/Motion/VideoFourLinuxLoopbackDevice
convert from Thomas blog post id 88 old convert log: ./142216/tag%3E2007%2005%20stream)
@2007 @05 @stream
Comments