A data processing method, comprising: receiving data in a data flow from one or more data sources , wherein the data flow includes one or more image frames and is configured based on a time sequence ; storing the received data into a buffer in a memory , wherein the buffer is configured to have a maximum image frame number; receiving, at a first time (214, tg), a control signal , which is associated with a first timestamp , wherein the first timestamp indicates the first time (214, tg); dynamically determining, based on features of the dataflow and/or the available memory , a time period (205, T) from a starting time to an ending time ; determining, via a data processor, a first data segment by applying the first timestamp on the data flow , wherein the first data segment is associated with the time period (205, T) in the time sequence that includes the first time (214, tg), and wherein the first data segment includes a) data stored in the buffer that was received before the first time (214, tg) in a first duration (Tr) which equals to the maximum image frame number divided by an image speed and b) data of the data flow that is received after the first time (214, tg) in a second duration (Tc) that is a difference between the time period (205, T) and the first duration (Tr); and creating a copy in the memory for the first data segment when the control signal is received, before exporting the first data segment , wherein the first data segment is exported by saving the first data segment into a storage medium that is physically connected to the memory , and/or sending the first data segment to a remote server via a network. receiving data in a data flow from one or more data sources , wherein the data flow includes one or more image frames and is configured based on a time sequence ; storing the received data into a buffer in a memory , wherein the buffer is configured to have a maximum image frame number; receiving, at a first time (214, tg), a control signal , which is associated with a first timestamp , wherein the first timestamp indicates the first time (214, tg); dynamically determining, based on features of the dataflow and/or the available memory , a time period (205, T) from a starting time to an ending time ; determining, via a data processor, a first data segment by applying the first timestamp on the data flow , wherein the first data segment is associated with the time period (205, T) in the time sequence that includes the first time (214, tg), and wherein the first data segment includes a) data stored in the buffer that was received before the first time (214, tg) in a first duration (Tr) which equals to the maximum image frame number divided by an image speed and b) data of the data flow that is received after the first time (214, tg) in a second duration (Tc) that is a difference between the time period (205, T) and the first duration (Tr); and creating a copy in the memory for the first data segment when the control signal is received, before exporting the first data segment , wherein the first data segment is exported by saving the first data segment into a storage medium that is physically connected to the memory , and/or sending the first data segment to a remote server via a network. saving the first data segment into a storage medium that is physically connected to the memory , and/or sending the first data segment to a remote server via a network. <EOS>