范围选择器/范围滑块用于修剪视频,包括缩略图。

18

enter image description here

我正在寻找一个提供视频剪辑UI的库或开源项目,如屏幕截图所示。包括:
  • 范围选择器,具有增加、减少和移动选择的能力
  • 缩略图
  • 当前播放位置
只需要UI而不是剪辑本身。
如果没有现成的解决方案可用,那么我想知道如何聪明地组合现有的UI元素来实现这个或类似的功能。
以下是我最终实现的内容:范围选择器/范围滑块以及包括缩略图的视频剪辑

2
我总是很感激没有评论的踩票。 - OneWorld
你可以使用开源的 trimmer(https://github.com/uday-rayala/video-trimmer),它使用 ffmpeg 库进行视频处理,是视频编辑的最佳选择。 - Krutik
我已经尝试过了。它不是很稳定。 - OneWorld
8个回答

15

我找不到一个特定的库,但你可以使用MediaMetadataRetriever来获取视频的帧,并指定帧的确切时间。

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(videoFile.getAbsolutePath());
Bitmap bitmap = retriever.getFrameAtTime(timeInMiliSeconds * 1000,
                MediaMetadataRetriever.OPTION_CLOSEST_SYNC);

我希望这能够对你有所帮助。


14
您可以从GitHub获取TELEGRAM(即时通讯应用程序)源代码中的UI。 https://github.com/DrKLO/Telegram Activity: 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)
他们已经实现了自己的UI组件 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)
附上了Telegram VideoEditorActivity的截图 enter image description here

2
很棒的截图!但是 GPL 许可证 ;( ;( ;( - OneWorld
1
这是最有前途的解决方案。但是,由于许可证的限制,我无法使用它。如果我尝试获取一些想法,我可能会最终复制代码;) 如果许可证不那么严格,我可能会奖励答案。 - OneWorld
@OneWorld,你找到了解决方法吗?如果是的话,能告诉我一下吗?非常感谢!我正在寻找同样的答案 :) - Nisarg
@OneWorld 感谢您的回复,我已经使用 seekbar 完成了修剪功能,它工作得很好。我只需要一个类似上述或类似于 WhatsApp 或 Instagram 的用户界面,如果您有任何建议或想法,请告诉我,否则如果我找到了什么,我会更新您的 :) - Nisarg
1
@SagarHudge 希望这个能帮到你,我刚刚找到了这个:https://github.com/iknow4/Android-Video-Trimmer - Nisarg
显示剩余2条评论

4

我从https://android-arsenal.com/details/1/3714安装了演示版,我认为你是对的。太好了!该库还包括mp4修剪器!但不幸的是对于我的项目来说太晚了 ;( - OneWorld
@NikitaAxyonov,你能帮我回答这个问题吗?https://stackoverflow.com/questions/48801158/rangeseekbarview-how-to-select-a-fixed-range-frame-using-custom-rangeseekbarview。谢谢。 - Sagar
@Sagar,我也卡在了显示被修剪视频的时间范围上,你有没有找到答案中提到的库的解决方案? - B.shruti
@B.shruti 你可以试试这个库:https://github.com/a914-gowtham/Android-video-trimmer,它支持 Android 10。 - gowtham6672

2

我搜索了很多类似的内容,但都没有找到。最后我决定停止这个功能的开发。

但是今天我在这里找到了这个。我不知道它是否可用。

desc

范围选择器

enter image description here

用户点击“播放”后,当前播放位置会在范围选择器上移动。但是您不能移动播放位置。

另一个可能性是阅读官方Android应用程序的源代码。我知道你正在寻找一个库,但这可以是另一种解决方案,并且如果你能理解Google的源代码,你就能够实现与Google相同的画廊应用程序的质量。

看这里(Trim * .java类):https://android.googlesource.com/platform/packages/apps/Gallery2/+/android-6.0.1_r31/src/com/android/gallery3d/app/

很抱歉,可能没有任何开源库可以做到这一点。希望这两个链接对你有用。


尝试过了,可以工作。但有点不稳定,无法选择播放位置。 - OneWorld

2
尝试在Git上使用以下示例来像whatsapp一样修剪视频。
我尝试过这个解决方案,它完美地工作。此示例包括自定义的RangeSeekBarView,自定义的ProgressBarViewseekbar,您可以使用它选择要修剪的视频范围并保存到目标位置。 类似于Whatsapp的视频修剪

我不再在那个特性上工作了。但对其他用户来说可能值得一看! - OneWorld
@OneWorld,我需要针对这个例子的帮助。我想从总时长中选择最大的30秒,但是我无法弄清楚如何实现,请帮忙提供任何想法或帮助。谢谢。 - Sagar
@Sagar 你是认真的吗?)) 只需提出一个新问题或询问库的作者即可。 - OneWorld
需要一些更新来保存视频,然后它应该可以工作。 - neo

1

我不需要寻找修剪本身,只是UI方面的。 我已经为自己找到了一个双拇指范围条,运行良好。 - OneWorld

1

移动媒体

视频处理库

功能

  • 转码视频
  • 合并视频
  • 剪辑视频
  • 视频特效
  • 音频特效
  • 获取媒体文件信息
  • 时间缩放
  • 列表项

您可以通过自定义界面使用其功能。


0

感谢大家的帮助,我打算使用C++原生代码实现。虽然我并不是专业人士,但这仍是处理用户界面的最佳方式,特别是在我们需要创建专业时间轴的情况下。对于视频编辑,FFmpeg是安卓上最好的库之一https://github.com/tanersener/mobile-ffmpeg


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接