Camera¶
It is possible to create a basic video recording GStreamer pipeline involving the camera and video encoder. Currently this has the following limitations:
- The frame data must be vertically aligned to 32 lines. For the OV5645 camera this means that only 1280×960 resolution is supported.
- The gstreamer1.0-plugins-good package needs to be rebuilt (with different default compile options).
The release is configured to expect the OV5645 sensor on the CSI1. The setup is validated using an VAR-EXT-CB410 Rev 1.01 add on card.
To enable the video encoder plugin follow these steps.
Install needed packages and dependencies¶
# sudo apt-get update
# sudo apt-get install build-essential fakeroot devscripts
# sudo apt-get build-dep gstreamer1.0-plugins-good
# sudo apt-get install media-ctl
Get gstreamer1.0-plugins-good source¶
Edit gstreamer1.0-plugins-good source¶
Edit debian/rules and add --enable-v4l2-probe and --without-libv4l2 options to DEB_CONFIGURE_EXTRA_FLAGS.
Build gstreamer1.0-plugins-good package¶
Install the newly built gstreamer1.0-plugins-good package¶
Now you are ready to do video recording!
Configure the pipeline¶
# media-ctl -d /dev/media1 -l '"msm_csiphy1":1->"msm_csid0":0[1],"msm_csid0":1->"msm_ispif0":0[1],"msm_ispif0":1->"msm_vfe0_pix":0[1]'
# media-ctl -d /dev/media1 -V '"ov5645 1-0078":0[fmt:UYVY8_2X8/1280x960 field:none],"msm_csiphy1":0[fmt:UYVY8_2X8/1280x960 field:none],"msm_csid0":0[fmt:UYVY8_2X8/1280x960 field:none],"msm_ispif0":0[fmt:UYVY8_2X8/1280x960 field:none],"msm_vfe0_pix":0[fmt:UYVY8_2X8/1280x960 field:none],"msm_vfe0_pix":1[fmt:UYVY8_1_5X8/1280x960 field:none]'
Switch to linaro user¶
From this step it is better to test as linaro user, so switch to linaro:
Test the preview¶
Record the video¶
$ gst-launch-1.0 -e v4l2src device=/dev/video3 ! video/x-raw,format=NV12,width=1280,height=960,framerate=30/1 ! v4l2h264enc extra-controls="controls,h264_profile=4,video_bitrate=2000000;" ! h264parse ! mp4mux ! filesink location=video.mp4
Stop the record by pressing Ctrl-C