FFmpeg ищет в потоках Mpeg4
В настоящее время я пытаюсь разработать плеер, способный выполнять точный поиск на основе элементарного видеопотока mpeg4. Я нахожусь в стадии планирования и пытаюсь решить, как поступить, и я хотел бы получить несколько советов, прежде чем начать. Некоторые вещи, на которые стоит обратить внимание:
- Я буду иметь полный контроль над кодировкой файла.
- Исходный контент будет только I-frame
- FFmpeg - библиотека кодирования / декодирования
- Аудио может быть проигнорировано на данный момент. Я буду иметь дело только с видео потоком.
- Точный поиск кадра должен быть реализован
Поэтому, когда я кодирую содержимое, могу ли я запросить, какой тип кадра (I, P, B) был закодирован, чтобы я мог создать дополнительный индексный поток для операции поиска. Если нет, я могу запросить GOP после того, как он был закодирован, чтобы найти I-кадр.
Что касается воспроизведения, пользователь должен иметь возможность печатать в определенное время и переходить к этому кадру (ближайший I-кадр будет подходящим сейчас). Можно предположить, что GOP закрыт, а длина довольно короткая (например, 15 кадров). Мои мысли состоят в том, чтобы запросить индексный поток, который я создал во время кодирования, и определить соответствующее расстояние в потоке в течение запрошенного времени.
Я не уверен, как искать с помощью библиотеки FFMpeg при воспроизведении файлов.
Кто-нибудь делал что-то подобное, и если да, можете ли вы дать краткое объяснение того, как вы это сделали?