मैं किनेक्ट एसडीके 2, सी # का उपयोग करता हूं। मैं कलर स्ट्रीम को .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 के बारे में कुछ जानकारी मिली लेकिन मुझे समझ में नहीं आया कि इसे सी # में कैसे उपयोग किया जाए।

0
Tuna Yüce 6 जून 2019, 14:54

1 उत्तर

सबसे बढ़िया उत्तर

ओके मुझे जवाब मिल गया।

उदाहरण मुझे मेरा उत्तर मिला = https://github.com/rafaftahsin/Kinect -v2-रंग-फ़्रेम-रिकॉर्डर

मैंने अभी ffmpeg.exe फ़ाइल को फ़ोल्डर में रखा है। फिर कोड चलाएँ = Process.Start("ffmpeg.exe", "-framerate 10 -i img%d.jpeg -c:v libx264 -r 30 -pix_fmt yuv420p kinect_video.mp4");

0
Tuna Yüce 6 जून 2019, 12:16