This project implements H264 video record on Raspberry Pi. It uses the
rust-ffi binding library
rpi-mmal-rs.
Add the following to your Cargo.toml:
[dependencies]
rpi-video-rs = "0.0.3"You could checkout the user code in folder examples/.
And run the simple one as below.
cargo run --example simple
Since this project requires the real camera to record H264 videos, you needs a
RPI to run or test. But you could also uses a cross-compiling environment for
compiling and developing. We offer a Dockerfile (in folder tools/docker/)
which is a separate cross-compiling environment.
For developing on either a RPI device or a Docker container, you should install the standard Rust development environment, and then adds Rust targets as below.
rustup target add arm-unknown-linux-gnueabihf
rustup target add armv7-unknown-linux-gnueabihf
- Adds text
bcm2835-v4l2to the bottom of file/etc/modules.
sudo echo bcm2835-v4l2 >> /etc/modules
- Activates the camera in configuration.
sudo raspi-config
-
Follows the prompt to reboot Raspberry PI.
-
You could use the command
raspividto test recording aH264video and check if the camera is installed properly.
raspivid -o test_video.h264
- Enters into the folder
tools/c_ver, and runsmaketo compile the commandrpi_video.out.
pushd tools/c_ver
make
- Runs the build command
rpi_video.outto record a sample video.
./rpi_video.out
You could run the Rust simple example as below.
cargo run --example simple
- Integrates with a CI for testing successful compilation.