学习目标一:将网络摄像头获取的视频流,并将当前帧存在temp.png中
借鉴的脚本:
d=$(curl -X GET http://video4.earthcam.com:1935/fecnetwork/AbbeyRoadHD1.flv/playlist.m3u8 2> /dev/null)
while read -ra ADDR; do
for i in "${ADDR[@]}"; do
link=$i
done
done <<< "$d"
echo $link
ffmpeg-3.0.2-64bit-static/ffmpeg -y -i $link -vf fps=1 -update 1 cam/frame.png
curl命令-x GET 是从服务器中获取信息。
command>file 2>&1这条命令就将stdout直接送向file,stderr继承了FD1管道后,再被送往file,此时,file只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容。
ffmpeg
-y: 覆盖输出文件
-i:设定输入流
-vf filter path: 设置视频过滤器
-f: 设定输出格式
- 测试本地视频文件
>>ffmpeg -y -i /home/bianca/图片/test.avi -vf fps=1 -update 1 /home/bianca/图片/frame.png
ok
- 获取网络摄像头
ffmpeg+ffserver
实现:
如果传输硬盘上的文件,则:
ffserver -f myfile/ffmpeg0.8.9/ffserver.conf &ffmpeg -i inputfile(输入文件) http://localhost:10535/feed1.ffm
如何传输摄像头捕获的实时流,则:
ffserver -f /home/bianca/SparkStreamingWorkspace/test/ffserver.conf & ffmpeg -f video4linux2 -framerate 30 -i /dev/video0 http://127.0.0.1:8090/feed1.ffm
linux 常用命令:
查看cpu使用率
ps
top
查看某个进程的状态
ps -p [pid]
使用内存最多的k个进程
ps -aux | sort -k4nr | head -K