Я написал специальную QtGStreamer appsink, которая отлично работает. У меня проблемы с попыткой разделить с тройником конвейер для обработки записи потока, потому что трубопровод начинает прервать, но никогда не переходит в состояние воспроизведения.QtGstreamer: AppSink & tee
Мой трубопровод:
souphttpsrc location="%1" ! queue ! tee name=tp tp.! queue ! tsdemux ! h264parse ! splitmuxsink muxer=mpegtsmux location=/tmp/rec/video%02d.mov max-size-time=60000000000 max-size-bytes=100000000 tp.! queue ! appsink name="mysink"
Если я прокомментировать любой из двух ветвей тройника ничего работает, как ожидалось.
Это также работает:
souphttpsrc location="%1" ! queue ! tee name=tp tp.! queue ! tsdemux ! h264parse ! splitmuxsink muxer=mpegtsmux location=/tmp/rec/video%02d.mov max-size-time=60000000000 max-size-bytes=100000000 tp.! queue ! decodebin ! autovideosink
Почему мой AppSink работает только один?
Привет и спасибо за ответ. Я использую сигнал newSample в своей раковине, и поскольку мне нужно было продолжить работу, я изменил подход, используя второй конвейер, созданный специальным источником приложений, который получает копию буфера из приемника в основном конвейере. Это также упрощает обработку непрерывного запуска/остановки на конвейере, вызванного переключением между записанными файлами. В любом случае, в ближайшие дни я попробую все ваши предложения, так как я хочу исправить это, чтобы этого не было. – Gianks