Jul 19, 2014

Shooting video with RaspiCam: Raspberry Pi drive recorder with GPS logger

In last article we connected RaspiCam and took photo. Now we are going to shoot video with it.

Shooting video is as easy as taking picture. Just execute `raspivid -o video.h264 -t 10000`. -o option decides the output file and if '-' is given, output goes to STDOUT. -t is time in millisecond(s). So the command above will give you a 10-second-video with a name of video.h264. To easily convert this to .mp4 you can install gpac and use MP4Box command.

pi@raspberrypi ~/Desktop $ sudo apt-get install -y gpac
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
gpac-modules-base liba52-0.7.4 libavcodec53 libavformat53 libavutil51 libdirac-encoder0 libfaad2 libglu1-mesa libgpac2 libgsm1 libmp3lame0 libschroedinger-1.0-0 libspeex1
libswscale2 libtheora0 libva1 libvpx1 libx264-123 libxvidcore4
Suggested packages:
speex
The following NEW packages will be installed:
gpac gpac-modules-base liba52-0.7.4 libavcodec53 libavformat53 libavutil51 libdirac-encoder0 libfaad2 libglu1-mesa libgpac2 libgsm1 libmp3lame0 libschroedinger-1.0-0
libspeex1 libswscale2 libtheora0 libva1 libvpx1 libx264-123 libxvidcore4
0 upgraded, 20 newly installed, 0 to remove and 0 not upgraded.
Need to get 7,715 kB of archives.
After this operation, 18.0 MB of additional disk space will be used.
Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libglu1-mesa armhf 8.0.5-4+deb7u2+rpi1 [152 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libgpac2 armhf 0.5.0~dfsg0-1 [1,438 kB]
Get:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libgsm1 armhf 1.0.13-4 [30.9 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ wheezy/main liba52-0.7.4 armhf 0.7.4-16 [31.4 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libavutil51 armhf 6:0.8.10-1+rpi1 [97.8 kB]
Get:6 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libdirac-encoder0 armhf 1.0.2-6 [350 kB]
Get:7 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libmp3lame0 armhf 3.99.5+repack1-3 [384 kB]
Get:8 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libschroedinger-1.0-0 armhf 1.0.11-2 [299 kB]
Get:9 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libspeex1 armhf 1.2~rc1-7 [61.7 kB]
Get:10 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libtheora0 armhf 1.1.1+dfsg.1-3.1 [368 kB]
Get:11 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libva1 armhf 1.0.15-4 [35.8 kB]
Get:12 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libvpx1 armhf 1.1.0-1+rpi1 [201 kB]
Get:13 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libx264-123 armhf 2:0.123.2189+git35cf912-1+rpi1 [456 kB]
Get:14 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libxvidcore4 armhf 2:1.3.2-9 [311 kB]
Get:15 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libavcodec53 armhf 6:0.8.10-1+rpi1 [2,300 kB]
Get:16 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libavformat53 armhf 6:0.8.10-1+rpi1 [410 kB]
Get:17 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libfaad2 armhf 2.7-8 [177 kB]
Get:18 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libswscale2 armhf 6:0.8.10-1+rpi1 [104 kB]
Get:19 http://mirrordirector.raspbian.org/raspbian/ wheezy/main gpac-modules-base armhf 0.5.0~dfsg0-1 [277 kB]
Get:20 http://mirrordirector.raspbian.org/raspbian/ wheezy/main gpac armhf 0.5.0~dfsg0-1 [232 kB]
Fetched 7,715 kB in 14s (530 kB/s)
Selecting previously unselected package libglu1-mesa:armhf.
(Reading database ... 71087 files and directories currently installed.)
Unpacking libglu1-mesa:armhf (from .../libglu1-mesa_8.0.5-4+deb7u2+rpi1_armhf.deb) ...
Selecting previously unselected package libgpac2:armhf.
Unpacking libgpac2:armhf (from .../libgpac2_0.5.0~dfsg0-1_armhf.deb) ...
Selecting previously unselected package liba52-0.7.4.
Unpacking liba52-0.7.4 (from .../liba52-0.7.4_0.7.4-16_armhf.deb) ...
Selecting previously unselected package libavutil51:armhf.
Unpacking libavutil51:armhf (from .../libavutil51_6%3a0.8.10-1+rpi1_armhf.deb) ...
Selecting previously unselected package libdirac-encoder0:armhf.
Unpacking libdirac-encoder0:armhf (from .../libdirac-encoder0_1.0.2-6_armhf.deb) ...
Selecting previously unselected package libgsm1:armhf.
Unpacking libgsm1:armhf (from .../libgsm1_1.0.13-4_armhf.deb) ...
Selecting previously unselected package libmp3lame0:armhf.
Unpacking libmp3lame0:armhf (from .../libmp3lame0_3.99.5+repack1-3_armhf.deb) ...
Selecting previously unselected package libschroedinger-1.0-0:armhf.
Unpacking libschroedinger-1.0-0:armhf (from .../libschroedinger-1.0-0_1.0.11-2_armhf.deb) ...
Selecting previously unselected package libspeex1:armhf.
Unpacking libspeex1:armhf (from .../libspeex1_1.2~rc1-7_armhf.deb) ...
Selecting previously unselected package libtheora0:armhf.
Unpacking libtheora0:armhf (from .../libtheora0_1.1.1+dfsg.1-3.1_armhf.deb) ...
Selecting previously unselected package libva1:armhf.
Unpacking libva1:armhf (from .../libva1_1.0.15-4_armhf.deb) ...
Selecting previously unselected package libvpx1:armhf.
Unpacking libvpx1:armhf (from .../libvpx1_1.1.0-1+rpi1_armhf.deb) ...
Selecting previously unselected package libx264-123:armhf.
Unpacking libx264-123:armhf (from .../libx264-123_2%3a0.123.2189+git35cf912-1+rpi1_armhf.deb) ...
Selecting previously unselected package libxvidcore4:armhf.
Unpacking libxvidcore4:armhf (from .../libxvidcore4_2%3a1.3.2-9_armhf.deb) ...
Selecting previously unselected package libavcodec53:armhf.
Unpacking libavcodec53:armhf (from .../libavcodec53_6%3a0.8.10-1+rpi1_armhf.deb) ...
Selecting previously unselected package libavformat53:armhf.
Unpacking libavformat53:armhf (from .../libavformat53_6%3a0.8.10-1+rpi1_armhf.deb) ...
Selecting previously unselected package libfaad2:armhf.
Unpacking libfaad2:armhf (from .../libfaad2_2.7-8_armhf.deb) ...
Selecting previously unselected package libswscale2:armhf.
Unpacking libswscale2:armhf (from .../libswscale2_6%3a0.8.10-1+rpi1_armhf.deb) ...
Selecting previously unselected package gpac-modules-base:armhf.
Unpacking gpac-modules-base:armhf (from .../gpac-modules-base_0.5.0~dfsg0-1_armhf.deb) ...
Selecting previously unselected package gpac.
Unpacking gpac (from .../gpac_0.5.0~dfsg0-1_armhf.deb) ...
Processing triggers for menu ...
Processing triggers for man-db ...
Setting up libglu1-mesa:armhf (8.0.5-4+deb7u2+rpi1) ...
Setting up libgpac2:armhf (0.5.0~dfsg0-1) ...
Setting up liba52-0.7.4 (0.7.4-16) ...
Setting up libavutil51:armhf (6:0.8.10-1+rpi1) ...
Setting up libdirac-encoder0:armhf (1.0.2-6) ...
Setting up libgsm1:armhf (1.0.13-4) ...
Setting up libmp3lame0:armhf (3.99.5+repack1-3) ...
Setting up libschroedinger-1.0-0:armhf (1.0.11-2) ...
Setting up libspeex1:armhf (1.2~rc1-7) ...
Setting up libtheora0:armhf (1.1.1+dfsg.1-3.1) ...
Setting up libva1:armhf (1.0.15-4) ...
Setting up libvpx1:armhf (1.1.0-1+rpi1) ...
Setting up libx264-123:armhf (2:0.123.2189+git35cf912-1+rpi1) ...
Setting up libxvidcore4:armhf (2:1.3.2-9) ...
Setting up libavcodec53:armhf (6:0.8.10-1+rpi1) ...
Setting up libavformat53:armhf (6:0.8.10-1+rpi1) ...
Setting up libfaad2:armhf (2.7-8) ...
Setting up libswscale2:armhf (6:0.8.10-1+rpi1) ...
Setting up gpac-modules-base:armhf (0.5.0~dfsg0-1) ...
Setting up gpac (0.5.0~dfsg0-1) ...
Processing triggers for menu ...
pi@raspberrypi ~/Desktop $
pi@raspberrypi ~/Desktop $
pi@raspberrypi ~/Desktop $
pi@raspberrypi ~/Desktop $
pi@raspberrypi ~/Desktop $ MP4Box -fps 30 -add video.h264 video_out.mp4
AVC-H264 import - frame size 1920 x 1080 at 30.000 FPS
AVC Import results: 293 samples - Slices: 5 I 288 P 0 B - 0 SEI - 5 IDR
Saving to video_out.mp4: 0.500 secs Interleaving
Document for raspivid command can also be found at RaspiCam Documentation. Next we are going to attach PiTFT and finish basic configuration.