Объединение видеофайлов с GStreamer с помощью AppSrc

#c# #gstreamer

Вопрос:

У меня есть http-источник, из которого я загружаю файлы .mp4 в виде необработанных байтов. Будущая цель состоит в том, чтобы продолжить их потоковую передачу с использованием RTP и UDP, но сейчас я хотел бы просто сохранить их в одном локальном файле.

Прямо сейчас это хорошо работает только для одного файла, но в тот момент, когда я хочу транслировать второй, он ломается. Сохраненный файл всегда является только первым файлом, все остальные файлы игнорируются.

Мой текущий конвейер выглядит так: appSrc->decodebin->x264enc->qtmux->filesink

appSrc настроен на автоматическую отправку события EOS, все остальное по умолчанию. В моем коде есть собственный вызов EOS, когда я останавливаю потоковую передачу.

Байты, загружаемые в appSrc.PushBuffer метод, в значительной степени являются байтами файла, поэтому теоретически мне не понадобился бы декодер для одного файла, но поскольку моя цель-объединить файлы, я счел это необходимым.

Я попробовал элемент concat и multifilesrc, но безуспешно. Как я могу объединить байтовые файлы в один файл?