Принудив индивидуальные h.264 внутрикалы (ключевые кадры) во время Encode?
-
25-10-2019 - |
Вопрос
У меня есть последовательность видео, которую я хотел бы пропустить по конкретным кадрам во время воспроизведения (мой игрок реализован с использованием AvPlayer в iOS, но это случайно). Поскольку эти кадры упадут с непредсказуемыми интервалами, я не могу использовать стандартную функцию «ключа каждые n кадров/секунд», присутствующая в большинстве видеокодеров. Я, однако, знаю целевые рамки заранее.
Чтобы сделать это как можно эффективно, мне нужно заставить целевые кадры быть I-Frames во время кодирования. В идеале в каком -то графическом интерфейсе, который позволил бы мне чистить кадр, отметьте его как ключ, а затем (re) кодировать мое видео.
Если такой инструмент недоступен, у меня есть ощущение, что это, вероятно, можно сделать, прокатив пользовательский кодировщик с LibavCodec, но я бы предпочел использовать инструмент более высокого уровня (и предпочтительно сценария) для выполнения работы, если графический интерфейс является Это возможно. Это та задача FFMPEG или Mencoder может быть согнут?
У кого -нибудь есть техника для этого? Кроме того, вполне возможно, что это невозможная задача из -за некоторого фундаментального невежества, которое я имею в кодеке H.264. Если это так, пожалуйста, поставьте меня правильно.
Решение 2
Ответил на мой собственный вопрос: можно установить пользовательские ключи сжатия в Apple Compressor.
Маркеры сжатия также известны как маркеры ручного сжатия. Это маркеры, которые вы можете добавить в окончательную Pro-последовательность (или в окне предварительного просмотра компрессора), чтобы указать, когда компрессор должен генерировать IPEG I-Frame во время сжатия.
Другие советы
ffmpeg имеет -force_key_frames
Вариант, который принимает серию произвольных временных метров, а также другие способы определения кадров. От документация:
-force_key_frames 0:05:00,...
Не могли бы вы использовать маркеры главы для прыжков между разделами? Не идеальное решение, но намного проще достичь.
Вы можете использовать это программное обеспечение:http://www.applesolutions.com/bantha/mh.html