Один из методов - сохранить видеокадры в кольцевой буфер. Сделайте кольцевой буфер достаточно большим, чтобы хранить 30 секунд видео. С помощью кольцевого буфера у вас есть указатель заполнения, который одновременно определяет начало и конец потока. Когда вы добавляете в буфер, вы соответственно увеличиваете указатель. Когда вы нажимаете «стоп», вы переписываете буфер так, чтобы данные в вашем указателе заполнения находились в начале буфера (в основном вы вращаете все данные в буфере так, чтобы правильная точка была в начале). Это ваши необработанные видео данные, представляющие последние 30 секунд. Вы, вероятно, хотите, чтобы счетчик представлял, сколько секунд было заполнено, в случае, если они нажимают «Стоп» менее чем через 30 секунд.