# Render recordings from Video raw data

**URL:** <https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344>\
**Category:** Meeting SDK\
**Created:** [February 15, 2022, 2:59pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344 "2022-02-15T14:59:12Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![sukitha.jayasinghe](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sukitha.jayasinghe/32/33844_2.png) [@sukitha.jayasinghe](https://devforum.zoom.us/u/sukitha.jayasinghe)\
**Post date:** [February 15, 2022, 2:59pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/1 "2022-02-15T14:59:12Z")

</div>

Hi All,  
I managed to implement raw recording feature and get access to audio and video data buffers. I understand that audio has mixed stream which can directly save and convert to other formats. We have implemented _IZoomSDKRendererDelegate_ which gives us access to _YUVRawDataI420_ data structure. Process of combining these videos is not clear, we have sets of method in YUVRawDataI420 class and not sure how to use them. Is there a way we can get access to the mixed stream same way we are doing in Audio raw data access? If not, what are the steps to combining them to a proper template? I can see there are helper classes such as _IYUVRawDataI420Converter_. Can I use them to combine these streams? How we map video source id to user id? It is great if some one can show me the correct direction.

Thank you !!!

---

<div class="post-metadata">

**Author:** ![sukitha.jayasinghe](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sukitha.jayasinghe/32/33844_2.png) [@sukitha.jayasinghe](https://devforum.zoom.us/u/sukitha.jayasinghe)\
**Post date:** [February 17, 2022, 3:43pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/2 "2022-02-17T15:43:57Z")

</div>

I converted YUV420P buffer to mp4 using the below command.

ffmpeg -f rawvideo -pix\_fmt yuv420p -video\_size 640\*360 -framerate 25 -i 16778240\_16778241.yuv -f mp4 16778240\_16778241.mp4

The converted video seems YUV planes are not overlapped properly.

 ![mixed.PNG](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/f/f/ff574d91a5e50e2fa63d366eeb172544f1ee5f0c.jpeg)

Then I tried to extract planes separately and found there is a black stripe between each plane.

[ffplay](https://www.videohelp.com/software/ffmpeg) -vf extractplanes=y -f rawvideo -pixel\_format yuv420p -video\_size 640x360 -i 16778240\_16778241.yuv

 ![yplane.PNG](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/d/a/da8758532f50e208d9e8653a45c75984f3824750.jpeg)

![uplane.PNG](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/7/2/728a4732afa38742ab3b50c748cad544269cf0c1.png)

![vplane.PNG](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/b/f/bfc498970f791512931d0013a506eeb5a26913ce.png)

Can someone help me to identify the cause of this issue? I think this is related to the padding or Stride. But I don’t have enough information about the format. Its great some can point me to the document with those details.

Thank You!

---

<div class="post-metadata">

**Author:** ![jon.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jon.zoom/32/13495_2.png) [@jon.zoom](https://devforum.zoom.us/u/jon.zoom)\
**Post date:** [February 22, 2022, 11:15pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/3 "2022-02-22T23:15:56Z")

</div>

Hi @sukitha.jayasinghe,

Our video raw data uses YUV420p format. The [Wikipedia article](https://en.wikipedia.org/wiki/YUV) should get you pointed in the right direction for deciphering the encoding of each frame. 🙂

> How we map video source id to user id?

When you subscribe to the video data of a user, you provide their user ID in the `subscribe` method. You can use this to map the raw data to the user.

Thanks!

---

<div class="post-metadata">

**Author:** ![sukitha.jayasinghe](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sukitha.jayasinghe/32/33844_2.png) [@sukitha.jayasinghe](https://devforum.zoom.us/u/sukitha.jayasinghe)\
**Post date:** [February 23, 2022, 3:09am UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/4 "2022-02-23T03:09:14Z")

</div>

Hi Jon,

I managed to extract YUV420p images and create videos out of them. But there are some issues related to binary format. If you check the above images, you will be able to see there are black stripes in the U plane and the V plane. I can see this behavior in remote videos but not in the self video.

Thank You!!!

---

<div class="post-metadata">

**Author:** ![jon.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jon.zoom/32/13495_2.png) [@jon.zoom](https://devforum.zoom.us/u/jon.zoom)\
**Post date:** [February 24, 2022, 7:21pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/5 "2022-02-24T19:21:35Z")

</div>

Hi @sukitha.jayasinghe,

This appears to be an issue with how you are rendering the frames, rather than something wrong with the SDK itself. I would recommend checking your renderer against other implementations to find what is going wrong.

Thanks!

---

<div class="post-metadata">

**Author:** ![sukitha.jayasinghe](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sukitha.jayasinghe/32/33844_2.png) [@sukitha.jayasinghe](https://devforum.zoom.us/u/sukitha.jayasinghe)\
**Post date:** [February 26, 2022, 3:36pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/6 "2022-02-26T15:36:04Z")

</div>

Hi Jon,

> [@sukitha.jayasinghe](#):
>
> I can see this behavior in remote videos but not in the self video

I am using the below method to access frames from both self-view and remote views.

`onRawDataFrameReceived(YUVRawDataI420* data_)`

What I can see is every time the self video is perfect, all the remote videos have a color shift like the first image. I can provide frame binary for both the self-views and remote views. I am posting this after validating this multiple times. It’s highly appreciated if you can help with this.

 ![remote.PNG](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/4/4/4460dfc162bffd37958feae040eed372d01aafe2.jpeg)

 ![self.PNG](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/d/6dff1df0591be0dff34e0d2dafbde89d4644a12e.jpeg)

Thank You!!

---

<div class="post-metadata">

**Author:** ![sukitha.jayasinghe](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sukitha.jayasinghe/32/33844_2.png) [@sukitha.jayasinghe](https://devforum.zoom.us/u/sukitha.jayasinghe)\
**Post date:** [February 28, 2022, 2:47pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/7 "2022-02-28T14:47:25Z")

</div>

Ho Jon,

> [@sukitha.jayasinghe](#):
>
> What I can see is every time the self video is perfect, all the remote videos have a color shift like the first image

I can confirm that the Screen-share is also free from the above issue.

 ![Share.PNG](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/3/0/30cfe1d4c4efad5e84e5b24cfa38e152e33fbfdf.jpeg)

Thank You !!

---

<div class="post-metadata">

**Author:** ![jon.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jon.zoom/32/13495_2.png) [@jon.zoom](https://devforum.zoom.us/u/jon.zoom)\
**Post date:** [February 28, 2022, 10:06pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/8 "2022-02-28T22:06:29Z")

</div>

Hi @sukitha.jayasinghe,

Can you please send one frame of the raw video data you are receiving so that we can investigate? We would need one frame of what is working correctly and one frame of what is not working. You can send the data through a ticket on the [developer support site](https://zoomdevelopersupport.zendesk.com/hc/en-us). Be sure to mention this thread and my name so that the ticket is routed to me.

Thanks!

---

<div class="post-metadata">

**Author:** ![sukitha.jayasinghe](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sukitha.jayasinghe/32/33844_2.png) [@sukitha.jayasinghe](https://devforum.zoom.us/u/sukitha.jayasinghe)\
**Post date:** [March 1, 2022, 1:38pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/9 "2022-03-01T13:38:34Z")

</div>

Hi Jon,

Can you guide me get access to the support channel? Should I buy a premium developer support package?

Thank You!

---

<div class="post-metadata">

**Author:** ![jon.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jon.zoom/32/13495_2.png) [@jon.zoom](https://devforum.zoom.us/u/jon.zoom)\
**Post date:** [March 1, 2022, 8:58pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/10 "2022-03-01T20:58:28Z")

</div>

Hi @sukitha.jayasinghe,

You should be able to access the support site after signing in with your Zoom account. If you are interested in the premier developer support plans, you can find more information by contacting our sales team through [here](https://zoom.us/docs/en-us/developer-support-plans.html). 🙂

Thanks!

---

<div class="post-metadata">

**Author:** ![sukitha.jayasinghe](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sukitha.jayasinghe/32/33844_2.png) [@sukitha.jayasinghe](https://devforum.zoom.us/u/sukitha.jayasinghe)\
**Post date:** [March 2, 2022, 4:57am UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/11 "2022-03-02T04:57:17Z")

</div>

Hi @jon.zoom,

The ticket is submitted. Please find the ticket URL.

[https://support.zoom.us/hc/en-us/requests/13666324](https://support.zoom.us/hc/en-us/requests/13666324)

Thank you!!!

---

<div class="post-metadata">

**Author:** ![jon.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jon.zoom/32/13495_2.png) [@jon.zoom](https://devforum.zoom.us/u/jon.zoom)\
**Post date:** [March 2, 2022, 8:05pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/12 "2022-03-02T20:05:25Z")

</div>

Hi @sukitha.jayasinghe,

Thanks for providing that link. Confirming that your ticket has been received. I will let you know as soon as we have any updates.

Thanks!

---

<div class="post-metadata">

**Author:** ![chump](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chump/32/35620_2.png) [@chump](https://devforum.zoom.us/u/chump)\
**Post date:** [March 24, 2022, 4:06pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/13 "2022-03-24T16:06:37Z")

</div>

Will you please share the resolution?

I am having the same issue @sukitha.jayasinghe @jon.zoom.

---

<div class="post-metadata">

**Author:** ![chump](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chump/32/35620_2.png) [@chump](https://devforum.zoom.us/u/chump)\
**Post date:** [March 24, 2022, 4:55pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/14 "2022-03-24T16:55:24Z")

</div>

I stumbled on a workaround.

When it worked like @sukitha.jayasinghe’s screenshot, I was using

```auto
// data is YUVRawDataI420;
stream.Write(data.GetBuffer());

```

If I write this instead, it works as expected.

```auto
stream.Write(data.GetYBuffer());
stream.Write(data.GetUBuffer());
stream.Write(data.GetVBuffer());

```

---

<div class="post-metadata">

**Author:** ![sukitha.jayasinghe](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sukitha.jayasinghe/32/33844_2.png) [@sukitha.jayasinghe](https://devforum.zoom.us/u/sukitha.jayasinghe)\
**Post date:** [March 29, 2022, 9:44am UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/15 "2022-03-29T09:44:55Z")

</div>

@chump

This workaround works for me aswell. I didn’t get any official response to the ticket. Hope this will be fixed in future releases.

@jon.zoom

Any update?

Thank You!!

---

<div class="post-metadata">

**Author:** ![kadu\_cemo](https://avatars.discourse-cdn.com/v4/letter/k/59ef9b/32.png) [@kadu\_cemo](https://devforum.zoom.us/u/kadu_cemo)\
**Post date:** [April 12, 2022, 8:20pm UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/16 "2022-04-12T20:20:17Z")

</div>

**Hi Chump,**

Same Issue here! Thanks a lot for sharing!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [May 13, 2022, 6:20am UTC](https://devforum.zoom.us/t/render-recordings-from-video-raw-data/64344/17 "2022-05-13T06:20:57Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
