# Video encode

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

The camera and video encode use cases demonstrate various scenarios for encoding and
        processing live 4K and 1080p camera streams.

Before you begin executing the use cases, ensure that you complete the preconditions
            mentioned in [Multimedia use cases](https://docs.qualcomm.com/doc/80-70017-50/topic/multimedia-use-cases.html).

## One stream - 1080p AVC RTSP from live source

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

The pipeline shows one 1080p stream taken from the camera and sent to the encoder.
        The encoded stream is sent over the network using the RTSP streaming.

Figure : Pipeline for encoding 1080p RTSP stream
            
            ![](data:image/png;base64,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)

- Run the RTSP server on target with udpsrc (You can run it in the background as a
                service):

        gst-rtsp-server -p 8900 -a "< IP_address of the device >"  -m /live "( udpsrc name=pay0 port=8554 caps=\"application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96\" )"Copy to clipboard
- Run the pipeline in another console on the
                target:

        gst-launch-1.0 -e qtiqmmfsrc name=camsrc ! 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 config-interval=-1 ! rtph264pay pt=96 ! udpsink host=< IP_address of the device > port=8554Copy to clipboard

The streamed video is displayed as an RTSP stream on a host.

To stop the use case, press CTRL + C.

### View RTSP stream on host PC

**Prerequisites:**
- Install the VLC media player on the host machine.
- Set the binary/executable paths in the environment variables.

On the Linux host, do one of the following:

- vlc -vvv rtsp://&lt;IP\_address of the device&gt;:8900/live
                    [Ubuntu 18.04 with VLC version 3.0.8]
- ffplay -rtsp\_transport tcp rtsp://&lt;IP\_address of the
                        device&gt;:8900/live

On the Windows host, do the following:

1. Open the VLC media player.
2. Go to Media <abbr title="and then"> &gt; </abbr>Open Network Stream, or press CTRL +
                    N.
3. Enter rtsp://&lt;IP\_address of the device&gt;:8900/live.
4. Click Play.

## Two streams – 4K AVC and 1080p AVC from live source

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

The pipeline shows one 4k stream and one 1080p stream taken from the camera and sent
        to encoder. Each encoded stream is multiplexed into a different file.

Run the use case:

    gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,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/mux1.mp4" camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,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/mux2.mp4"Copy to clipboard

To
            stop the use case, press CTRL + C, pull the
            recorded content from the device using the following `scp` command, and
            then play the content on a host PC.

The MP4 file can be played on a media player. Pull the recorded
            content:

    scp -r root@[DEVICE IP-ADDR]:/opt/mux1.mp4 user1@[HOST IP-ADDR]:/workspace/Copy to clipboard

    scp -r root@[DEVICE IP-ADDR]:/opt/mux2.mp4 user1@[HOST IP-ADDR]:/workspace/Copy to clipboard

The figure shows the flow of the pipeline execution:

Figure : Pipeline for encoding two (4k and 1080p) camera streams 
            
            ![](data:image/png;base64,UklGRiwhAABXRUJQVlA4TB8hAAAvzgM5EGpR27YN4/x/t52erBGhIG0DZjWwpwKjMEKZ8DxJCwkFTfi6me7enAX+pPicArFP/bPPGBdU6/93JTfP+Tlfp5m/80Ado4WCCwUFBRfZgu6fTvC8+3/7f2M9We+CLUFHNUwBwsILhznxXMC2MIpI6CJnbw8ycg9qwEhlONs9bAGG24FFXYAaMFNEgtvACBrmhKaALcIRR+ajPWdKcOA6y3y2ArNseHvQFOC01GjKcM7uY0tx9nAnGp9TFXOmh6WO41RDFHsFbANzhLcI9SDqsH3I2QWYCjpWIOLGbRtBjrtMd7zMAOtyoGzb9iy54+N+3Lfr5XLvPZtfJBqJRiPRJtFINBKN/AR/ApFIJBJtHxRs/xQpDoNPxFmaw8SJuLvTzg+HuHHi0jZevHjx4sWNOMSLG3F3+yZAb/L/t2NJV3rHPOYx7xezzTHHHLPNMdt8zTHHHLPNMcds8zXH3N57kWpfevau3udtb9FpCJTGP4HKYKVRIM79KJAD32wEnU1lU1CM23kMrF8wB4rjTiRiJdNQvgIRCz7JbF+w02gEK5iGcQVi0hAsdkgCpbERbOgQfokIFpOGQOfyj2hRaQhE56Q0CkHBGxELbJuDDIfD4TAcDg/DMDwMwzAMw3A4HA7DMDwchj+epbBt2+b/j5V0sP8TICztJjkrWnNX51f4FF7uU5iMd61911b931WZQL3mlgH/aXz6zx7+swsZ4e7h250zLfeFAvn6e1C/+p0Oj6fjSp/C/lP6BHotZ0W+LUdnNJPxRt9p/Ph2Z1BYXCZbAm7orQMh65hUuPTGWoV3qjKGjv1mAOBRI4mNSbuXJu10rPABsI+vMXNpkY7D9UbA6uiVCqjon5rNU0PHgCZapXHpVSDhSSp6RcAlOr0ylb7x6NgvIxhnzaAqEzxJRS+hVysWiJA16OSmqaGirMoIfHplt3uSjJeaQlG6VJTDrdBmqXGJuCjm4BLR8Z/jP8d/jv8c/w2qkfQU+teGSW1kJp1h9h8KZCbJpecj6WkkvZ6Ryd1N7pKZyd3NzpLMTC2SmekMs3OG9M8NdIbRKnc3WtXGQF8szM5rRluB9BwE6CwBeh0jQBJIgMAkUDsBAnMXIFCLDHSuEP/e+mTx8QS1MT4mvzp9mv1i99MBkvHzya+yy26O3F381eqvFuiLhIHOZ6ZP2GXvp9HpJwEfj7o5eiZR/WJToHbiI+/0swS9fhHFb+4+mUF514X89NnTX0vzLaj3y4OsReTvf/O0nHdl4t87+8/elr+uTZG74JenS+x88ZHzWzTCJHfj5m/+Jp9Wv/16gtbAry5h8uvmifbrVoZcLMIbzCWX1EaSWiSX3CWpnaQkkLj5tMDOY2IbmsEpPP4z4zbJkEtqJ6nlFMZILsnFNOyjXIqBSGqR3AWflsI+UoRb8ttweRqFHqr/upebJDfuwq9Lp9twA7wNt3+1qZOfEeSKP5+Fuo0ktahtG0l6JR3fAkgcQoeY1cssHsINcRH2SBS/7YVbTGCAubsATC4wMAGY3N0A0zlBcknuktxdckltFBdhibnkktwlyV2Su0suyd2l84jx5phR7jLumgwZYHKXASZR7jJAgIkqnJCBjHkIkLuBXHEbwilSpHfxEPYRfpVLCu4/kwQg1qETiTehiovQifEnXvrrChPFMdy3GIDJRVtzdwMwvZrKqsToLDMUvw4V8yYDdR8RjObHa0xlRlmVmIys+lk0FFJZUg5FVlVXIDfKaih0LjAwQAaYCwwwuYviGCaYwAATgATIBQLkAuncYXmxnF+9U6Y2RlkNhQTFH4Y5Up5J2RVZVUAboyhiHqIYZ8i0qySGzc1Z3TdXKB7CmPta0+7iIwu2v7kViHVYxNETVEaYjiVYjSY15sZwu52CsvFVvuhOMRnDbXcKevUs3+6bJH2PskwSvziEYZbcxawkIsVTWtVvMI3e9GZpswe2yzRNV0O4XXU3afa4TNLmIcO0b9J0skPnAMt3Rb7oVrDrjjFVU027ayHBaDRfYhpOVXXXoth+l0E5zpCGUxXrAlGtM3TOEFWTPEGb7boZxxb1miad7CD782aT1mv4rpnGu8l2mSSDvCXSS7stMuaxDj3ENPSA+9viDISk2AsV8+XdpgmjDCEpnsJOsxHDdRGR4ikt5zVm6iXHZRi8o0qu55s0fA3qJc0yGeTolVMn9c/Zbv43WgVIvDvW/9yqQm//12+z+RQxTLocW+ZhcqgG4RA/JmG1Kw6bOYzCsfMfq81o95NBJ+yhE365q342mmwq9MoTRTO/TpP0sbNJQwdGzW1zDKsSxe6mWC0xLtNBk4bOY5OGSRm3YY0xaLIirfNYbOryHJIdjvWhOIR1S7wJvWpdP0FVfAjd4W65KWM37OJtmJ1+SjphG6tw+qfGPvSY6MY43PJlnUMnDGGflk9h5qJs5j9oHn7T+mny7hS2yFxkx/qHMnl716SbHjDcdOOkxjiFfZ6/D51YbUKnLFdJEbfhJsvfh/0raFmXMe7CFknkb/9G+5jE8ZO/5u1//I/HtEL3K9RudhXRZ1LN+i7r9/+JMUgyRuk09h/Dtt/nMGaYPPT7/Wwzwl5SDIqvWbgph7NkVb27Tgr+FOZVfggDGG5Ocd5yF+5/fHcXjtt323A6K72K27CPozBF/tKDUs3QwpcL6lWM7fJhctOP/Sz5NBfrWd7vF90sbsM03j5B0xiz5i5W33e3YY+5MQ+xD1XMl3Ookm1/eJZclJNNhebHj6xIsXnAXLybJ7tYbDYPVTEIp8j9CiY15LM3Mcb+nzbZ8PtBJHbDmGUNqLt+BR2/QUy/PyFRjsIWdmFAjMPkbdwfsz7L6z66n4Pi3eaKeLXdd5bpkFUtKJpw/X4YI4vw8B+320Mzy9EL0SqBB3AByABGeGreAG83VzFuwy6O0qsIo03Gt3Noc5kUMS5CN1Kmg7OaK7hMO2GP/OUH6MkAXAZLgJNLjtxUr6CdFuHmP2633zVH9cKx85j3oeVPR0F2vI7VE1SHOShGAEUxVBsyTHpxF7bx3eSbGItw6rcTw3qzw3RfC4r0DhPFJHmEq+QuAvWRfVPGeF9DkdSdh4dOHf4w/L6H2IZ1lgyiJJC/et5i7SjqZIEYhvdRcL+sktV/7L5v6m7B/b1MPCTFDw+bz6T5dbuPLER114SwGsZTWE7quq5H2QvSngQiKAAApM8UerXHS3qJcTnL4LswjqNZhuglw25zFeN8CVymJTyGRyibu6fL6nCL+SuA1VqpLGM3k0eSd0M9qet6Msr0/j6EZq8zspbbWG2SebJ4bQBIZAF7AcioubGqeUjLeAqjwWAUJoPyqoVdM6tQS25tRHVMd4gsHWCKg3ScHB/uBk1zua6S5Wq1Wt1eDoffdxDdML5KOshlrzSq2WwaJa6SARLzz6R1kyat4cD9XCjepfkpnN7R7yRnRcrxQ5izCIcfsuxCueQvAvAJ7AE8vicAkhFmlO8WlJrAGim+mgy2LU3LKTmkx4e7wSy9XHCZXrUsns1YhYeozw9gBnAQ5zuZDs+QTKo2pYDpPR3yEoUO4ZBn2YVyETXs1mERnyV08npWImMDuZICZP9ikFplRUkckvFn0jfQreu6XibNpGhhndQFejp2m+UHJMsntVC8bKbzuq7rdLPsZuGhDxGozlhr82kRJfKLlw3DyrUcxeJYZ31ar9MsxjId5UVRFMPjtx9y3deAlhNWDZF4eQaL26sY+2+avEgGMUZuetgLyTBeAwT4BtgMDsAJDTDvZ5VSmcf0KoFklqH4kI5XdV3X6WZ5is9DPDRXsE9GYYE+NwAFWKvnuxZgBj8W+v10kKqcH/pnAo58GAYxRganfHCKsV+Fff+ZTv1xuGOiBQK0JMvGZ1WbUgCfSSeg+oxWtpwkY6Q8z6nC11Ckd3GYzvM+wFPEYjZ516f1FNYxZs2cPM9zJp9JuXiTFhEG93qKOEqLGLNJD3suWqXwAFIqPbYp4UlDmlFLOMW3YfR1r9frFXH6N9qoqq7DlLazNxGtwqD6MAiL+BBOH36aPITNkPnyAtbhtvooWCRv4Sb0PnzohD16IVmBt1zKPgawxPZI0iLGd8dJrjzPmS9z8Szj0O3Hsp5dxWkY/DBpCvR5wcygS+pXJteuzEuXo+MctmEdbzcZN6H34cNNOMVvw6H4cJlMYzfs4nXT0lzHKuwjD+G7Fml9ajvqjU8qpTJpJgM10XFxE+rc3MyMYfg6Unx/Gd+G+tPaarWa76iPLcllHITlX1ar1R/XZJPk68NkM8XMoD5iVOnxk9XjIHRiFW7aLGKVLruHeVij58IaM2P57gk8JNQybHO6pDJMXgyXiwyZ/+oKozpuNf9t79i0TuFx2aTHRyTJ8vklpvlxnqbpeyhHIW1uL+uCb1Y5xqlJZ5tRCXkvbZq0h/mLacSTzPUIIZbwklxjXG/OuA317w/zMMbMYDIDbpMrWIQDlMllzI5N9+s6acry2JRxGuY5eukx9JTrtdwIAbisyhiuVt/A42wXb+qMvJM2TbqHYpXMmtkWDrM/xMH9BWTzAcNjF7LJ/OgWaXn+Sgrjc6VM62KhVVb0qvkWubuL4tsFXF2fNPh2PplMJvWYhzsZV9cnbr6dTyaTSb2AcnBs5lPk7sbDHSaq0axZvhfDN1vE+tspVG9mzWSN/Lkw6ZcLXJd/DR/PqjZVUpXTQ0bPpSyTW17mysr2ucTFbpxh3qosk+l+nk/XV5jQdD1EpZRlkhvleFGBBOV4XWL+sgKWIpiX8nqPsf+0yGD8bcWo6SybyRq5u7i5xNhfZzD9dgfZ9Ql2k2bZPd1eHD57LBD7/zV+BTApjxeiMcOTK8ukvMyVZRKU43WJCVWLcYYpL3NlmSRlmVReSOTFcdK1PLU8DD5msRCiK1ouQN5W7ZGL9pLkLiGJ9pIgz0DeKiF3QXYlTEJyCUmQlWD+fLbugWJxvfja8N1JpRSTj728kTfCBXI3EGeauwDk7aDlXoDcZYAZJpC7C8DkLgOQv7RC8+ESkktIEjCa5crAvFVCLiFJSBKSUJaDlAu5IclfesG8gdwwgVwGIHcZgFxgArkLZCAXSDcmwJxIERw9l5mfbebuZm5nu5m7u5nb2e4yMHl7M3d3GZjc3czdzdxdBiZ/TvsItOnSr5P1ai3hGeKSu7vkOtPdXZL8TMlNy6VM8lZJ7nKXvFWSvK0k+bnA3czdzdzdzBg1GZi8vZm7m7m7mbm7mbsMk5mbmbubmZ9DXHJ3uUvu7pLkrZLk7pK75O4uuUvuLrmxgdAG/G5K/uySP7vkz3eRrNEqjeevv7ScCNGQkC560/v3Mv/dr0ae3lg1GfIXLf/cV0Mv+VjL7ziuYFNwgfzcpt0iN3/5DuDlSumSzZUtLRNd24FJVleulK69zKQd/zn+c/zn+M/x30DACInPk4uIKIvmQEazWERE6Vkij45/oJN0HJPBN96j4xiToOPwBqujN1Rdn/mlz/ShY8ALrKlxMV4BJ9TQcVj2eGysYYb3nT4zqRiv1IXxJb7js8Nq6HjFo1YHhmrGSSbShGSc6sEFPZGsqboIOVZgP5PJ9Et0ZI30Y/jEbl2EPKVZCP9/u0OverSqh45M9hxlOgPkr7Pl9Y65dKxj9Ywd5Ma8J6noDW+wg/jPLkW5iIjSG95kE3GpKB3/Of4bkESrZnhhWLNN6WS/zGkO4Nmldihz2pGzS407kNfAQ9il9GpG2EBp0eT4z/Gf47+B9EhSi2SSu6u9S5K7q627q9VdrTYmGYC5iwiYRKRVAHIBRCRFAIlIbJG2JZEfOr0xJoanm84hh6JbDHu9Ybw69XYILTqd7UcOfGRtp9lpC8X7m9MlLdKmJIpvk8kx3MAibe7rZJXFQ1gtl8nxUB+bcIjv3oZ6kiyHFE9QPQmXPDbNZNM8oi8n2Q+jv9E+JrzrhDGzz6QStuG7/iI06x/GIdm/y2Zz1mEbGTeneHUMnQ/Zh/S+pKyfoAx9GUlUoRMh2w61KyMMk15chG6kbEbA7VGL0PkoIGYZV80K4j5MI1TbLy0twndRAojTu3m9DC3fQdFcYlw2WfbH8AStvr6Cq+YS425TIoHkX046hANyA27Car/dJy3bltuWWRb1eHkM6SJeNbcYt0078y8pTcMpSireVeEB+tkT1HmmLIvk6+aesrlFdMIQkRe5fUkpOy6z2H8Mj9PQ7Ufeh96z5Puk6kfquo0xDg8xxj8/QVfoy0guHpP6tE/rLFsmN1+PmtCJh9CFIrnGuH6CLj6ky6+7o7CNRXKNGYNw+/u7cIP5l5JcTN/W9U0J1eWyfpheHphejyG7O2Gc7jKqt3U9P0B2d8Lc2M7r+67Mv6TkgjwHCS4EICFJIBdIkF+ASSB3N8iE+ZeWXIaZ3GWYZOZm5u5m7m7mLjNM7m7mrTJM/iUmd3l7+XOXP6P882zLebk7/nP8t1UG79rNth/L6zzGlk3q+yy3GYC2R43r5LYAPGOPahLclic7/nP85/jPeuQ9SUUvYQuBu0ff+aNfhpCxKkMqtDjAjLS0cgDmz5foyOrUy4jmPf0SHf98TEsnB1vgvQjWUF20PL8TXUVuBBMtXYQENPm2nDD2CdkBZcSMNClTfaZH3+kzk4rxuUwGELHm2tz4TCrGP0/th+28uoAKWtYBG3RQj1xRQ8dhvlNuBc15aszkPTpWaNOAqGGIR8d8thHbwnZJSq9yuuiUQNc0XNKxCGcP65P9QtIxgSoh6fgFviXtnlxER+nN18k1AU8uIqIsNlsil4roXCqahUtHk5AuFR3/Of5z/Of4z/HfIFJI7i65u1rdXXoKtbaRpLOk84X0FGptI0lnSf+ATgL5vzZALlrlAp0hWuXuAjC1Eeg8YaAzRKvc3QCsnUBfMGR2bpOZJJf0XCQ9lfRaRugTNsbydSUj+/nsdMiQpmNZG5EtTocr5KLs7tdC7i6m29zOD5avp7I2RrE9PebIjeHpNMVaxGKBvlAI0DlNABER0XMQET2FQK9l4iE8RLLjW1gf0zo9rmG0zJC7i+nyCaqb3/YWiHWzWSbzErkoj02G3F16Cp2lV43Ijn/B5O7GtmnqTV0hTkmzTB5k7mKavMHa6AzpKeTu0lk6F4n85hGdy8TuV5fL6WnNcF+gZxJZb4zOMHW36DWJmbm7zNxF0YQOZLO3FGn9If9QNyWjYwYmUTbLKi/un6CColkO/7mzDt9gLu7CskUGJnc3k2Fyd5lheiVhErtwXebTdJLHcbgu3+1DF4m8Dr8uMDeTYXJ3GZjJ3UyGZGBqkWGm84LkLrm7JHeXXNIZvdCLcskluUtyd6lFcqlFOo+IKk3mh3DXP4RH5JLURpJc/DQIN1Fyl1qaGnPpNYgEcoEkGC2foBvIjm/j+zCOxENYxNFSZAK2YRGJ67Dt78M6Qq8jE9umPmZIkGdgEqAM5II8A3vlvI1kQgxCEYm9UMXr5CpyMWjzcGyuMQHKwFyQlTlIgDJBVoK5G2Q56HwgMAOTAXIDA+TuYpqEPTIwQALkArkLBOZuoPNI3IZxzKdFXIQ1EoDcXQByy6cFYAYmUz3HBHrtIcb1AZHdPyDep7v0oQ1llUsswiGO6vGqOZ6grHKJcejGb4+KEJEo0veDJkMMb4+z+Rqu5qdt3cyniOLu2EzW2MukvnYGB5eLuqnXUFSS2IfqIh1FICKxTtb1G0yXg8VkNnlETFez5viQweByXdfZcDRr6vcyY3E/O15eofNBNpSmlaCa5igvMobTDHOR1aOkh1RkDHcZXO0KTGUhMxWlikISxVB2DikHyThTmbUxLv4wzTAZ5W5aYlJ5QTaUqmlOGyirC73+KNM5YhG6MEy2eXIGmOA2KXibzO62q/AImBQfwlDNaDqqLysEqznfNBkMm1n3MA+HWKTJZ1Lv1BxLimV6OvwxLNBLJFcqTx43xJOG1Omy8/tjWgAmqI/5MOwf5/VNiSibDseWeTj+4vAf52Ecq+TYXffCLayS4/x/D5fL3z9ehy50w/Xh1CxLdA4Qh+br1ROU/Lm83CSTIcXxbtCkxwUSg8kw6UFZX3bSpK62TdJ04W6SQ1YPOG228Jh2OH+Y5iFJrrNjr9/CYdk0sxPwdbNpml5O0ez7h6Y7T5P7IS1x3dzl6DWHi4fkf8Jlk8H9ivIsk4jb0IG3ySHGq2SAScRDGJDNmnrQOz5BU+IpGca3Lbdp2e8zOeZlUxexvw3jOAjTGPN6gD2XpmhpuRGzItx1xoERT5r38ssvz0srpZi8nFuVMcYsZ1Xsr8MWSdAL27gLx0nnJqlLuP0qV7t0GmPWzOOhHvZj//IJyhglhxgXYdHvq3egbEYx9qvwgJ0LtmHT+S+dMLveHcItRRpudz/Okz/AY1KVoaUJq/Vj2tTdHyebguvmArLmmqxOs3w5K9A5ZDdK3v94FR5a4jpc/1gNwimuw031k2gQDrEInf42bG523yXXUM/jLswz5K8/puEUy/QO9k3Zz5KbeIbxPtzmMFoKsuMtJmMbrnOumuUwxqK5Z5hu+/GbRjFr5h+q6h9vQpWlnSjWYcFxjkSWyZ8LE15r2AkAL/JfIy9vwUKhUM6qNrig1LdykRHHt4hpOCFBL/RgHEZZjOvwEA9PUNXneB3R/RwUb9OMqGr8eL0pWNWCKsx603cR1mH/j1VVLY/5y2oWd/sYi2T+Q2R+pNisIA7DIJZNLw7bTfLIdfhDjNswjtfHluMtVMmgE8bIzx2u2NuU/avkpr8IYyZL+v24at7tw7jf12JIEXr9bThF4l/SnK9GPzbX75C/9nDTZBIPYRz/kAyq3SK5nWZtoBcGOcZomZ0B+/A2x/LmNkrxIRSr4243XaXr4n82adOajrP0BvEYHrP0EnPBc2Ii81guNMAsiLgWsBLxZCgaSk+E3Q/09PT0TMopldpheP/8I12DjOn3J8S7y7DHqEI3Cuq6aFbVbjyb7DLd38vEQzKMn7A6PR6foGbIqr7AONQhHDtZ7IamNZ1k6OWUrp3B2TpSJA9RjGYqkoco8nrO5Zx+Gb7uc5XeRvhTk8Pi6UQ3hB7yc4jR2Qxju12Wzrfb7X8cherHJHnbLSJnTFEcJBdMjk0oovw1AZRALoBqA8QpKS6XeeyGNEmSJ7pJGOfHt5DfhR7oqeAhdECm+h4Ue2F9TJ6gJEmS8JCl1/+3KIoyy4szFnlzjUnxeTUJnABTSgL3NCQ8Tijn4ROGiSJ0kPh2ufh+k7SGBW3iYJMdwuWP2Q8PSTvR1/R0Hy7jNmz/b1EUWSbzFyLwFkrl+kAQXC2gSAaI0VFFMkCm+f134a576n2/+n2ZpbcY100Gh6czrjahiq8AYJ0eiqtIjpO6rif1NO5uNyG8/b9n7FC8Sy64D/PNAPRF6EweFpQ6AAbYElokolakg6YHxXq9Xn/CktE6y1ouk0M/Ak/1ELb9CNBJhhFW6dVuvV6v5+lhSL0kEqf7d1dnHLif5cBpiz2XBiSTjxSiISFdLmI2b6b9COTzpeCimWfr9Xr92EweS93fA0y+YpQq0j+L3f4iRuZNXoVeH9hu0QvJMLb/4rt+coQdSqlyvV65eKLIl7enJE3aTp/PxfEWuG2aVW6fG50cPIeWUq1DMWXJgDzPJSmSPV6Gu/gsdf1DLyy+EBUApvta41uVKmXfZ1JFyY3LkA4RQMySmz7Z8W38LszXi8XiUJwxu42PYbJeLBaHIUUyL/mEhQ6t8ZtGsA0P76iaJr9KH9rFQxi80yEM0EskmJNwir1wuV4sFocyLsJNnt+EBW2P1xHNk9M7TuF9/CbZ8a77BKVDVl9dwHehl1M0cxiFBWzDAHshKcaZCUmu47+Gj2dUmyqVWSNzLJbLSKzCL3c/lGVZTkPn33t5+Qz9y+QixmpzSeyG7Tr00Ofk26vqOT/z2vB/KaVSaQaNZszkmEdi95uL0zeKkVn9TF/N47t6VqIvPrnyrxx2qDZVUv9HS6zDCHNJ4ioMIGvesgpJaO3G0bGlueVtSELrPrJOm2O4zJAk/pJmGL1k9lWy/DEWT9AZsE9my3CdvWpmo3Zahu9D6zhy+hvtOEv2SBL57DcNpnlznB3DIKdaJvVsUm+G/HF5gekhOdabZQX/dxSWy3CboReS1Z6E4FvLjTgeahG+XFLl2qu3b+crXCJWjYom6VXTOi0AYhF6kavkGuPNps26vw2darsMt3EavoXbsEafE9bwk3G+f42woNralGodx1kYxqsw6B/COq7Dalpsw4r34eYfi1PoxSJ0zrgMFxzviR+TcPuDffERgYfsNJ5BAoxSqfRQrRLRcuWPBfJW5esKy8eVdo9tFwXTsczydaXpY9tFgXH13X4McndRrWVuDLv7QwYX6wpRPl5hDLv7tZC/QtzycSWRPRYaP7bPMKr3pwpzdzeNp5ju58Un7LQDkW33h6xYXzAdy9yYnvbfZUhodzqNhfzF3MdZxIXCX81CLOHm8TiGou4hBnOKtP42fYLqKZJEsTxBOXnAGEwyWB+n5JchmX3967sOf15WUNSjd+hzMX+24Lxzj87QzQwjSqn45Moo52K+TnVB+dU+ro87WHyVNullhjpN2qQdUSxPcXGcIjp1zuoW6Bx36IsPlwCTSr8shFbJqLmBvL1AbiDOFsjdQJwtF4DJWwVyd6NVEsgFyA3A5K8UN5ALEGfLDcC8rUCm+3sAk4v2EsjdjVa5ywBM/oIa0cyavIcQ/LjlZS4py+TKMork4Yfp9AK5u0vZhaQskyvLJMvLXKialmSZrjIksqvc/PPxHG+Rdqv4ZCFEE0+ui0xSdqG8zGXk1a4AGVfTXYFJ2QV5mZsry6Qsk0xXmfy1QPftQgjRGD2X/GzJ3SXX2S65u0uus91dkvxMyVvV6u6Su0tyd0ny52tmLrm7JNfZ7i5JfqbkproWkru72rtL3qpWb5Ukf7GownLjhrkbyAUUySAC8rYGcoFcIHfDXAYYCOQuMP+czMbDuOUmEcwZmAtkmLsATO4CMHcDgbkLJJC7wWuC0Ea8gk3t82nq3Mj8d786cbm7S+4uUYTLKMnPlNxdcnfJ3V3u7pJccsndXfKXXli+XHJ3yV3u7pLkrZLk7i655O4uuUvu7pL/wwQXyM9XTy2y3iPyl3D185Lfks3N/PzmEsi/ZPCSrLbcTf7lspe14z/Hf47/HP85/hsYGB2x0XFAn0zeo+MQVEM8OubNgZLm4Ekqennrw6RM9damnY4BFXMQzalpp+OTqauxLeztkyItxzNy8e1fpGO/DLA+Wr7yfLs9e9dyn8J0XPMuhP2/o2ZE6/73Gt8ZT8e71tmyqOW1ANs6u70Fd5dmWp7h2519dP5bxv0Hmgnp2/ICAA==)

## Three 1080p AVC streams from live source

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

The pipeline shows three 1080p streams taken from the camera and sent to the encoder.
        Each encoded stream is multiplexed into a different file.

Run the
            pipeline:

    gst-launch-1.0 -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/mux1.mp4" camsrc. ! 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/mux2.mp4" camsrc. ! 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/mux3.mp4"Copy to clipboard

To
            stop the use case, press CTRL + C, pull the
            recorded content out from the device using the following `scp` command,
            and then play the content on host PC.

The content from the MP4 files can be played on a media player. Pull the recorded content
            using one of the following
            commands:

    scp -r root@[DEVICE IP-ADDR]:/opt/mux1.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

    scp -r root@[DEVICE IP-ADDR]:/opt/mux2.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

    scp -r root@[DEVICE IP-ADDR]:/opt/mux3.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

The figure shows the flow of the pipeline execution:

Figure : Pipeline for encoding three 1080p camera streams
            
            ![](data:image/png;base64,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)

## Three streams - 1080p AVC, 1080p HEVC, and 1080p YUV from live source

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

The pipeline shows three 1080p stream taken from the camera. Two streams are sent to
        the encoder with one stream encoded as H.264 and the other as HEVC. These streams are
        multiplexed into different files. The third stream is sent to display.

Run the
            pipeline:

    gst-launch-1.0 -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/mux1.mp4" camsrc. ! 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_hevc.mp4" camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! waylandsink sync=false fullscreen=true enable-last-sample=falseCopy to clipboard

To stop the use case, press CTRL + C, pull
            the recorded content from the device using the following `scp` command,
            and then play the content on host PC.

The camera stream is displayed. The MP4 file can be played on a media player.

    scp -r root@[DEVICE IP-ADDR]:/opt/mux1.mp4 user1@[HOST IP-ADDR]:/workspace/Copy to clipboard

    scp -r root@[DEVICE IP-ADDR]:/opt/mux_hevc.mp4 user1@[HOST IP-ADDR]:/workspace/Copy to clipboard

The figure shows the flow of the pipeline execution:

Figure : Pipeline for encoding 1080p AVC, 1080p HEVC, and 1080p YUV camera streams
            
            ![](data:image/png;base64,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)

## Three streams - 1080p AVC MP4, 1080p AVC MPEGTS,  and 1080p AVC MP4 from live source

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

The pipeline shows three 1080p streams taken from the camera and sent to the encoder.
        Each stream is encoded as H.264 and multiplexed into different files – two as MP4 and one as
        MPEGTS.

Run the
            pipeline:

    gst-launch-1.0 -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/mux1.mp4" camsrc. ! 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 ! mpegtsmux name=muxer ! queue ! filesink location="/opt/mux_mpegts.mp4" camsrc. ! 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/mux3.mp4"Copy to clipboard

To stop the use case, press CTRL + C, and
            then pull recorded content from the device using the following `scp`
            commands, and play content on the host PC using a media player.

    scp -r root@[DEVICE IP-ADDR]:/opt/mux1.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

    scp -r root@[DEVICE IP-ADDR]:/opt/mux_mpegts.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

    scp -r root@[DEVICE IP-ADDR]:/opt/mux3.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

The figure shows the flow of the pipeline execution:

Figure : Pipeline for encoding 1080p AVC MP4, 1080p AVC MPEGTS, and 1080p AVC MP4 camera
                streams
            
            ![](data:image/png;base64,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)

## Three streams  – 1080p AVC file save , 1080p AVC RTSP, and 1080p YUV from live source

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

The pipeline shows three 1080p streams from the camera. Two are sent to the encoder
        with each stream encoded as H.264. The first stream is multiplexed and saved to a file. The
        second stream is sent over the network through RTSP streaming. The third stream is sent to
        the display.

Run the pipeline:

    # Run RTSP server in a separate console on target with udpsrc (can be run in backround as service):
    gst-rtsp-server -p 8900 -a <IP address of device>  -m /live "( udpsrc name=pay0 port=8554 caps=\"application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96\" )"Copy to clipboard

    # Run the pipeline in same or another console on target:
    gst-launch-1.0 -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. ! 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 config-interval=-1 ! rtph264pay pt=96 ! udpsink host=<ip_address> port=8554 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! waylandsink fullscreen=true async=true sync=falseCopy to clipboard

To stop the use case, press CTRL + C, and
            then pull recorded content from device using the following `scp` command,
            and play content on host PC.

    scp -r root@[DEVICE IP-ADDR]:/opt/mux1.mp4 user1@[HOST IP-ADDR]:/workspace/Copy to clipboard

The MP4 file can be played on any media player. The streamed video is played as an RTSP
            stream on a host. The third stream from the camera is displayed.

The figure shows the flow of the pipeline execution:

Figure : Pipeline for encoding three 1080p camera streams
            
            ![](data:image/png;base64,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)

**Related Information**  

- [View RTSP stream on host PC](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html#one_stream_1080p_avc_rtsp_from_live_source__section_ayq_2nh_pyb)

## Three stream – 4K JPEG snapshot, 1080p AVC MP4, 1080p YUV from live source

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

The pipeline shows three streams taken from the camera. The first stream is a 4k
        stream for JPEG snapshot. The second stream is a 1080p stream, which is encoded as H.264 and
        then multiplexed. The third 1080p stream is sent to the display.

Run the
            pipeline:

    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_1 ! "image/jpeg,width=3840,height=2160,framerate=30/1" ! multifilesink location=/opt/frame%d.jpg sync=true async=false camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! waylandsink fullscreen=true async=true sync=falseCopy to clipboard

A menu is displayed on the `cmd`line terminal.
1. Select Playing mode, the pipeline starts the
                    streaming.
2. Press Enter.
3. Select the Plugin mode and select
                    `camsrc`.
4. Select Capture image signal.
5. Select either video or still
                        capture.
6. Enter the number of snapshots that you want to capture.

To stop the use case, select Back and then
                Quit the options from the menu.

The MP4 file and snapshots can be played. The stream from camera is displayed.

Pull recorded content out from device and play content on the host PC.

    scp -r root@[DEVICE IP-ADDR]:/opt/mux.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

    scp -r root@[DEVICE IP-ADDR]:/opt/frame*.jpg user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

The figure shows the flow of the pipeline execution:

Figure : Pipeline for three camera streams – 4k to JPEG snapshot, 1080p to encoding, 1080
                to display
            
            ![](data:image/png;base64,UklGRoAfAABXRUJQVlA4THMfAAAvzoNWEGpR3LaNY+0/dur1e0bEBOgR8T18DzfAbbMzhIlPiuvhnuP7YldhZUnokq3I//fMkTOw4eYcGgoKCgoOFBQUsgcKLhwoOHDgwoEDBw4UHCg4cODmHaaqVrem3+d9/bzr99ndt6prwwUc+WAdYaFu8K8yzki3cA6NBvUpmusCUwN1hC4fITYf6Bw2B53gQX/DzUFoL+Ab5D7A8qZOR4hN5hbOOegCDmK+QTvdQdjhBnGjDjJcV3iu8JJ2jlMDVeWbbBI2N8xp+gymfqoWNtEZ5gKO0FVReqp0DEecN/px4k2cdAGVaGOHS4jMKYQGwMD/L6/1wz92zrkvHQvDcDgchmE4DIfhcDgcDofDYRiG4X2/YRYMAIDrVsPh4fu//VcMHh4Gi8VgsFgsFg+LxWKwGAwGi8Hi/oudkbaR/B06E6f+6fPSYixabtvMgYmIWfpwQe8mqf7iTf5/cyxZ6V3zmtd8fzHbHHPMNcdcc80111xzzDHHHLPNNddcb6D0r+pzes/LMH1fi8liESiNXwIng0pDUFxTmfyyERz3RtLZCORPHgP/fzZi3H3Jo/gnM9C+AhEF32TaF3Qah4IK5gQgqDwExQmpQGk0ggMnBCVSUGwaBbovv4iKTkMgJqdKQxR0Si62bQ+q4YthOAzD8MMwDMMwDA+Gw3A4HA6Hww9fHJ6f8FnH/++/JEaSFEmyPpoR+cbM8dJ7i9t/pmE1ttzmj59u+7ZV6xozp9YuU4sd94PO7+3wPNjt46KxCZZc8Rvb872FKVlcxW4lY8ep+FDAbuVht78HVpwItfvfExvuhlAYVPNLwGbycEkra1pVc2tkk1BAU4jYzBKEgJBQNL3ZCFlDIBACAQJHXPASWCSExSVrrEJrzQEEiqAlKNitXEgdEkQF7vbzAEFL4DAlQMsoaA6IQUsQyB4hqOiu26jGWNOHUo215u4OqCioRR8Xs9dBla5UDaXO+Veg1PzTWzM6WmOMamOMVg2Vam00xNnimgkh47VjbXR0dLAbpFyYkxljbf7lqYaU9PUrEHJhXqyad3oK2CMEviDOKjtSrtBM35m99H5QLpU1cSUzlb1WoUjdzJ7W6ReFWUtP52bNLJ8fqOjI096ZT0kBakGMNmEf+mavvXydZ+nBIs+VuvWCEJVK9SHiILOlvGaPUMhFeRFpS2it436hvEzqHwxktNaH+gAu1oGm96XOpgdTCCrn54W5x0RrPVlq1ycOzNlGOlcmlOENIGV2oJ9FAp0v5TQA6P7lDTHRq9JSK5V654kSANpWKQDEIBu11Cduwzbm7E6Qi49Z5ucbdZ5pxSjtVTL1siQAQtBX3tS8Y7IJ22jrzyW0llM4ERD0OXmTgf5EKls7NjakeJBMy6y5V7pYM0koJuBLo3JiIprvXFbnOy9cXDP1qy+VtuEbZVJZFlewJMcMpNPH+Ajsug60CrYxklzDF+aEUW5gw5qA4qF9o9Ow1q+1lis33vLcdDYilrR5Wmblifn1XTpYlx4rHZ5glLv5qoGlUoDWqfWHq+6CUlwXzv01h2aE7FZcf2kND6U7Xz3Zyyh9dhP6cLiWIPVnS918+cu0Ai576zxbsi4NUlfrSpvKBuORRLkiFYoMHK7Z5Pe7Dy3li6rY1dvRrfs3oQ91nhV5cRfXWl9QYZBq7uFcfGjwg1d3cdAtmxAY7maQgt5KzF4GyWQyEjm0XKJHa5VPR5LptpagPzLe15xjxpPJ5Z1FlVvfrV945ZzN0QD879Ow0s8keQg60bLxVyn9wiyAXtqysaXIAb09ygvUX1EOMHhhibH2QDklITG5MCeQ+GwGUMhESxyQTZ7JBZJzLkHJqZAlhHwwoEJO7ZgC3pQCgcDlVNN+xCnJ5RSbFHw6psDAo9AlBL91gdAjq5kTM72mxQUtMLDCpmU5qJAe2ckI90McDPSYnp1CQY/QRkaItnIw2MWBYJ9QSCXpkJICLfDj4ItrJqlQRIEFJhiJUORgsIMDQUlAu4QAqWyGDmVTAGj2CIuZeIYOxRPmTzBKlQmafSBQ5JC2RwjqxLSfK2UC0aEnpLMmvzdF0L/ehhUSlCjbyU2fYJ4eE1zFAW3gQHhCuUQ5BWiT+OQ2pFRjUYMF0CBZjWRFfQjMVzMaZWjRYYIgy8GqdEmbrtZZftRoMcEKDKYPmslqbIUSB4KEFfODx+1TffD8jMyAoEQ1EAfVx8B8M5xxWi1EjAqNVGJUbUrmq52scrRoMcFKOFVaM9lPaXEgxA6qD56t6oldD4IGxWqQ+RmygnJ0RqgwwtjItRZQO9UC1lFhhJZAhen1uP5z/ef6z/Wf67/9ZUFEG4Ho/EMhAC2Hn1s4Aej0Q7FbuVAKgJS/d43rcmycg5US9UFyp6gFMOxR+ttiTkFPzADAoKeYyhjD7qleKox58WLTO3qLXcKOxryMEfgfcpCFQmMTigw2YGYGlPP/GQHDDHcsA9YqFQawDKM+0ODfEvOa6Vv3UtywC6ZiCxh1NHcPg5lfDjxGfKHyegow8CSpSs0FES9fCBNGg8Ymfl1adqLWw8Yx7OfZL36Bs+Gnr59fAf2L+3nzK/qi+um+F/Hzs/sn38fzz+JzOlfDHMz46Tb7Vbf82VH5wgjnbH4blOYk01yFxHXSB/CyFmWQ4cMvQ2vUqfQvn1XxefHJFobxk+W8qEIL7tWss4988AsAoiUw6iwGP9cQSWOcjT+Ng0/D4zzFL4MQ/ARRH43nR7A7Iv48eQS/bCFIiBqN56dhbXhgWbw1TMwe12OEX36Gf+VCB5+XsHN/+rPz5zl1cu1/loKZe19//dd2P7+3TQ7U9EU9uKEOvZpP1tQqmNV09di5E54Yb+m+C8m6N05+NrjJsaSPQGvpZZM/Pc2YrLFgZoZeluHgi5KOQB78uutC/7PEmh0jbejjKdh7Ie/RXBN6LPfMCnoaKOS4NnIt4r0YosCPwN5hnk8ld+YzDQGQuD7dHQ9+jKaC2V304DM+mvqhMLsicjooES9TCKq9QpH02QaLHHPluaWOgRnOKmMkLAywej1m/EQG9Onb0U6kpoEINo3WzVAAGIPNb0wsEvtj0c2SBbeBBkNXX5rKwQZQ0wWA+0UBwE/o4sYm/t62gWxtzTRw5bmt92+rHEgFmDGbX5EVAIyQtiJYFhabIBY5UAIGZr7vANzDGDXAvZSSYbyWuwQmBcAlCFI8Hk0AuPCxvV00niMCAHs9lSBqJl8Wk+anFABRDHzRZH/pirXMRQbDFz74zNZj2J5OlN1eqhqb+MGG+iuY/Kyx6kPQ2boJffABLH/nnH0U1sbwds+Gka/PENDFqRmq1n0NltcU62b8z8P68MjgcAAGqqWs6Wf7EUT/ZG4N424yb9kw8Ik8HBYA4rXOuy4HM3QddjH4SU9EyQaLPi4yIaWWtnX4CKTz0aeeY1BlH8NaA3VowTKlM4z9sUA41477qk8R8LG/1kk4iMEGySFUptrvbf0G9hiGWws2eH8fHjX4qZFOBAdq9aOjWhLC0Os07rpI0u6Qw1WRw+xYwupPQQREj3YR1hbJYaCB/NEaw485tmsL6HUCvhymjE9ANF/giiSGrtuqjuOtVSC+D2sNNtiGyoP8ahshWnNy6GIokL75DvxSdegtDX8CrPP3X17nWUYviEF4kPkpjC1aC4wr7QIAzBiWWrcPWVNQH0Yp0cGdTP04r7cszKjLeLhiAzujqqKxlQFN2iIo90BSlFnTPIKf9CITZGvuOXfw5DGzFpbShnfP20lT0BfFOwDMwGaFR9qe+ce1FjCicvum50C37bJsc6DvF1nr1+Blc0sbPferJd1q4Fg2mV/l4KdSZUpamZVu72jrjmpScsqqwi+O1aopF5JTdk5V6x/BSMr9wY8gfZqsChp3QUGZlhtKYexvPhM5UCi4oePl+JvmypR4hSLn/j2nicqLMmi3B4rhwDFosrL4eAl7osp5kGOJqD8KadYU/iqXnF6P0ipIXrZm2JoCg6nuZRmtwvxrjDW9ARLqgEc/QeBimFkSOkna+qH+a5z5MZgZCGkhs2ZctJTFQBx0o3lPn47AgDqpqd1+iIM5dFHEoqtAg5+FGxLNvRPqijc2EQHjaBZ/uKc1mHcsazqMBjSuCr/dAnj4PB0NejrKckRNhpymEJutLDY0zNMBbUUGbSK5P3sn71eVBT+NaluBMcLlTgwpc7iPQGtr4BeklMHxw+Ktf3gXBxPJ/WYL+/syhq3G0nfgQFn0YUrF/kNN69Gp7AmGghnFCfXBu0tQiUFlTwpEx1c4MaSGlGTHh4cH/h6fMRokH+hqYxEqJPIn7yQuzulDQp3Itq0d4ehAVYLEPzkGH5ZNBN69dBn//FABhO0MVxOg78eSNn1hT5IHS43rZiaQmrYOg45CyIyG7+3W/z2wySDzFaCDGQAszwk1PQqwqfBIa2HE21dPzqxvAYJSIIzbrCwQ+SF6Xxe0sTKgh719/00Ty6HRo3uKexJhCSnSOYQ/9IMYWcEiHXX/C2ErU4rBMqDF06mxRm58vLLTiNbWTGc3fR2lo86zD5DaHARn2MwAZEvk1AkkoW7Ub9+pQj8SWdNaEFHnKW2zamkvw/UhYuVk+cVGG9nxhfFFlEr0COJqA3EJ/QgsNS0SOsUQtlDlAq4y5PSL56R973x9CTO4tocAYNjf72b0yxTFHLirGNYDZFsuUzhuYFDTIxjoK/c0DCyUJ0IdRD2MyF8tq2rpB/pICxhsCnQUgRlgftZeGw0EIgGFNY4+2KCmWw2pKRHIlt7k5VrkniIFGEdaCw9+X1VN46gYiDMqsy4FJtTbsqDu6XxTZVJEyyyIUSGkE59GdkMdoJsxDLIHxwCMlMIfy63AJQbWtMBFWLZUXtJvqrG33DyRItnKQmgvTAY2nQ1pRnCzM9bT7EtTKY/t4cOQ6CGM4RLBcLVE7vuU4eXM+LtVI3Ja57SWnFZZ9uA3y8QqatposGOo2AJ2Rh0MYxqkYFnT8Zwoy7KmrOrI34TOcRjYmrYKPryNVc/i64qTAeQOgwMNLRhr2oIR02Hcm6rwq5OH7btlOR08DgOFYfDjuKVVjk0Q9o4ueUqa9BPuWtLuotZk3bh1YFzT98PeiK1f9cVlC+QK7XYkP8Fl3ZA2Z35cVyhyZWfTbrPMS/Wx3Qs+kdOKyrV4sNUD8rcPHYUvZ8bXF76dwXLWbzXim7vPsrt52f4570FHUwDwIs5/gT8KACWC5Z4W4ezu7q4N5scz9McjQKyGG460F4aOLT9rPI8ohHQAAER+KIyc7o+9qSo/Cx05WA50fU97kVHnu1ynArv+0pxGNyULBCmbp72aIFtzX0dZnS9qCWYZCCOh7qfH3ojn5GfdhfplCnAwFETlJGv15d2QOfOL5t+qFZjnVGqBQFsdA0iaJeILUDcaUgL+KoUxKMs+mAGAgxv1hj6RNLNWa+1pSjW01mcI3WRWbFFYAOrZ+CzyExG9uhWPb9JgYwWzQIOfY3KkMazWmjEPYsG3fg4AMqBYHB1EF0v0KRKJz9tAhakfyyj1p7KlPkSmfgR+hv+/2yTR2xsWDP0IAKTvx8AFZEDbEV7Tjdis1BENYZ7d/+8OOQ/BRHsaQySk+Ejb0QhF9iTSZmnBX6mkJeXgnTEGliaO8hYZBavGOSL9dgLGgLYpUa+k3DDWZTUtgj2MMSyZzwZp5Q+nbbOXAT0CeGi01H413dBrPJffLIMe6qOgxjmCVSxR0Uwz6sDGsHTq2cHttGgS+TFoxrOq9CNUrSNv2tO0bSOgT9n0lvowz+hroz0EBCJBB4c/c1QFotJ/mN66RsSJlBuKgCM99hwkXgXjh4pmcqKB4HvqwM/ua6OhAEAkrX1QhwoqIKTldE5jpFU5nlblViKajkLKHatCcgoFb+gE8xXKjlF3bNyvZr0GzrA78iAM+73j2h7WMMjD+DpUU+6ZkYyzcQ5Woo8dG4Z+vcmmEXqBMFx3Fr24yRZm9zzq7Yg03HOnThVqIO5ns0cYZaok1A6/nirrIRlmw+3+oFEP2DCiU5ZNY7DB4zCbrWGe/9cVZ6RhAtjuEYbrGrkfdtnv3CNuwxRYhBqIwhhqYj7MpnG3toeOAX3o2DzLr1waGB9pPKgZ+1Cjq2GwvcnmRxik4ebhJgF0uJB9mKKXp47I3eEMwV+h7BjC7gQBMwsYoh5gAffK4CpRMwCAPaMZAgDMcGUyq3Fm95zxmkJZQDy2Yoj3VGB0lAvgsaLSAmVCAO4CBsyL4C25GO6ng7JKToMLR3yCywGAwKvkRfOWXK4xvJ7CRrkDjyC4irz25t1XKTtmzwT1ch6fvp2rxONwZRjmC6KZjZLi7nKn7J5Lrqm817toBWbuSaCup0zGzBdN6LHcC8CFjyZy6nDBiBdezmNJr5IXi51rDPeOxrjvwKhBHjN77v2Vww3uRY2eP5f5hBs034FfyG9nzYiaGvySfS8oX4PYsb62ZvdCtjP2+gx5d/UAMLsXtJ0BrhyofxN8cTBlZF8r209wBdF/95/rP9d/rv9c/+1PXSz2HxpkEaeNUGGEsZG3WAItJmgBlBhfzF75CfXEqFBAfQjM947Ahg5de3vzfeDrtJjg86ZrzXQxOtTzfRulXnjuNkT8ROjQNoTOvdh8ta7hw8YVlOgzg+b7ATUmuAkKoyardTVajO8WVxbskodQLEzSouEioNmzjk9So5XmTzBDjwnmAG3hQFidCIzPJhDZRY8APZNNSU6NVFSgnUzQFsYH6NklD4EeofnDFkCNhEDbmCAItIfxoWefPKRHVpg2TbLDCdL2kLYNzCDXf67/XP+5/nP95/rvQF5R5F6C9nXnSocNCnqEVkKbeTpqUEh6JNBCqDNPBw0CJDK0KAECrYM+83TMIKhc+pgygeiQXyjJeESgZSCobIUitJjnMZGsEuic4fOvySZA1UgoURVm2zDlYgVWwidXRGnRimEFTprJK2LUeBpvVlMfvINoMc+eg1odN/+hw9OzrMFFEHt6LqCu/w4wwHDMFYGYqoV51tgEJ5Gu84yVWntY3cLu0k2irjV9zNTNR8m0oZud7l5cs93KBZGCnmc6I8Vhgkh7lBf0WCkFpC75xUyRenVz/ef67wA42NXJSgD3jl7D0xR6ZF5NYsD0foFgAMwGAKA0PGGhdwT4alKcWAMwdKIBuz3GeYw00eAnEH3HxoNOrsFf22KvgAsKnjiHX2D4YgbjJoXWjDe0Fjuht4NmLAN/fwFWCmeldtcwEr/72hYbGObeHbgCjFFTjDG9HCVi58phNeMF5OK1jFEWNbgpU/x5A+T9SBY0fR+Ha+loDzWQPXY3OIZnCKOEs4NeK2kOLANYBpgB1lADAOu6HDNgLWCUHLas5pgXjydZi3cMADdBKtm5AiCQmiKBAAr33AY4Q3VuYYZaYBwdlCzHlcExa88ptEA8LNpz1deww+k2a4c6z9p5DMR3RZsdgetNV7eh6H7VZluYFw2GnofrZTu2SdbOrqHnBxgsHhJx3JRllSfLfdj47U28eS33DiTzohhfA7ar2mqqgfBWY5Al4+KcOvQIBtVve2IOK8aB/rs+0R3Spnld9+kG9lxRMQ0pq4av/QzvqvZ1fUtHiYOguD3azA8HGR3BzxtENKz1q++n9PtqHNIddDBzvKFtz+DXXTNNj7R+zPxZHfk3PbL1l4MwKFIJaVyHtAEmvpY+NZtuQmtxjGq6eZ/TihH5M4gcWp2cq2Qko5vmDHkZJIIJvRHp+9c51X/hjri/lrgp3oscaC3CyxuY5wwKADSqWEWCjLYi40C/am8cR4frhDhGNeUSB2NHgmqJ0Siik5xTgdHo+D1j1mgJKYToYOiot/4JPbF1TqsjLYTB2kI4364nzTWfqwzAZ9HqDIF7P0rL5vtECxAHUwE2KwbDar7cE1ZIRBUHMLqZAJgUDIT+tfWGrGL0DChxyWM65UmSt+eEIU2OMcTlbQzY6vdIyo2/6X11XB0oB7MB8F/nqim+CVY9bHDX6J5ctg9Eq752nGBsr2nHwOUSVghke7vixhmHNZckoaZdOUd2hulNQP48gUsEvDqnzyvH29Uq/jrWgBIwQ7ClWW7RD7x1/ncyQj7Y0FjFWcXgy3VeYxPKGumZU8cHMPhZpetDQEzvBGP9NCJ6/e76+tpaFknXJ7+JvW2Q0Ckub3Gy8yqh1wLZj9Ppl+YMBTK+UJSctAh+KBSMMcUCHDo2l2TtYfPOSfxEa5T5uw/AR+DKwbFJYridC+TeA+QiiS3vBMBhcIb9R5FRTVu5gHqRQY/j+g8Ze+s/vnvfBvZAnU4PfuN48EBRTuP03b78VuJy7Mj9H96/O9IJfGl601Zp4MpzS/df/6gyrhmwUrSKWCZlkt4HPWXai/jgwR9LR3s50EHrjkIU5Y/v0kkZYxZoCSl3FJn6q+vGf6ID+w/Fc79tzlWCdE7NanPbXvMyc3zbus7ugtU3/u9jxM0JzHhsg9a/0Zd4Q5OLPi5S1qj4g2EfgdLo7W5k6K/1zM6pp4wlb/2gOgVbGTepPJb+cbtYj2q/981JBou9cFi2rT+1yKvym2a1BoYrhx85qg0SvwOi4NlP7ok5rD++wkB+3J4hGLw/Jqxzy1HEhuOcDdL8FRA/HhMG2zxm5efrJ/KYX+rZDSnS0hrpH3SMtksDu3eG85gNxxEbXOeWka632uYacW4Z0TbVuYbOX8HmMdJcs+ntGQEMuz8+plCWVpINR+/xKk/BiN/rvNqxAQBW78AAhpUKQP2XczXL8M6ov3awK+P5u9rGbqmN/ay4stYFkwEGUCIMAADuGVnZ2bWn1+4AK91qgUeKA3smFzOz6w6c83e98z0ud0GWd+Xz9v/dOCUNfr9796RrMXtFMHtUsWvPC5b0mtx7fGZ1njUKQLZ8USNE5nzJQdd/rv9c/7msIBRDRSiBjI8Fb6YjkIVae9i9TryYTC+Mg0AmqjdNqN50VglkoQ+GiykiJXLpggKmx2o301Gp5AvZHsvdTEcyEHSI3Pe7CaNCTpwRShQj9NNoZMVoMc+DnDY+FK69iA5VoLcJbVjN6k2wQYt5XvukYe6gEZGVNcb42+3p0N/6MlJYiJDZGmtQY57nxKVw0EShsQnN6ZDmMIWeZXg4BZwu83TKBJaAQI8QPQvxkDLzdM54gR30yPMsxaPLPJ0zlBkZaTTN9Z/rP9d/rv9c/7n+c/3n+s9VAl2fNBGyEHR9SmMC2Q8UwOkRRAWyHihk4pY3/z8dmq61wRMjLIg6bxtWuPYtlOhTc09HAxPi56hnhBL5SZt3OpwR+XSMErEk62jQf1z/uf5z/ef6z/XfgRsz5rKajLkg9qoS946na3qaiCtJjDP89gDzxE3Xm4G7iTHYXINdP8ZgnoKv6DDzRZdzNyhN0M3cwewK8fr9nhkRnWDUEsahjeHKMhj7asQVHIaAGQArBQYiAqM0KE26/RZGrWGlDwLj5BqIxP4UrtAdAx5ZBtMmhgHAV24YSRcD1/cxkHYLYN8f9/fAotNgxN176wCvp+NDBLyqE92djmwYtj51+3IKxN24v4BBUmt+s9f3p9pCgfXra/CVFERD1jSAdBRCjjSQPp2rSeV3UlPt6FPEDr3xs3kbLCRtllVxTnSCklI11Jd8FWwqmgL9tzEX1UNR0dA6UunoZK+moBBoRBrMgAlljKmfRjQFcFda20wA22a9E1LTEdDt70UXfmcxplimtIDtHENfC6ZVKt+XMVcUWoSUy7R5daT+FdUJnJIShJHd85bTJmsiVBl0AjD6fiSn8loW9EZ6Z8c5wPaHivVqKJAj7TmYCZD6DqpT4BUjDGIuNoAsaC3TtvP7MFc3FzEYNKQkpSUYMPDjx2Df1K/8ELBd9k1RBrkkVI9OjUaPxP1l0fqV1asxGEdKYj8EI/ankn9DZTbQUN3BYEtH6X9piAbCu6saRuOP7n10QvPwRf76VGEz2/qJpMvg+/WPJz8HV3Pb3kA5kTRF95j/UHiJ3h5UELu+aWmZimKuWEufDt/6OfgKRqZCkQVxppXR9OEdPgLJ/mimjKMwv99tkM2L/qhbzb6x0tEncoRRRznQNYPfmEXPEL/ztUAmXvbav5GePvJY8K6j+iLT4AzTILuSOXtpum3wZUYbHC+duwl98AGk6+ZOmSBhYhzI30tU0hQIaS8SL31H3DRLaxSbwLFoKg8L2QSx2BsKkVVWRmtaX6i5lpo6uWrhIUB73nj9faXS8Lk1xtp1G5QJFLaEWguuaAtEbTmbVw19B4MbOoChm7ms37Y3m8IvrC6Hjpq2kjfNp2nV0lTWVIxn/tzKlGJebVxnj/0Y2FACvmLhIShuPH34/c/tG9OZR4bN1lsYLAavwIimk/E+H6Rgqf0IbOybBbAYTvrR9si23oMRDWIg7k8OcZ0AyWkyG1ggqTUft2DEg7gXAcTd/uqFh0AgfvjomOIGTv1gBnjHUK/nOliwnMP0/koPNu4Y41HIAOAZoMSzRxbArL4kVy48JBAs+riQHMCA3U59qw71esYYZjZ2MKE92BXFSgx7FzIrKWppL8k7y+sl+XqPfQ0WJoD0iZkM3ZYdzNfg7wWF3h84kLZjjrXz9aqS53nE7WI9gReGTPnrN1u2bp3rP9d/rv9c/7n+O+CttTE6xI74mVKFqBoJJbrn65kQmRo/plwiOlQm0TFjDIiHAhKLPha0KLFbuQi8MB8eCkmPAi8MiIeCHqHHhHhIjzzHzH7mXP/tLxcjrhnMuCAprdhxOjU0VEjF2XGpwtCWj78b2uG5N8SO++jQlo+/BwA=)

## Two stream – 1080p MJPEG encoder

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

The MJPEG encoder encodes and writes the captured video stream in an MJPEG format.
        Run the use cases for encoding, saving to file, and previewing on display.

Note: For QCS9075, the MJPEG video encode is currently not
                supported.

The following are the various 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/.

## Slice-based encoding

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

With slice support for video encoding, the video stream is divided or sliced into
        multiple separate sections so that you can encode them in parallel.

You can use slice-based encoding for video playback, teleconferencing, and security
            camera use cases.

The following commands enable you to implement slice-based encoding on a camera
            stream.

### H.264

- 1280x720, maximum slices per frame =
                    10:

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 extra-controls="controls,slice_partitioning_method=1;" ! filesink location="/opt/encoded.h264"Copy to clipboard
- 1280x720, slices per frame =
                    8:

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 extra-controls="controls,slice_partitioning_method=1,number_of_mbs_in_a_slice=460;" ! filesink location="/opt/encoded.h264"Copy to clipboard
- 1920x1080, slices per frame
                    =3:

        gst-launch-1.0 -e qtiqmmfsrc ! 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 extra-controls="controls,slice_partitioning_method=1,number_of_mbs_in_a_slice=2720;" ! filesink location="/opt/encoded.h264"Copy to clipboard
- 1280x720, Max Bytes
                    mode:

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 extra-controls="controls,slice_partitioning_method=2;" ! filesink location="/opt/encoded.h264"Copy to clipboard

### H.265

- 1280x720, maximum slices per frame =
                    10:

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=5 output-io-mode=5 extra-controls="controls,slice_partitioning_method=1;" ! filesink location="/opt/encoded.h265"Copy to clipboard
- 1280x720, slices per frame =
                    8:

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=5 output-io-mode=5 extra-controls="controls,slice_partitioning_method=1,number_of_mbs_in_a_slice=460;" ! filesink location="/opt/encoded.h265"Copy to clipboard
- 1920x1080, slices per frame =
                    3:

        gst-launch-1.0 -e qtiqmmfsrc ! 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 extra-controls="controls,slice_partitioning_method=1,number_of_mbs_in_a_slice=2720;" ! filesink location="/opt/encoded.h265"Copy to clipboard
- 1280x720, Max Bytes
                    mode:

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=5 output-io-mode=5 extra-controls="controls,slice_partitioning_method=2;" ! filesink location="/opt/encoded.h265"Copy to clipboard

## Intra-frame smart codec (H.264 and H.265)

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

Intra-frame (I frame) is a data compression technique that enables smaller file sizes
        and lower bitrates. Run the use cases for 1080p@30 HEVC streams with smart codec and noise
        reduction.

### 1080p@30 HEVC stream with smart bitrate, smart framerate, and smart GOP – noise
                reduction enabled

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 levels-override="LevelsOverride,bitrate_static=160000,bitrate_low=358000,bitrate_medium=700000,bitrate_high=1400000,fr_static=16,fr_low=4,fr_medium=2,fr_high=1;" roi-quality-cfg="ROIQPs,car=2,person=1,tree=-2;" encoder="v4l2h264enc" max-bitrate=4200000 name=scb ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 levels-override="LevelsOverride,bitrate_static=160000,bitrate_low=358000,bitrate_medium=700000,bitrate_high=1400000,fr_static=16,fr_low=4,fr_medium=2,fr_high=1;" roi-quality-cfg="ROIQPs,car=2,person=1,tree=-2;" encoder="v4l2h265enc" max-bitrate=4200000 name=scb ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard

### 1080p@30 HEVC stream with smart bitrate only – noise reduction enabled

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 smart-framerate=false smart-gop=false encoder="v4l2h264enc" max-bitrate=4200000 name=scb ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 smart-framerate=false smart-gop=false encoder="v4l2h265enc" max-bitrate=4200000 name=scb ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard

### 1080p@30 HEVC stream with smart bitrate, smart framerate, and smart GOP – noise
                reduction disabled

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h264enc" max-bitrate=4200000 name=scb ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h265enc" max-bitrate=4200000 name=scb ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard

### 1080p@30 HEVC streamed over TCP with smart bitrate, smart framerate, and smart
                GOP – noise reduction enabled

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h264enc" max-bitrate=4200000 name=scb ! queue ! h264parse config-interval=1 ! mpegtsmux name=muxer ! queue ! tcpserversink port=8900 host=<ip_address> camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h265enc" max-bitrate=4200000 name=scb ! queue ! h265parse config-interval=1 ! mpegtsmux name=muxer ! queue ! tcpserversink port=8900 host=<ip_address> camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard

To play the stream over TCP, do the following on the Windows host:

1. Open the VLC media player.
2. Select Media &gt; Open Network Stream
                    or press CTRL + N).
3. Enter tcp://&lt;ip\_address&gt;:8900/live.
4. Click Play.

### 1080p@30 HEVC stream with smart bitrate, smart framerate, and smart GOP – noise
                reduction enabled

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h264enc" max-bitrate=1000000 name=scb ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! tee name=split ! queue ! scb.sink_ctrl split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/opt/yolov8_det_quantized.tflite ! queue ! qtimlvdetection threshold=50.0 results=5 module=yolov8 labels=/opt/coco_labels.txt constants="YOLOv8,q-offsets=<-107.0, -128.0, 0.0>,q-scales=<3.093529462814331, 0.00390625, 1.0>;" ! text/x-raw ! queue ! scb.sink_mlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h265enc" max-bitrate=1000000 name=scb ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! tee name=split ! queue ! scb.sink_ctrl split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/opt/yolov8_det_quantized.tflite ! queue ! qtimlvdetection threshold=50.0 results=5 module=yolov8 labels=/opt/coco_labels.txt constants="YOLOv8,q-offsets=<-107.0, -128.0, 0.0>,q-scales=<3.093529462814331, 0.00390625, 1.0>;" ! text/x-raw ! queue ! scb.sink_mlCopy to clipboard

### Concurrent two 1080p@30 HEVC streams with smart bitrate, smart framerate,and
                smart GOP – noise reduction enabled

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview video_1::extra-buffers=20 name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb1.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h264enc" max-bitrate=4200000 name=scb1 ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_scb1.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1 ! queue ! scb2.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h264enc" max-bitrate=4200000 name=scb2 ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_scb2.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! tee name=ctrl_t ! queue ! scb1.sink_ctrl ctrl_t. ! queue ! scb2.sink_ctrlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview video_1::extra-buffers=20 name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! queue ! scb1.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h265enc" max-bitrate=4200000 name=scb1 ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_scb1.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1 ! queue ! scb2.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h265enc" max-bitrate=4200000 name=scb2 ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_scb2.mp4 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! tee name=ctrl_t ! queue ! scb1.sink_ctrl ctrl_t. ! queue ! scb2.sink_ctrlCopy to clipboard

## MJPEG video encode in CPU and GPU

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

For MJPEG encoding, if the hardware is not available, support is required for CPU and
        GPU. The use cases include the capabilities to encode 16 channel 1080p@2fps
        video.

Note: For QCS9075, the MJPEG video encode is currently not
                supported.

### Prerequisites
For MJPEG encoding, support
            for 1080p@2fps in CPU/GPU is required.
Set the following environment variables before
                running the use
                cases:

    export XDG_RUNTIME_DIR=/dev/socket/westonCopy to clipboard

    export WAYLAND_DISPLAY=wayland-1Copy to clipboard

### YUV file 1920x1080@30 → 16 x jpegenc → AVI file

    	
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg1.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg2.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg3.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg4.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg5.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg6.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg7.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg8.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg9.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg10.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg11.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg12.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg13.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg14.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg15.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg16.aviCopy to clipboard

### YUV file 1920x1080@30 → 12 x jpegenc → AVI file and 1920x1080@30 AVI → 12 x
                jpegdec &gt; JPEG

    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg1_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg2_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg3_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg4_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg5_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg6_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg7_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg8_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg9_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg10_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg11_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg12_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg1.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg2.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg3.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg4.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg5.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg6.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg7.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg8.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg9.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg10.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg11.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg12.aviCopy to clipboard

## Enable 24 end-to-end concurrent video sessions

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

Run the use cases for 24 parallel 1080p streams taken from files and sent to a
        display. Each stream is displayed at different positions on the screen.

### H.264 – 24 session decode

    ulimit -n 4096 && gst-launch-1.0 qtivcomposer name=mix sink_0::position="<0, 0>" sink_0::dimensions="<240, 270>" \
    sink_1::position="<240, 0>" sink_1::dimensions="<240, 270>" \
    sink_2::position="<480, 0>" sink_2::dimensions="<240, 270>" \
    sink_3::position="<720, 0>" sink_3::dimensions="<240, 270>" \
    sink_4::position="<960, 0>" sink_4::dimensions="<240, 270>" \
    sink_5::position="<1200, 0>" sink_5::dimensions="<240, 270>" \
    sink_6::position="<1440, 0>" sink_6::dimensions="<240, 270>" \
    sink_7::position="<1680, 0>" sink_7::dimensions="<240, 270>" \
    sink_8::position="<0, 270>" sink_8::dimensions="<240, 270>" \
    sink_9::position="<240, 270>" sink_9::dimensions="<240, 270>" \
    sink_10::position="<480, 270>" sink_10::dimensions="<240, 270>" \
    sink_11::position="<720, 270>" sink_11::dimensions="<240, 270>" \
    sink_12::position="<960, 270>" sink_12::dimensions="<240, 270>" \
    sink_13::position="<1200, 270>" sink_13::dimensions="<240, 270>" \
    sink_14::position="<1440, 270>" sink_14::dimensions="<240, 270>" \
    sink_15::position="<1680, 270>" sink_15::dimensions="<240, 270>" \
    sink_16::position="<0, 540>" sink_16::dimensions="<240, 270>" \
    sink_17::position="<240, 540>" sink_17::dimensions="<240, 270>" \
    sink_18::position="<480, 540>" sink_18::dimensions="<240, 270>" \
    sink_19::position="<720, 540>" sink_19::dimensions="<240, 270>" \
    sink_20::position="<960, 540>" sink_20::dimensions="<240, 270>" \
    sink_21::position="<1200, 540>" sink_21::dimensions="<240, 270>" \
    sink_22::position="<1440, 540>" sink_22::dimensions="<240, 270>" \
    sink_23::position="<1680, 540>" sink_23::dimensions="<240, 270>" \
    mix. ! fpsdisplaysink text-overlay=true video-sink="waylandsink fullscreen=true" -v \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix.Copy to clipboard

### H.265 – 24 session decode

    ulimit -n 4096 && gst-launch-1.0 qtivcomposer name=mix sink_0::position="<0, 0>" sink_0::dimensions="<240, 270>" \
    sink_1::position="<240, 0>" sink_1::dimensions="<240, 270>" \
    sink_2::position="<480, 0>" sink_2::dimensions="<240, 270>" \
    sink_3::position="<720, 0>" sink_3::dimensions="<240, 270>" \
    sink_4::position="<960, 0>" sink_4::dimensions="<240, 270>" \
    sink_5::position="<1200, 0>" sink_5::dimensions="<240, 270>" \
    sink_6::position="<1440, 0>" sink_6::dimensions="<240, 270>" \
    sink_7::position="<1680, 0>" sink_7::dimensions="<240, 270>" \
    sink_8::position="<0, 270>" sink_8::dimensions="<240, 270>" \
    sink_9::position="<240, 270>" sink_9::dimensions="<240, 270>" \
    sink_10::position="<480, 270>" sink_10::dimensions="<240, 270>" \
    sink_11::position="<720, 270>" sink_11::dimensions="<240, 270>" \
    sink_12::position="<960, 270>" sink_12::dimensions="<240, 270>" \
    sink_13::position="<1200, 270>" sink_13::dimensions="<240, 270>" \
    sink_14::position="<1440, 270>" sink_14::dimensions="<240, 270>" \
    sink_15::position="<1680, 270>" sink_15::dimensions="<240, 270>" \
    sink_16::position="<0, 540>" sink_16::dimensions="<240, 270>" \
    sink_17::position="<240, 540>" sink_17::dimensions="<240, 270>" \
    sink_18::position="<480, 540>" sink_18::dimensions="<240, 270>" \
    sink_19::position="<720, 540>" sink_19::dimensions="<240, 270>" \
    sink_20::position="<960, 540>" sink_20::dimensions="<240, 270>" \
    sink_21::position="<1200, 540>" sink_21::dimensions="<240, 270>" \
    sink_22::position="<1440, 540>" sink_22::dimensions="<240, 270>" \
    sink_23::position="<1680, 540>" sink_23::dimensions="<240, 270>" \
    mix. ! fpsdisplaysink text-overlay=false video-sink="waylandsink fullscreen=true" -v \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix.Copy to clipboard

### AV1 – 24 session decode

    ulimit -n 4096 && gst-launch-1.0 qtivcomposer name=mix sink_0::position="<0, 0>" sink_0::dimensions="<240, 270>" \
    sink_1::position="<240, 0>" sink_1::dimensions="<240, 270>" \
    sink_2::position="<480, 0>" sink_2::dimensions="<240, 270>" \
    sink_3::position="<720, 0>" sink_3::dimensions="<240, 270>" \
    sink_4::position="<960, 0>" sink_4::dimensions="<240, 270>" \
    sink_5::position="<1200, 0>" sink_5::dimensions="<240, 270>" \
    sink_6::position="<1440, 0>" sink_6::dimensions="<240, 270>" \
    sink_7::position="<1680, 0>" sink_7::dimensions="<240, 270>" \
    sink_8::position="<0, 270>" sink_8::dimensions="<240, 270>" \
    sink_9::position="<240, 270>" sink_9::dimensions="<240, 270>" \
    sink_10::position="<480, 270>" sink_10::dimensions="<240, 270>" \
    sink_11::position="<720, 270>" sink_11::dimensions="<240, 270>" \
    sink_12::position="<960, 270>" sink_12::dimensions="<240, 270>" \
    sink_13::position="<1200, 270>" sink_13::dimensions="<240, 270>" \
    sink_14::position="<1440, 270>" sink_14::dimensions="<240, 270>" \
    sink_15::position="<1680, 270>" sink_15::dimensions="<240, 270>" \
    sink_16::position="<0, 540>" sink_16::dimensions="<240, 270>" \
    sink_17::position="<240, 540>" sink_17::dimensions="<240, 270>" \
    sink_18::position="<480, 540>" sink_18::dimensions="<240, 270>" \
    sink_19::position="<720, 540>" sink_19::dimensions="<240, 270>" \
    sink_20::position="<960, 540>" sink_20::dimensions="<240, 270>" \
    sink_21::position="<1200, 540>" sink_21::dimensions="<240, 270>" \
    sink_22::position="<1440, 540>" sink_22::dimensions="<240, 270>" \
    sink_23::position="<1680, 540>" sink_23::dimensions="<240, 270>" \
    mix. ! fpsdisplaysink text-overlay=false video-sink="waylandsink fullscreen=true" -v \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix.Copy to clipboard

### H.264 – 12 sessions decode and encode

    ulimit -n 4096 && gst-launch-1.0  filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_1.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_2.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_3.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_4.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_5.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_6.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_7.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_8.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_9.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_10.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_11.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_12.mp4Copy to clipboard

### H264 – 24 sessions encode

    gst-launch-1.0 filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_0.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_1.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_2.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_3.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_4.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_5.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_6.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_7.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_8.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_9.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_10.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_11.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_12.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_13.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_14.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_15.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_16.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_17.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_18.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_19.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_20.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_21.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_22.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! filesink location=/opt/enc_23.h264Copy to clipboard

## AV1 decoder and 4K VP9 decoder with 240 fps playback

Source: [https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50/topic/camera-and-video-encode.html)

Run the decoding use cases with the AV1 and VP9 decoders. These use cases are only
        applicable to QCS9075.

### AV1 use cases

- 3840×2160

        gst-launch-1.0 filesrc location=/opt/SeaOtters_AV1_3840x2160_30_25.0Mbps_Main_no_audio_30.0.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! fpsdisplaysink video-sink="waylandsink fullscreen=true" -vCopy to clipboard
- 1920×1080

        gst-launch-1.0 filesrc location=/opt/CaribouHerd_AV1_1920x1080_30_39.38Mbps_Main_AAC_34.472.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! fpsdisplaysink video-sink="waylandsink fullscreen=true" -vCopy to clipboard
- 1280×720

        gst-launch-1.0 filesrc location=/opt/SeaOtters_AV1_1280x720_30_29.68Mbps_Main_AAC_60.008.mkv ! matroskademux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! fpsdisplaysink video-sink="waylandsink fullscreen=true" -vCopy to clipboard

### VP9 use cases

3840×2160 with 240 fps

    gst-launch-1.0 filesrc location=/opt/test_UHD_240FPS.ivf ! ivfparse ! queue ! v4l2vp9dec capture-io-mode=5 output-io-mode=5 ! queue ! fpsdisplaysink text-overlay=false video-sink="fakesink" -vCopy to clipboard

Last Published: Jan 30, 2026

[Previous Topic
Camera](https://docs.qualcomm.com/bundle/publicresource/80-70017-50/topics/camera.md) [Next Topic
Multi camera/Multi client use cases](https://docs.qualcomm.com/bundle/publicresource/80-70017-50/topics/multi-camera-multi-client-use-cases.md)