Skip to content

Qengineering/GStreamer-1.18.4-RPi_32-bits

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GStreamer-1.18.4-RPi_32-bits

output image

GStreamer + OpenCV on a Raspberry Pi 4 32-bits

License

An working example of the GStreame 1.18.4 with the new rpicamsrc source.
Please note, it only works on a Raspberry Pi with an 32-bits OS.
If you have an 64-bits OS see https://github.com/Qengineering/GStreamer-1.18.4-RPi_64-bits


Dependencies.

To run the application, you have to:

  • A Raspberry Pi 4 with a 32-bits operating system.
  • GStreamer 1.18.4 installed. Install GStreamer
  • OpenCV bit installed. Install OpenCV 4.5
  • Code::Blocks installed. ($ sudo apt-get install codeblocks)
  • A working Raspicam

Installing the app.

To extract and run the app in Code::Blocks
$ mkdir MyDir
$ cd MyDir
$ wget https://github.com/Qengineering/GStreamer-1.18.4-RPi_32-bits/archive/refs/heads/main.zip
$ unzip -j master.zip
Remove master.zip, LICENSE and README.md as they are no longer needed.
$ rm master.zip
$ rm LICENSE
$ rm README.md

Your MyDir folder must now look like this:
GStreamerTest32.cpb
main.cpp


Running the app.

To run the application load the project file GStreamerTest32.cbp in Code::Blocks.
Next, follow the instructions at Hands-On.


Frame rate.

The Raspicam supports many sizes and frame rates, as you can see here.
You can switch between the different options by altering the parameters in the pipeline.
As long it's a valid combination, it will work. For instance:

    //pipeline parameters
    int capture_width = 640 ;
    int capture_height = 480 ;
    int display_width = 640 ;
    int display_height = 480 ;
    int framerate = 90 ;

output image

Since the developer of the rpicamsrc, Jan Schmidt aka thaytan, took the raspivid parameters as best they could, many can now be used in the pipeline. An example;

            "rpicamsrc exposure-mode=off shutter-speed=50 preview=false ! "
            "video/x-raw, width=(int)" + std::to_string(capture_width) + ", height=(int)" + std::to_string(capture_height) + ", framerate=(fraction)" + std::to_string(framerate) +"/1 !"
            " videoscale ! video/x-raw,"
            " width=(int)" + std::to_string(display_width) + ","
            " height=(int)" + std::to_string(display_height) + " ! "
            " videoconvert ! video/x-raw, format=(string)BGR ! appsink";

For more info see rpicamsrc


paypal