# Smart codec
The **gst-smartcodec-example** application reduces bandwidth and storage resources based on scene change estimate thresholds.
The smart codec plugin, [qtismartvencbin](https://docs.qualcomm.com/doc/80-80021-50/topic/qtismartvencbin.html), uses smart fps, smart I-frame, smart bit rate, and smart ROI to do the following:
- Decrease the bit rate without compromising the quality.
- Enable efficient use of network and storage resources.
The following figure shows the pipeline flow for a two-stream use case. For more information, see [Pipeline flow](https://docs.qualcomm.com/doc/80-80021-50/topic/smart-codec.html#section-rcj-tl2-ncc).
**Figure : gst-smartcodec-example pipeline for two streams**
## Run the application
1. Ensure that you complete the [Prerequisites](https://docs.qualcomm.com/doc/80-80021-50/topic/mm_sample_apps_prerequisites.html).
2. To access the target device from your host computer, set up SSH. For instructions, see [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-80021-254/how_to.html#use-ssh).
3. In the terminal of the host computer, enter the SSH shell to:
- Run the use cases:
ssh root@
Copy to clipboard
- Push the files from host computer:
scp root@:/etc/media/
Copy to clipboard
4. In the terminal of the target device, run the use case with a camera source:
gst-smartcodec-example -w 1920 -h 1080 -o video.mp4
Copy to clipboard
5. To stop the use case, use **CTRL + C**.
6. In the terminal of the target device, run the following command in the SSH shell to display the available help options:
gst-smartcodec-example --help
Copy to clipboard
## Expected output
The application generates the output as an encoded MP4 file.
The following table lists the file sizes of a 1080p video with and without smart codec.
Table:Smart codec–file sizes
| Smart codec | File size |
| --- | --- |
| Enabled | 3718 KB |
| Disabled | 17706 KB |
## Pipeline flow
The following table lists the plugins used in the smart codec pipeline:
| **Plugin** | **Description** |
| --- | --- |
| [qtiqmmfsrc](https://docs.qualcomm.com/doc/80-80021-50/topic/qtiqmmfsrc.html) |
Captures the video stream.
Feeds the stream to capsfilter.
|
| Capsfilter | Branches the source into two separate pipelines. In one pipeline, [qtismartvencbin](https://docs.qualcomm.com/doc/80-80021-50/topic/qtismartvencbin.html) processes the output. |
| Capsfilter | In the other pipeline, the video undergoes the following:1. Encoded using [v4l2h264enc](https://docs.qualcomm.com/doc/80-80021-50/topic/v4l2h264enc.html). 2. Parsed with h264parse. 3. Multiplexed into an MP4 format with mp4mux. 4. Written to a file using filesink. |
| | |
The following table lists the plugins used in the smart codec pipeline:
## Related information
[AI smart codec](https://docs.qualcomm.com/doc/80-80021-50/topic/ai-smart-codec.html)
Last Published: Mar 26, 2026
[Previous Topic
Video wall](https://docs.qualcomm.com/bundle/publicresource/80-80021-50/topics/gst-concurrent-videoplay-composition.md) [Next Topic
Multi format decode](https://docs.qualcomm.com/bundle/publicresource/80-80021-50/topics/gst-videocodec-concurrent-playback.md)
Source: [https://docs.qualcomm.com/doc/80-80021-50/topic/smart-codec.html](https://docs.qualcomm.com/doc/80-80021-50/topic/smart-codec.html)