Я написал конвертер C ++, основанный на FFMpeg, который может получить ссылку на hls-stream и преобразовать ее в локальное видео .mp4.Пока все хорошо, конвертер работает как чудо, никаких вопросов по этому поводу.
ПРОБЛЕМА: Независимо от того, какой источник ввода я предоставляю преобразователю, в конце преобразования Iнужно получать видео только с ключевыми кадрами.Мне нужно такое видео из-за идеального поиска вперед и назад.
Это хорошо известный факт, что вспомогательные видеокадры (P и B) зависят от их кадра-владельца (I-кадра), поскольку этот кадр содержит полный пиксель.карта.В соответствии с этим мы можем воссоздать I-кадр для каждого P-и B-кадра, объединив их данные с их I-кадром.Вот почему такая команда ffmpeg ffmpeg -i video.mp4 output%4d.jpg
работает.
ВОПРОС: Как реализовать алгоритм объединения кадров для воссоздания только ключевых кадров в конце видео?Какие причуды мне нужно знать о слиянии данных AVPacket
s?
Спасибо.