2698
Ubuntu系统下源码安装MJPG-Streamer及使用
乐果 发表于 2017 年 10 月 27 日 标签:uvclinuxubuntu
一、获取源码及编译
$sudo apt-get install libjpeg-dev subversion imagemagick
$ svn checkout svn://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer-code
$ cd mjpg-streamer/mjpg-streamer
$ make clean all
二、运行
$ export LD_LIBRARY_PATH=.
$ ./mjpg_streamer -i "input_uvc.so -y -d /dev/video0" -o "output_http.so -w ./www"
想要查看视频,请在web页面中输入地址:http://127.0.0.1:8080
三、安装
如果需要安装该应用,执行以下指令:
sudo make DESTDIR=/usr install
四、可使用的分辨率
YUV2
1600×1200 5 fps
960×720 10 fps
800×600 25 fps
640×480 30 fps
352×288 30 fps
320×240 30 fps
176×144 30 fps
160×120 30 fps
MJPG
960×720 15 fps
800×600 30 fps
640×480 30 fps
352×288 30 fps
320×240 30 fps
176×144 30 fps
160×120 30 fps
示例一:
$ ./mjpg_streamer -i "input_uvc.so -d /dev/video0 -y -r 1600x1200" -o "output_http.so -w ./www"
示例二:
$ ./mjpg_streamer -i "input_uvc.so -d /dev/video0 -f 15 -r 960x720" -o "output_http.so -w ./www"
五、创建启动的脚本
#!/bin/bash
RESOLUTION="960x720"
FRAMERATE="15"
MJPG_WEB_ROOT="/home/philipp/Downloads/mjpg-streamer/mjpg-streamer/www"
PORT="8081"
mjpg_streamer -i "input_uvc.so -d /dev/video0 -f $FRAME_RATE -r $RESOLUTION" -o "output_http.so -w $MJPG_WEB_ROOT -p $PORT"
六、其它
1.http认证
$ ./mjpg_streamer -i "input_uvc.so -d /dev/video1 -f 15 -r 800x600" -o "output_http.so -w ./www -c uSeRnAmE:s3cure-pAssw0rd"
2.mplayer播放
$ mplayer -fps 30 -demuxer lavf "http://127.0.0.1:8080/?action=stream&ignored.mjpg"
七、录制
写一个shell脚步:
#!/bin/sh
flvpath="/home/xiao/document/jiankong"
nowdate=`date --date='0 days ago' "+%Y%m%d"`
lztime="00:30:00"
#echo $flvpath
while ((true))
do
hours=`date --date='0 days ago' "+%H"`
echo $hours
if [ $hours -eq 0 ] ; then
echo "sleeping 10"
sleep 10
continue
fi
if [ $hours -gt 0 ] && [ $hours -lt 7 ] ; then
echo "sleeping 10 s"
sleep 10
continue
fi
rmdate=`date --date='7 days ago' "+%Y%m%d"`
nowdate=`date --date='0 days ago' "+%Y%m%d"`
flvpathdate="$flvpath/$nowdate"
rmpathdate="$flvpath/$rmdate"
#echo $rmpathdate
rm -rf $rmpathdate
mkdir -p $flvpathdate
#echo $flvpathdate
nowdatefmt=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
nowtime=`date +%s -d "$nowdatefmt"`000000
vname=`date --date='0 days ago' "+%Y%m%d%H%M%S"`.flv
if ffmpeg -i http://127.0.0.1:8088/?action=stream \
-r 30 \
-t $lztime \
-vf drawtext="expansion=strftime:basetime='$nowtime':text='%Y - %m - %d %H \\: %M \\: %S':fontsize=18:fontcolor=red:box=1:x=20:y=20:boxcol
or=black@0.5:" \
$flvpathdate/$vname \
-y ; then
#-strict -2
echo "$flvpathdate/$vname"
else
rm $flvpathdate/$vname
#exit 1
sleep 10
fi
done