# Transform and Transcode use cases
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html](https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html)
The transcoding use cases show converting or transforming the video streams from one
format to another.
Before you run the use cases, ensure that you complete the preconditions mentioned in
[Run multimedia use cases](https://docs.qualcomm.com/doc/80-70020-50/topic/multimedia-use-cases.html).
Note: The Qualcomm Computer Vision SDK (fcv) engine is currently
not supported.
## 1080p to 1080p–rotate (90/180/270)
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html](https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html)
The use case shows the rotation of scenes from a camera by 180 degrees. The rotated
image is displayed on a local display device.
Note: To rotate the video at different angles, use the rotate property
from the [qtivtransform](https://docs.qualcomm.com/doc/80-70020-50/topic/qtivtransform.html) plugin.
Use the following commands to run the use case on the target device:
- Transform the scene running on DSP using Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=video video_1::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! qtivtransform engine=fcv rotate=180 ! waylandsink fullscreen=true async=false sync=falseCopy to clipboard
- Transform the scene running on the GPU using OpenGL
ES:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=video video_1::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! qtivtransform engine=gles rotate=180 ! waylandsink fullscreen=true async=false sync=falseCopy to clipboard
The host camera displays the transformed stream.
To stop the use case, use CTRL + C.
The following figure shows the flow of the pipeline execution:
Figure : Pipeline for rotation and display–camera source
## Offline 1080p stream to 1080p–rotate (90/180/270)
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html](https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html)
The use case shows the rotation of scenes from a file source by 180 degrees. The
rotated scene is displayed on a local display device.
Note: To rotate the video at different angles, see the rotate property
from [qtivtransform](https://docs.qualcomm.com/doc/80-70020-50/topic/qtivtransform.html).
Use the following commands to run the use case on the target device:
- Transform the scene running on DSP using Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e filesrc location=/opt/.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! qtivtransform engine=fcv rotate=180 ! queue ! waylandsink fullscreen=trueCopy to clipboard
- Transform the scene running on the GPU using OpenGL
ES:
gst-launch-1.0 -e filesrc location=/opt/.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! qtivtransform engine=gles rotate=180 ! queue ! waylandsink fullscreen=trueCopy to clipboard
The transformed stream from the file source is displayed.
To stop the use case, use CTRL + C.
The following figure shows the flow of the pipeline execution:
Figure : Pipeline for rotation and display–file source
## 4K to 1080p–rotate (90/180/270) and downscale
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html](https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html)
The use case shows a 4k resolution video stream from a camera downscaled to 1080p and
rotated by 180 degrees. The video is then displayed on a local display device.
Note: To rotate the video at different angles, see the rotate property
from [qtivtransform](https://docs.qualcomm.com/doc/80-70020-50/topic/qtivtransform.html).
Use the following commands to run the use case on the target device:
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=video video_1::type=preview ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=fcv rotate=180 ! video/x-raw,format=NV12,width=1920,height=1080 ! waylandsink fullscreen=trueCopy to clipboard
- GLES
engine:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=video video_1::type=preview ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=gles rotate=180 ! video/x-raw,format=NV12,width=1920,height=1080 ! waylandsink fullscreen=trueCopy to clipboard
The transformed stream from the camera is displayed.
To stop the use case, use CTRL + C.
The following figure shows the flow of the pipeline execution:
Figure : Pipeline for 4k image downscaled to 1080p, rotated, and displayed–camera
source
## Offline 4K to 1080p–rotate (90/180/270) and downscale
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html](https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html)
The pipeline shows a 4k resolution video stream from a file source downscaled to
1080p and rotated by 180 degrees. The video is then displayed on a local display
device.
Note: To rotate the video at different angles, see the rotate property
from [qtivtransform](https://docs.qualcomm.com/doc/80-70020-50/topic/qtivtransform.html).
Use the following commands to run the use case on the target device:
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=video video_1::type=preview ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=fcv rotate=180 ! video/x-raw,format=NV12,width=1920,height=1080 ! waylandsink fullscreen=trueCopy to clipboard
- GLES
engine:
gst-launch-1.0 -e filesrc location=/opt/<4K_H264/AVC_file>.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! qtivtransform engine=gles rotate=180 ! video/x-raw,format=NV12,width=1920,height=1080 ! waylandsink fullscreen=trueCopy to clipboard
The transformed stream from the file source is displayed.
To stop the use case, use CTRL + C.
The following figure shows the flow of the pipeline execution:
Figure : Pipeline for 4k stream downscaled to 1080p, and, rotated, and displayed–file
source
## 1080p to 1080p–horizontal and vertical flip
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html](https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html)
The use case shows how to flip the scenes of a camera stream
horizontally.
Note: To flip the scenes, in the following commands, replace
`flip-horizontal` with `flip-vertical` and vice versa.
For more information, see [qtivtransform](https://docs.qualcomm.com/doc/80-70020-50/topic/qtivtransform.html).
Use the following commands to run the use case on the target device:
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=video video_1::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! qtivtransform engine=fcv flip-horizontal=true ! waylandsink fullscreen=trueCopy to clipboard
- GLES
engine:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=video video_1::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! qtivtransform engine=gles flip-horizontal=true ! waylandsink fullscreen=trueCopy to clipboard
The transformed stream from a camera is displayed.
To stop the use case, use CTRL + C.
The following figure shows the flow of the pipeline execution:
Figure : Pipeline for displaying flipped images–camera source
## Offline 1080p to 1080p–horizontal and vertical flip
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html](https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html)
The use case shows how to flip scenes horizontally.
Note: To flip the scenes, in the following commands, replace
`flip-horizontal` with `flip-vertical` and vice versa.
For more information, see [qtivtransform](https://docs.qualcomm.com/doc/80-70020-50/topic/qtivtransform.html).
Use the following commands to run the use case on the target device:
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e filesrc location=/opt/<1080p_H264/AVC_file>.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! qtivtransform engine=fcv flip-horizontal=true ! waylandsink fullscreen=trueCopy to clipboard
- GLES
engine:
gst-launch-1.0 -e filesrc location=/opt/<1080p_H264/AVC_file>.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! qtivtransform engine=gles flip-horizontal=true ! waylandsink fullscreen=trueCopy to clipboard
The transformed stream from a file source is displayed.
To stop the use case, use CTRL + C.
The following figure shows the flow of the pipeline execution:
Figure : Pipeline for displaying flipped images–file source
## 4K to 1080p–horizontal and vertical flip with downscale
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html](https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html)
The use case shows how to downscale a 4k resolution video stream to 1080p and flip
the scenes horizontally.
Note: To flip the scenes, in the following commands, replace
`flip-horizontal` with `flip-vertical` and vice versa.
For more information, see [qtivtransform](https://docs.qualcomm.com/doc/80-70020-50/topic/qtivtransform.html).
Use the following commands to run the use case on the target device:
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=video video_1::type=preview ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=fcv flip-vertical=true ! video/x-raw,format=NV12,width=1920,height=1080 ! waylandsink fullscreen=trueCopy to clipboard
- GLES
engine:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=video video_1::type=preview ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=gles flip-vertical=true ! video/x-raw,format=NV12,width=1920,height=1080 ! waylandsink fullscreen=trueCopy to clipboard
The transformed stream from the camera is displayed.
To stop the use case, use CTRL + C.
The following figure shows the flow of the pipeline execution:
Figure : Pipeline for displaying flipped and downscaled images–camera source
## Downscale 4K to 1080p and encode to AVC MP4
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html](https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html)
The use case uses two copies of a 4k resolution video stream. The first copy is
encoded and multiplexed to an MP4 file. A second copy is shared with qtivtransform to
downscale it to 1080p resolution. The 1080p stream is then encoded and multiplexed to an MP4
file on the device.
Use the following commands to run the use case on the target device:
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=video video_1::type=preview ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! tee name=t_split t_split. ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/4k_video.mp4 t_split. ! qtivtransform engine=fcv ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/downscaled_1080p_video.mp4Copy to clipboard
- GLES
engine:
gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=video video_1::type=preview ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! tee name=t_split t_split. ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/4k_video.mp4 t_split. ! qtivtransform engine=gles ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/downscaled_1080p_video.mp4Copy to clipboard
To stop the use case, use CTRL + C.
Pull the recorded content from the target device and play content on the Linux host
computer.
In the terminal of the host computer, run the following command:
scp root@:/opt/ Copy to clipboard
In the terminal of the host computer, run the following command to pull the file
content:
scp -r root@[DEVICE IP-ADDR]:/opt/4k_video.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard
scp -r root@[DEVICE IP-ADDR]:/opt/downscaled_1080p_video.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard
You can play the MP4 files on a media player. The camera stream is displayed.
The following figure shows the flow of the pipeline execution:
Figure : Pipeline for 4k video–encoding and downscaling to 1080p
## More transform and transcode use cases
Source: [https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html](https://docs.qualcomm.com/doc/80-70020-50/topic/transform-and-transcode-use-cases.html)
Run the following use cases on the target device.
### Video transform use cases
- 4K@30 AVC → decode → rotate and downscale → 1080p@30 AVC
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e filesrc location=/opt/<4K_H264/AVC_file>.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! qtivtransform engine=fcv rotate=90CCW ! video/x-raw,format=NV12,width=1920,height=1080 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4Copy to clipboard
- GLES
engine:
gst-launch-1.0 -e filesrc location=/opt/<4K_H264/AVC_file>.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! qtivtransform engine=gles rotate=90CCW ! video/x-raw,format=NV12,width=1920,height=1080 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4Copy to clipboard
- 4K@30 AVC → decode → flip and downscale → 1080p@30 AVC
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e filesrc location=/opt/<4K_H264/AVC_file>.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! qtivtransform engine=fcv flip-vertical=true ! video/x-raw,format=NV12,width=1920,height=1080 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4Copy to clipboard
- GLES
engine:
gst-launch-1.0 -e filesrc location=/opt/<4K_H264/AVC_file>.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! qtivtransform engine=gles flip-vertical=true ! video/x-raw,format=NV12,width=1920,height=1080 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4Copy to clipboard
- Video\_qmmf\_Transform\_rotate\_counter\_clockwise\_3840 x 2160 @30fps
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=fcv rotate=90CCW ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4Copy to clipboard
- GLES
engine:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=gles rotate=90CCW ! queue ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4Copy to clipboard
- Video\_qmmf\_Transform\_scale\_down\_3840 x 2160 @30fps\_to\_1080p
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=fcv ! queue ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4Copy to clipboard
- GLES
engine:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=gles ! queue ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4Copy to clipboard
- Video\_qmmf\_Transform\_flip\_horizontal\_3840 x 2160 @30fps
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=fcv flip-horizontal=true ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_flip_h.mp4Copy to clipboard
- GLES
engine:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=gles flip-horizontal=true ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_flip_h.mp4Copy to clipboard
- Video\_qmmf\_Transform\_flip\_vertical\_3840 x 2160 @30fps
- Qualcomm Computer Vision SDK (fcv)
engine:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=fcv flip-vertical=true ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_flip_v.mp4Copy to clipboard
- GLES
engine:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! qtivtransform engine=gles flip-vertical=true ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_flip_v.mp4Copy to clipboard
### Video transcode use cases
- 4k@30 HEVC → decode → 4k@30 AVC
encode:
gst-launch-1.0 -e filesrc location=/opt/<4K_H265/HEVC_file>.mp4 ! qtdemux ! queue ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location=/opt/offline_hevc_to_avc.mp4Copy to clipboard
- 4k@30 AVC → decode → 4k@30 HEVC
encode:
gst-launch-1.0 -e filesrc location=/opt/<4K_H264/AVC_file>.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h265enc capture-io-mode=4 output-io-mode=5 ! queue ! h265parse ! mp4mux ! queue ! filesink location="/opt/offline_avc_to_hevc.mp4"Copy to clipboard
### Dynamic cropping using qtivtransform
**Single 1080p file stream from which the ROI is cropped**
1. Display the
stream:
gst-launch-1.0 filesrc location=/opt/.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! queue ! qtivtransform flip-vertical=true crop="<480,270,960,540>" ! waylandsink fullscreen=trueCopy to clipboard
2. Encode the stream
data:
gst-launch-1.0 -e filesrc location=/opt/.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! queue ! qtivtransform flip-horizontal=true crop="<480,270,960,540>" ! queue ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/offline_crop_vtransform.mp4Copy to clipboard
**Single 1080p camera stream from which ROI is cropped**
1. Display the
stream:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! queue ! qtivtransform flip-horizontal=true crop="<480,270,960,540>" ! waylandsink fullscreen=trueCopy to clipboard
2. Encode the stream
data:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! qtivtransform flip-horizontal=true crop="<480,270,960,540>" ! queue ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/cam_crop_vtransform.mp4Copy to clipboard
### Related information
[Video transcoding](https://docs.qualcomm.com/doc/80-70020-50/topic/gst-video-transcode-example.html)
Last Published: Jan 30, 2026
[Previous Topic
Multi-camera/Multi-client use cases](https://docs.qualcomm.com/bundle/publicresource/80-70020-50/topics/multi-camera-multi-client-use-cases.md) [Next Topic
Video playback use cases](https://docs.qualcomm.com/bundle/publicresource/80-70020-50/topics/video-playback-use-cases.md)