Недавно я реализовал простой код, который может динамически записывать поток rtsp с изменением местоположения файловой ссылки каждые 10 секунд, ссылаясь на этот урок а также этот.
Пример потока RTSP: RTSP: //184.72.239.149/vod/mp4: BigBuckBunny_175k.mov
Тем не менее, когда я проверил x264enc элемент, в результате видео, кажется, теряет много кадров.
Когда я открываю записанные видео, они начинаются, например, с 00:07 вместо 00:00.
Это мой код ….
Обобщение:
g ++ test.cpp -o test `pkg-config —cflags —libs gstreamer-1.0`
версия gstreamer: 1.14.4
Версия g ++: 8.2.1
Кто-нибудь может помочь в этом вопросе?
РЕДАКТИРОВАТЬ:
Я наконец решил эту проблему с концепцией:
pipeline = rtspsrc ! rtpjpegdepay ! queue ! bin
bin = (ghost pad) ! jpegdec ! openh264enc ! h264parse ! mp4mux ! filesink
bin
динамически удаляет из конвейера и добавляет новый в конвейер каждые 10 секунд.
Задача ещё не решена.
Других решений пока нет …