Как добавить новый поток после вызова функции avformat_write_header? - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть несколько источников видео, которые производят видеокадры.Каждый источник видео должен быть представлен в виде отдельного видеопотока внутри выходного видеофайла (mp4 или mpegts).Проблема в том, что я должен указать точное количество потоков и создать их до вызова функции avformat_write_header.Если я попытаюсь добавить поток после, я получу крах внутри av_interleaved_write_frame.Есть ли способ добавить поток на лету?Может быть, есть некоторые параметры муксера, которые я должен указать?Заранее спасибо за ваши ответы.

1 Ответ

0 голосов
/ 26 февраля 2019

Нет, новые потоки не могут быть добавлены после записи заголовка.libavformat проверяет, имеет ли входящий пакет для записи индекс потока за пределами [0,nb_streams-1] и будет ли сбой, если он это сделает.

Можно создать контейнер, подобный MPEG-TS, для включения новых потоков, но ffmpeg не поддерживает это.

...