Есть ли способ пошагового просмотра видеофайла кадр за кадром? Я пытался использовать VideoView, и у меня был небольшой успех. Я могу получить видео шаг через ключевые кадры, но не отдельные кадры. Я подумал, что это будут настройки по умолчанию, особенно с учетом того, как работает сжатие видео. Есть ли способ переопределить это поведение по умолчанию или конфигурацию, которую я могу изменить?
Видео покадровый поиск
Ответы (2)
Поведение по умолчанию в медиа-фреймворке stagefright — всегда искать ключевой кадр. (В отличие от более раннего фреймворка - opencore, чье поведение поиска по умолчанию заключалось в поиске времени.)
Вы не можете выполнять покадровый поиск с помощью API MediaPlayer, предоставляемого Android.
Если вы действительно хотите реализовать покадровый поиск, вам придется использовать стороннюю мультимедийную структуру, такую как FFMPEG, или вам нужно будет реализовать свою собственную.
person
bluefalcon
schedule
23.08.2011
Думаю, я реализую свой собственный и поделюсь им.
- person Spidy; 26.08.2011
Да, я тоже столкнулся с этой проблемой с видеокамерами, показом и кадрами при обработке объектов на экране, в конце концов мы перешли на MJPG, так как у нас был более жесткий контроль над временем и частотой кадров.
- person JPM; 26.08.2011
Что, если я запишу видео таким образом, что каждый кадр будет ключевым кадром? ;)
- person Moonlit; 10.02.2015
Если вы не пишете свой собственный кодировщик, то это невозможно, к тому же это противоречит всей цели кодирования видеофайла, вы можете просто заархивировать необработанные видеокадры!
- person bluefalcon; 10.02.2015
Вы смотрели MediaMetadataRetriever? Там вы можете использовать getFrameAtTime(long timeUs, int option)
и вернуть Bitmap
.
В зависимости от использования, возможно, это то, что вам нужно.
person
Tom Siwik
schedule
23.08.2011
Я должен попробовать. Будет работать только для локальных медиа (не на основе URL-адресов), но это шаг в правильном направлении, если он работает.
- person Spidy; 24.08.2011
Если вы еще не знали, Исходный код MediaPlayer .
getFrameAt
не используется и устарело. Это хороший источник для наблюдения за реализацией MediaPlayer. Как сказал Рави: вы можете реализовать свои собственные.
- person Tom Siwik; 25.08.2011
По моему опыту,
getFrameAtTime(long timeUs, int option)
работает очень плохо. Я сам не нашел решения, но это не похоже.
- person Jeremy Stucki; 17.04.2019