Я хотел бы захватить видео, сжать его и мультиплексировать как mpeg2 ts. Все это довольно просто с библиотеками ffmpeg, но то, что я хотел бы сделать, вместо того, чтобы записывать его в файл, — это захват ts-пакетов в буфер и использование этого потока другими способами. Есть ли простой способ сделать это?
Чтобы прямо сейчас записать закодированные кадры в файл, я использую av_interleaved_write_frame(oc, &pkt). OC — это выходной контекст с определенным именем файла и форматом. pkt — это AVPacket, содержащий сжатый кадр. av_interlaced_write_frame выполняет мультиплексирование и запись файла.
В конечном итоге я хотел бы добиться того, чтобы записать один и тот же поток ts в несколько файлов, а также запускать и останавливать запись разных файлов независимо друг от друга. Запуск нового мультиплексора для каждого потока кажется неэффективным, поскольку поток TS не должен нуждаться в каком-либо заголовке или правильном окончании для правильного воспроизведения (если то, что я прочитал, верно)
Я немного потерялся, пытаясь найти хорошие примеры в коде ffmpeg, а библиотеки не очень хорошо документированы. Любой вклад по этому вопросу приветствуется. Спасибо!