Gstreamer x264enc неожиданная потеря при записи видео
Недавно я реализовал простой код, который может записывать поток rtsp с динамическим изменением расположения файловой ссылки каждые 10 секунд, ссылаясь на это руководство и на это.
Пример потока http://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 секунд.