如何将我通过Kinect SDK2从彩色视频流中获取的jpeg文件转换为C#中的.AVI

时间:2019-06-06 11:54:34

标签: c# kinect avi kinect-v2

我使用Kinect SDK 2,C#。 我想以.AVI格式保存颜色流。 我得到每一帧,并以序列号保存为.jpeg格式。我不确定用.png或.jpeg更好吗?我需要在代码中将这些图像转换成.AVI文件。

这是我保存色流图像的方法。您能给我一些建议吗?

private void Reader_ColorFrameArrived(object sender, 
ColorFrameArrivedEventArgs e)
        {
            // ColorFrame is IDisposable
            using (ColorFrame colorFrame = e.FrameReference.AcquireFrame())
            {
                if (colorFrame != null)
                {
                    var bytesPerPixel = (PixelFormats.Bgr32.BitsPerPixel) / 8;
                    var stride = bytesPerPixel * 
colorFrame.FrameDescription.Width;
                    if (colorRecord == 1)
                    {
                        colorFrame.CopyConvertedFrameDataToArray(colorData, format);
                        var fd = colorFrame.FrameDescription;

                        // Creating BitmapSource                      
                        bmpSource = BitmapSource.Create(fd.Width, fd.Height, 96.0, 96.0, PixelFormats.Bgr32, null, colorData, stride);

                        // WritableBitmap to show on UI
                        kinectImage.Source = bmpSource;
                        kinectImage.Source = colorBitmap;

                        // JpegBitmapEncoder to save BitmapSource to file
                        // imageSerial is the serial of the sequential image
                        JpegBitmapEncoder encoder = new JpegBitmapEncoder();
                        encoder.Frames.Add(BitmapFrame.Create(bmpSource));
                        using (var fs = new FileStream("img" + (imageSerial++) + ".jpeg", FileMode.Create, FileAccess.Write))
                        {
                            encoder.Save(fs);
                        }
                    }
                }

我在其中一篇文章中找到了有关ffmpeg的信息,但我不明白如何在c#中使用它。

1 个答案:

答案 0 :(得分:0)

Okey,我找到了答案。

我找到答案的示例= https://github.com/rafaftahsin/Kinect-v2-Color-Frame-Recorder

我只是将ffmpeg.exe文件放到该文件夹​​中。 然后运行代码= Process.Start(“ ffmpeg.exe”,“ -framerate 10 -i img%d.jpeg -c:v libx264 -r 30 -pix_fmt yuv420p kinect_video.mp4”);