树莓派上实现流媒体
来源:互联网 发布:sql把重复数据删除 编辑:程序博客网 时间:2024/06/03 16:35
最近做了一个在树莓派上实现流媒体的小项目,本打算使用vlc做的,但是结果发现在vlc上实现流媒体造成的延迟太大,目测大于一秒。于是通过查询资料,共发现了三种方法:
1.通过vlc,
我在这里只说明一下rtp的命令行方式。
在发送端:
raspivid -o - -t 0 -w 640 -h 360 -fps 25|cvlc -vvv stream:///dev/stdin --sout '#rtp{dst=192.168.1.66,port=8080,ttl=1}' :demux=h264
也就是朝192.168.1.66的8080端口发送视频数据
这时你在下面的输出中会看到一段如下面的语句:
v=0
o=- 15779103922725042126 15779103922725042126 IN IP4 raspberrypi
s=Unnamed
i=N/A
c=IN IP4 192.168.1.66
t=0 0
a=tool:vlc 2.2.1
a=recvonly
a=type:broadcast
a=charset:UTF-8
m=video 8080 RTP/AVP 96
b=RR:0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1
把它复制下来,然后保存在一个文件中,同时以.sdp后缀的形式命名。
接收端:
在接收端把上面的文件用VLC打开即可。这个sdp文件其实就是对接收端的配置文件。
如果延迟大的话,可以在接收端把网络延迟修改到100--300ms之间,这样不会对视频质量有太大影响。经过我的实验,最小延迟貌似也在1s以上,所以我放弃了这种方法。
2.通过netcat
3.通过gstreamer
其中vlc的延迟最大。
我使用了netcat方法。
发送端:
raspivid -o - -t 0 -w 640 -h 360 -fps 25|nc 192.168.1.66 8080
即向192.168.1.66的8080端口发送采集到的视频数据,raspivid采集到的视频数据会通过h264压缩,
播放端:
nc -l 8080 | mplayer
即监听8080端口,并且使用mplayer 播放。
- 树莓派上实现流媒体
- 流媒体服务器实现
- 流媒体服务器实现
- 网页流媒体的实现
- Android流媒体的实现
- 流媒体的实现过程思考
- 探讨J2ME 流媒体的实现
- HTTP实现流媒体的原理
- brew rtsp流媒体视频实现
- RTSP流媒体播放器实现
- RTSP流媒体播放器实现
- 流媒体协议RTMP Java实现
- 流媒体开发之--直播实现
- RTSP流媒体播放器实现
- RTSP流媒体播放器实现
- 流媒体开发之--直播实现
- 流媒体开发之--直播实现
- 安装DLNA实现流媒体服务器
- Vector简介
- Queue的基本算法
- 丑数
- Android平台MVP开发模式实战入门
- ajax获取json路径方式
- 树莓派上实现流媒体
- srs之带宽检测
- 树莓派GPIO基础:WiringPi开发库基本使用
- 算法:模拟法(报数游戏)
- isascii字符串测试函数应用实例
- 基于ENVI下的土地利用信息提取(二)
- C++中虚函数(virtual function)到底有多慢
- 3D散点 表面,2D散点,边界。 matlab 儿子的papa
- iOS开发 GET、POST请求方法:NSURLConnection篇