2

I have tried Leadtool SDK to play 1080p DICOM video @30fps, But I have problem to read images from DICOM file, it taking long time to get Image from DICOM file.

If we have to achieve 30fps frame rate, then Image should be read within 33 Milliseconds, Because 33 Milliseconds is time between two frames for 30fps frame rate. Lead tool taking more than 50 Milliseconds to read single image/frame of 1080p.

Therefore I can't achieve 30fps frame rate for 1080p video.

Leadtool can read 720p video file, without any problem, just problem is there for 1080p HD video.

I am using below code to get Image.

RasterImage image = _Dataset.GetImage(null, count++, 0,
                                                 _DicomImageInformation.IsGray ? RasterByteOrder.Gray : RasterByteOrder.Bgr | RasterByteOrder.Rgb,
                                                 DicomGetImageFlags.None | DicomGetImageFlags.AutoLoadOverlays);

Please, someone can suggest me any solution for this or somebody knows any DICOM library than can enable to play 1080p DICOM video @30fps.

Nilesh Wagh
  • 940
  • 1
  • 12
  • 26
  • Library recommendations are offtopic here, this specific problem - you can discuss it with this library vendor. DICOM 1080p30 files can be, generally, played just the same way (at similar performance) as standard video files like MP4. – Roman R. Aug 29 '16 at 11:07

2 Answers2

1

It looks like you are using the LEADTOOLS still imaging support rather than the LEADTOOLS Multimedia SDK. We provide a DirectShow DICOM Reader Filter designed specifically for pulling video data out of a DICOM file.

If you are looking to do something with every frame within the DICOM file, you could use the LEADTOOLS Video Callback filter in conjunction with either the play or convert controls. If you just want simple playback, this code would do it:

   private Leadtools.Multimedia.PlayCtrl _playctrl;

   _playctrl = new Leadtools.Multimedia.PlayCtrl();
   _playctrl.AutoStart = false;
   _playctrl.Location = new System.Drawing.Point(10, 67);
   _playctrl.Name = "_playctrl";
   _playctrl.Size = new System.Drawing.Size(325, 283);
   _playctrl.SourceFile = @"C:\Users\Public\Documents\LEADTOOLS Images\MR.dcm";
   this.Controls.Add(_playctrl);
   _playctrl.Run();

If you have further questions or concerns regarding the use of LEADTOOLS, please do not hesitate to contact us directly.

LEADTOOLS Support
  • 2,755
  • 1
  • 12
  • 12
  • I have already tried PlayCtrl, But it also have same issue. It takes more time to play than it's original time. Suppose 10 Seconds video takes 17 - 18 Seconds play. – Nilesh Wagh Aug 30 '16 at 05:49
  • The frame rate is getting read from the DICOM dataset tags. If it's not playing at 30 fps, it may be due to what is in the tags. Have you tried looking at the tags or using the LEADTOOLS Media Info demo to see what the SDK believes should be the frame rate? Alternatively, you could use the frame rate controller filter provided with the SDK to force it to speed up. Both our MPEG-2 and H.264 decoder can handle frame rates higher than 30 fps. You can also send a sample file to support@leadtools.com for us to test further. – LEADTOOLS Support Sep 01 '16 at 13:59
0

I have done it using FO-DICOM and Leadtool combinly. Now I am able to play 1080p DICOM video @30fps. FO-DICOM.

Nilesh Wagh
  • 940
  • 1
  • 12
  • 26