После долгих отладок я обнаружил проблему с моим конвейером. Большое спасибо @FlorianZwoch за просьбу перейти на кодировщик voaacenc.
voaacenc по умолчанию не устанавливается в gst-plugins-bad для mac. Я так должен был использовать
brew reinstall gst-plugins-bad --with-libvo-aacenc
Следующий конвейер хорошо работал с моим приложением.
gst-launch-1.0 --gst-debug=3 mp4mux name=mux ! \
filesink location=xxxx.mp4 souphttpsrc location=<hls url> ! decodebin name=decode ! \
videoconvert ! videorate ! video/x-raw, framerate=50/1 ! queue ! x264enc ! mux. decode. ! \
audioconvert ! voaacenc ! mux.
Кроме того, в моих сегментах потокового видео HLS некоторые имели скорость 50 FPS, а некоторые - 59,97 FPS. Поэтому я использовал значение видео по умолчанию 50. Это может потребоваться изменить в зависимости от ваших сегментов
Для тех, кому нужен тот же код C ++, пожалуйста, закажите мою github страницу