# 基于ffmpeg/jsmpeg 树莓派 实时监控
###
原理:
- stearm -> ffmpeg -> nodejs -> websocket -> html5
### 环境
- 树莓派 raspberry / 摄像头
- ffmpeg
- nodejs
## 使用
### 安装nodejs (arm 版)
nodejs 官网已经提供了 armv7 平台的安装包。
```
wget https://npm.taobao.org/mirrors/node/v6.9.0/node-v6.9.0-linux-armv7l.tar.gz
tar zxvf node-v6.9.0-linux-armv7l.tar.gz
mv node-v6.9.0-linux-armv7l.tar.gz /usr/local
```
将node的bin目录添加至环境变量,直接将这句话加到 /etc/profile 里面。
```
export PATH="/usr/local/node-v6.9.0-linux-armv7l/bin:$PATH"
```
### 安装ffmepeg
```
wget https://www.ffmpeg.org/releases/ffmpeg-3.2.2.tar.gz
tar zxvf ffmpeg-3.2.2.tar.gz
cd ffmpeg-3.2.2
./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpeg
make && make install
```
### 安装 jsmpeg-advance
```
git clone [email protected]:zhongsink/jsmpeg-advance.git
```
安装依赖 npm install -g ws
## 搭建:
```
cd jsmepeg
node websocket-relay.js supersecret
```
```
cd /usr/local/ffmpeg/bin
sudo ./ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 -f mpegts -codec:v mpeg1video -s 640x480 -b:v 1000k -bf 0 -codec:a mp2 -b:a 128k -muxdelay 0.001 http://localhost:8081/supersecret
```
-s 设定分辨率大小, -f 指定格式, -i 指定接口, -b 指定视频流比特率, -r 指定帧率,后面的 url 填上在 websocket-relay.js 设置好的格式。
由于 jsmpeg 中没有写静态服务
- 直接使用 静态服务器。 http-server
npm install -g http-server
http-server ./jsmpeg
接下来就可以直接访问 http://localhost:8080 获取实时的视频了,同局域网也可访问
### 自定制
我添加了对实时视频的一点简单处理, 可以获取到视频的截图,简单实现motion
详见 index.html
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【作品名称】:基于ffmpeg树莓派实时监控(stearm -> ffmpeg -> nodejs -> websocket -> html) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 环境 树莓派 raspberry / 摄像头 ffmpeg nodejs 搭建: cd jsmepeg node websocket-relay.js supersecret cd /usr/local/ffmpeg/bin sudo ./ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 -f mpegts -codec:v mpeg1video -s 640x480 -b:v 1000k -bf 0 -codec:a mp2 -b:a 128k -muxdelay 0.001 http://localhost:8081/supersecret -s 设定分辨率大小, -f 指定格式, -i 指定接口, -b 指定视频
资源推荐
资源详情
资源评论
收起资源包目录
jsmpeg-advance-code.zip (78个子文件)
jsmpeg-advance-code
websocket-relay.js 3KB
src
webaudio.js 4KB
canvas2d.js 3KB
ajax.js 1KB
player.js 6KB
ajax-progressive.js 3KB
jsmpeg.js 4KB
ts.js 6KB
buffer.js 4KB
webgl.js 6KB
video-element.js 5KB
mp2.js 23KB
mpeg1.js 49KB
websocket.js 2KB
decoder.js 2KB
RN_android
.watchmanconfig 2B
.buckconfig 114B
yarn.lock 139KB
__tests__
index.ios.js 280B
index.android.js 284B
.gitattributes 16B
index.ios.js 1KB
android
gradle.properties 887B
gradle
wrapper
gradle-wrapper.jar 51KB
gradle-wrapper.properties 172B
app
src
main
assets
fonts
Foundation.ttf 56KB
Ionicons.ttf 141KB
FontAwesome.ttf 162KB
SimpleLineIcons.ttf 53KB
Octicons.ttf 27KB
Zocial.ttf 25KB
EvilIcons.ttf 13KB
Entypo.ttf 64KB
MaterialIcons.ttf 125KB
MaterialCommunityIcons.ttf 240KB
java
com
rnproject
MainApplication.java 1KB
MainActivity.java 363B
res
mipmap-xxhdpi
ic_launcher.png 8KB
mipmap-hdpi
ic_launcher.png 3KB
mipmap-mdpi
ic_launcher.png 2KB
mipmap-xhdpi
ic_launcher.png 5KB
values
strings.xml 72B
styles.xml 192B
AndroidManifest.xml 1KB
proguard-rules.pro 2KB
build.gradle 5KB
BUCK 1KB
gradlew.bat 2KB
keystores
debug.keystore.properties 105B
BUCK 138B
build.gradle 691B
settings.gradle 374B
gradlew 5KB
.flowconfig 1KB
jsconfig.json 151B
.babelrc 31B
package.json 716B
ios
rNProject-tvOS
Info.plist 2KB
rNProject
Images.xcassets
AppIcon.appiconset
Contents.json 585B
Base.lproj
LaunchScreen.xib 4KB
AppDelegate.h 451B
AppDelegate.m 1KB
main.m 510B
Info.plist 2KB
rNProject.xcodeproj
xcshareddata
xcschemes
rNProject.xcscheme 5KB
rNProject-tvOS.xcscheme 5KB
project.pbxproj 59KB
rNProjectTests
rNProjectTests.m 2KB
Info.plist 765B
rNProject-tvOSTests
Info.plist 765B
.gitignore 774B
index.android.js 954B
README.md 26B
package.json 510B
jsmpeg.min.js 70KB
index.html 3KB
README.md 2KB
build.sh 291B
共 78 条
- 1
资源评论
MarcoPage
- 粉丝: 2986
- 资源: 3043
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功