Ответ 1
Я думаю, что эта библиотека будет соответствовать вашим потребностям.
Я ищу библиотеку или проект с открытым исходным кодом, который предоставляет интерфейс для обрезки видео, как вы видите на скриншоте. В том числе
Только пользовательский интерфейс не является самой обрезкой.
Если нет готового решения, я хотел бы сейчас, как скомбинировать существующие элементы пользовательского интерфейса, чтобы достичь этого или чего-то подобного.
Вот что я наконец реализовал: селектор диапазона/дальномер для обрезки видео, включая эскизы
Я думаю, что эта библиотека будет соответствовать вашим потребностям.
Я не мог найти определенную библиотеку, но вы можете использовать MediaMetadataRetriever
чтобы получить кадры для видео, определяющие точное время кадра.
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(videoFile.getAbsolutePath());
Bitmap bitmap = retriever.getFrameAtTime(timeInMiliSeconds * 1000,
MediaMetadataRetriever.OPTION_CLOSEST_SYNC);
Я надеюсь, это поможет вам.
Вы можете получить пользовательский интерфейс из TELEGRAM (приложение для обмена сообщениями), доступный в GitHub https://github.com/DrKLO/Telegram
Активность: VideoEditorActivity.java (https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/ui/VideoEditorActivity.java)
Макет: video_editor_layout.xml (https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/res/layout/video_editor_layout.xml)
Они внедрили свои пользовательские компоненты интерфейса VideoSeekBarView и VideoTimelineView.
VideoSeekBarView (https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoSeekBarView.java)
VideoTimelineView (https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/ui/Components/VideoTimelineView.java)
Я много искал для чего-то подобного без успеха. В конце я решил прекратить разработку этой функции.
Но сегодня я нашел это ЗДЕСЬ. Я не знаю, все в порядке.
селектор диапазона
Текущая позиция воспроизведения перемещается по rangeselector после того, как пользователь нажал кнопку "play". Однако вы не можете перемещать позицию игры.
Другая возможность - прочитать исходный код официального приложения для Android. Я знаю, что вы ищете библиотеку, но это может быть другое решение, и если вы поймете исходный код google, вы сможете достичь того же качества приложения Gallery от Google.
Смотрите здесь (классы Trim *.java): https://android.googlesource.com/platform/packages/apps/Gallery2/+/android-6.0.1_r31/src/com/android/gallery3d/app/
Извините, вероятно, для этого нет никакой библиотеки с открытым исходным кодом. Я надеюсь, что эти две ссылки могут быть полезны для вас.
FFMPEG - лучший вариант, если вы сталкиваетесь с проблемой компиляции ffmpeg, используйте эту ссылку https://github.com/WritingMinds/ffmpeg-android и следуйте командам из https://github.com/antpersan/CutVideoAndroid и для диапазона Seekbar https://github.com/anothem/android-range-seek-bar или использовать shanrais, предложенный VideoSeekBarView
Библиотека обработки видео
функции
Вы можете использовать его функцию, настроив свой интерфейс.
Попробуйте следующий пример на Git to trime video, например whatsapp.
это решение, которое я пробовал, он отлично работает, этот пример включает пользовательский RangeSeekBarView
, пользовательский ProgressBarView
со seekbar
котором вы можете выбрать видео диапазон видео, который вы хотите, и сохранить в пункт назначения