Requirements: Raspbian Wheezy with hard float enabled. I assume you have avahi, wifi, and have updated to the latest firmware and enabled the camera. You also have a web server configured on the pi.
Install crtmpserver
Code: Select all
sudo aptitude install crtmpserver
Code: Select all
sudo mkdir /var/log/crtmpserver
Code: Select all
validateHandshake=false,
keyframeSeek=false,
seekGranularity=0.1
clientSideBuffer=30
Code: Select all
sudo /etc/init.d/crtmpserver restart
Code: Select all
sudo aptitude remove ffmpeg
cd /usr/src
sudo mkdir ffmpeg
sudo chown `whoami`:users ffmpeg
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure
make
sudo make install
Code: Select all
raspivid -t -1 -w 960 -h 540 -fps 25 -b 500000 -vf -o - | ffmpeg -i - -vcodec copy -an -f flv -metadata streamName=myStream tcp://0.0.0.0:6666
Code: Select all
<MAP name="" isArray="false">
<STR name="ip">0.0.0.0</STR>
<UINT16 name="port">6666</UINT16>
<STR name="protocol">inboundLiveFlv</STR>
<STR name="sslCert"></STR>
<STR name="sslKey"></STR>
<BOOL name="waitForMetadata">true</BOOL>
</MAP>
Code: Select all
<html>
<head>
<title>Raspbi Camera RTMP stream test</title>
</head>
<body>
<div id="video-jwplayer_wrapper" style="position: relative; display: block; width: 960px; height: 540px;">
<object type="application/x-shockwave-flash" data="/jwplayer/jwplayer.flash.swf" width="100%" height="100%" bgcolor="#000000" id="video-jwplayer" name="video-jwplayer" tabindex="0">
<param name="allowfullscreen" value="true">
<param name="allowscriptaccess" value="always">
<param name="seamlesstabbing" value="true">
<param name="wmode" value="opaque">
</object>
<div id="video-jwplayer_aspect" style="display: none;"></div>
<div id="video-jwplayer_jwpsrv" style="position: absolute; top: 0px; z-index: 10;"></div>
</div>
<script src="/jwplayer/jwplayer.js"></script>
<script type="text/javascript">
jwplayer('video-jwplayer').setup({
flashplayer:"/jwplayer/jwplayer.flash.swf"
, file:"rtmp://" + window.location.hostname + "/flvplayback/flv:myStream.flv"
, autoStart: true
, rtmp:{
bufferlength:0.1
}
, deliveryType: "streaming"
, width: 960
, height: 540
, player: {
modes: {
linear: {
controls:{
stream:{
manage:false
, enabled: false
}
}
}
}
}
, shows: {
streamTimer: {
enabled: true
, tickRate: 100
}
}
});
</script>
</body>
</html>
NOTES
I found I can have a consistent 25 fps at a bitrate of 500000 over a USB Netgear 8192CU Wi-Fi dongle with a delay of about 1s at best.
Other types of h264 stream players, e.g. flowplayer, are available.