View my account

Wait_for_frames () does not fully extract all the depth frames in the. Bag file.

Comments

6 comments

  • MartyG

    There are a number of reasons why your recording may have "dropped" frames instead of recording all of the frames that should be present in theory.  The SDK's documentation page on frame buffering management is a good read.

    https://github.com/IntelRealSense/librealsense/wiki/Frame-Buffering-Management-in-RealSense-SDK-2.0

    Aside from latency caused by software drivers, a slowdown 'bottleneck' may also be caused during recording if the computing hardware that you are using has a slow hard drive that is not an SSD (since a slower drive will struggle to keep up with the incoming data).  The processor on a computing device may also sometimes have some incompatibility with the SDK's recording compression algorithm, a situation that can be corrected by turning recording compression off using the SDK's compression API.

    https://github.com/IntelRealSense/librealsense/pull/2687

    Also, a recording may sometimes have frames with duplicate time stamps and frame numbers.  When a 'hiccup' in the recording occurs, the system may try to return to the most recent good frame.

    Another approach to recording is to use a function called Keep() to store the frames in memory during recording and then at the end of the recording, do post-processing and file save in a single action.  This method is only suitable for short recording durations such as 10 seconds though, due to the amount of memory that the data consumes.

    https://github.com/IntelRealSense/librealsense/issues/3121#issuecomment-466263469

    0
    Comment actions Permalink
  • 1106569356

    Hi MartyG,

    The number of frames I get from the above code is not the same as using rs-convert.exe. How do I get these frames?Because I need to post-process the depth frame.

    Regards.

    0
    Comment actions Permalink
  • MartyG

    I added a note to the end of the comment above about using a function called Keep() to store the frames in memory and then save them at the end of the stream after doing post-processing on all the frames.

    0
    Comment actions Permalink
  • 1106569356

    Hi MartyG,

    I didn't find the  keep() function, and I've got a lot of . bag files are more than 10s, so I need a better way to extract these depth frames for processing.

     

    Or I can record the video through the Matlab program, post-processing and aligning in the recording process, and finally save the depth and color of the acquisition. But one problem is that I don't know how to use 'syncer'  in the recording process.

     

    0
    Comment actions Permalink
  • MartyG

    I do not have any further ideas about this since the last time it was discussed in June, unfortunately.  I will put the link to that past discussion here so that the Intel support team members can continue the discussion with you.

    https://support.intelrealsense.com/hc/en-us/community/posts/360033198613--bag-file-extraction-and-processing

    0
    Comment actions Permalink
  • 1106569356

    The conversion from rs-convert.exe to. ply is the result of depth and color alignment, is there no post-processing in it?

    0
    Comment actions Permalink

Please sign in to leave a comment.