Я использую FFMPEG для публикации видеоданных (данных в кодировке h264) в потоковом движке Wowza. Мое приложение захватывает и записывает закодированные видеоданные покадрово в FIFO (с именем Pipe), а в другом потоке ffmpeg считывает видеоданные из этого конкретного FIFO, а затем отправляет в облако, все идет гладко, пока состояние сети хорошее.
В плохой сети кадры начинают падать, так как FFMPEG не может читать и перемещать кадры в облако, в этой потере, если любой I-кадр будет отброшен, я получаю зеленые сбои в видео, как и ожидалось.
Я пытаюсь выяснить, есть ли какая-либо опция / свойство в FFMPEG, которую я могу использовать при отправке данных в облако, что позаботится о GOP, поэтому FFMPEG всегда отправляет первый кадр IDR, а затем соответствующие P-кадры в потоковый движок Wowza .
Поток это:
Приложение ---- пишет -----> FIFO --- читает ---> FFMPEG ----- нажимает ---> Wowza
Я использую бинарный файл FFMPEG. Я могу реализовать логику GOP в своем приложении перед записью данных в FIFO, но это можно сделать только в том случае, если я каким-то образом знаю, когда FFMPEG прекращает чтение данных из FIFO из-за состояния сети, и я не уверен, что смогу это сделать, как это двоичный файл.
Любая помощь будет оценена.