Convert byte[] to Video (mp4 or any other palyable format)

2.9k views Asked by At

I am creating a bot that will record the Microsoft team live sessions. Audio recording is working fine but facing problems in generating the video file. The process I am following is that I am converting the video data into a byte array and then writing the data to a video format file.

I am adding some code snippets, I have examined so far.

1. Stream videoStream = new FileStream(videoFilePath, FileMode.Create);
   BinaryWriter videoStreamWriter = new BinaryWriter(videoStream);
   videoStreamWriter.Write(videoBytesArray, 0, videoBytesArray.Length);
   videoStreamWriter.Close();
2. System.IO.File.WriteAllBytes(videoFilePath, videoBytesArray);

The generated files from the above code snippets are of an unsupported format. It may be because of the data receiving from the session.

I am receiving the data through the Local media session's Video Socket on VideoMediaReceived Event (ICall.ILocalMediaSession.VideoSockets). The Video Color Format of the data that the socket is receiving is of H264 Format.

A similar problem I encountered when creating the audio file. For that, I utilized the WaveFormat package for creating an audio file.

So, Is there any library/method to convert the byte array to a video file of any format?

1

There are 1 answers

4
Dev On

@Murtaza, you can try this and see if it helps. If the byte array is already a video stream then, simply you can serialize it to the disk with the extension mp4. (If it's an MP4 encoded stream).

Stream t = new FileStream("video.mp4", FileMode.Create);
BinaryWriter b = new BinaryWriter(t);
b.Write(videoData);
t.Close();