# Two stream - 1080p MJPEG encoder

Source: [https://docs.qualcomm.com/doc/80-70014-50/topic/1080p-mjpeg-encoder.html](https://docs.qualcomm.com/doc/80-70014-50/topic/1080p-mjpeg-encoder.html)

The MJPEG encoder encodes and writes the captured video stream in a MJPEG
        format.

Run the following commands to execute the use cases for this encoder.

- H.264 encode and MJPEG dump to a
                    file:

        gst-pipeline-app -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux.mp4" camsrc. ! "image/jpeg,width=3840,height=2160,framerate=30/1" ! queue ! avimux ! filesink location=/opt/4k_mjpeg.avi sync=true async=falseCopy to clipboard

    The
                        mux.mp4 and 4k\_mjpeg.avi files are
                    stored at /opt/.
- H.265 encode and MJPEG dump to a
                    file:

        gst-pipeline-app -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=5 output-io-mode=5 ! queue ! h265parse ! mp4mux ! queue ! filesink location="/opt/mux.mp4" camsrc. ! "image/jpeg,width=3840,height=2160,framerate=30/1" ! queue ! avimux ! filesink location=/opt/4k_mjpeg.avi sync=true async=falseCopy to clipboard

    The
                        mux.mp4 and 4k\_mjpeg.avi files are
                    stored at /opt/.
- Preview on display with MJPEG encoding in a file:

        gst-pipeline-app -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! waylandsink fullscreen=true camsrc.video_1 ! "image/jpeg,width=1920,height=1080,framerate=30/1" ! queue ! avimux ! filesink location=/opt/mjpeg.avi sync=true async=falseCopy to clipboard

    The
                    video is previewed on a screen and the mjpeg.avi file is
                    stored at /opt/.
- Preview on display with MJPEG and H.264 encoding in a file:

        gst-pipeline-app -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! waylandsink fullscreen=true camsrc.video_1 ! "image/jpeg,width=1920,height=1080,framerate=30/1" ! queue ! avimux ! filesink location=/opt/mjpeg.avi sync=true async=false camsrc.video_2 ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux.mp4"Copy to clipboard

    The
                    video is previewed on a screen and the mux.mp4 and
                        mjpeg.avi files are stored at
                        /opt/.

**Parent Topic:** [Camera and video encode](https://docs.qualcomm.com/doc/80-70014-50/topic/camera-and-video-encode.html)

Last Published: Oct 27, 2025

[Previous Topic
Three stream – 4K JPEG snapshot, 1080p AVC MP4, 1080p YUV from live source](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/three-stream_4k_jpeg_snapshot_1080p_avc_mp4_1080p_yuv_from_live_source.md) [Next Topic
Slice-based encoding](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/slice-based-encoding.md)