65.9K
CodeProject 正在变化。 阅读更多。
Home

GoPro 剪辑提取器

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2018 年 11 月 29 日

CPOL

4分钟阅读

viewsIcon

9622

downloadIcon

377

一种快速简便的方法,可以从 GoPro 视频素材中提取多个视频剪辑

引言

我有两个孩子参加业余体育比赛,我经常使用 GoPro 相机录制他们比赛的视频。一场比赛会产生大量的视频素材。在一场冰球比赛中使用两台相机,会产生大约两个小时的视频。将所有这些视频剪辑成一个最终的精彩片段,至少可以说是相当繁琐的。GoPro 有一个名为 Quik 的应用程序,可以从视频中提取片段,但这个过程太漫长了,工作流程也很繁琐。我也尝试过一些开源应用程序,包括 ShotCut,但似乎没有什么能让事情变得更轻松。然后我发现了 FFMPEG 库和命令行应用程序 ffmpeg.exe。使用正确的命令行参数,我可以在不到一秒钟的时间内提取一段视频片段。本文简要介绍了我用来选择要创建的 ffmpeg 批处理文件的片段的起始点和长度的 GUI。

背景

编辑高分辨率 2K/4K 视频的一个问题是文件非常大,通常每个文件有 4GB。大多数电脑都能播放这些视频,但在时间上快速跳转会很卡顿。GoPro 相机还会录制低分辨率的视频,扩展名为 LRV。这实际上是一个 MP4 视频文件,可以重命名并用任何视频播放器观看。低分辨率视频用于查找想要的片段,然后使用 ffmpeg 从高分辨率视频中提取它们。我使用了 Windows Media Player 控件,并将其嵌入了一个 Windows Forms 应用程序中,以便能够控制视频播放。由于 ffmpeg 承担了繁重的工作,所以需要的代码量并不多。

下面显示了一个典型的 GoPro 文件夹的内容,其中低分辨率文件被突出显示。

应用程序的主窗口是一个 MDI 窗口,如下图所示。目的是能够将两个或更多摄像机的视频在不同的窗口中打开。

点击“新建提取器”按钮将打开一个新的视频提取窗口,如下图所示。

过程的第一步是重命名 GoPro LRV 文件。这将打开文件打开对话框以选择文件。

然后我们打开视频以添加低分辨率视频。

这将把所有选定的视频添加到 listbox 中。在 listbox 中选择一个视频将在 Media Player 控件中打开它,如下所示。

默认的媒体播放器按钮和滚动条可用于暂停/播放和跳过视频。然而,使用键盘效率更高。以下按键可用于控制媒体播放器。右箭头将视频向前跳一秒。左箭头将视频向后跳两秒。空格键用于切换播放和暂停状态。回车键用于标记要提取的片段的开始。

每次按下回车键时,都会创建一个新的片段提取宏并添加到片段列表框中。如下图所示,五个片段已添加到列表框中。请注意,文件名已从低分辨率视频 GL010232.mp4 更改为高分辨率文件 GH010232.mp4。使用低分辨率文件是因为它可以加快处理速度。高分辨率视频将从文件中提取。有一个名为“Clip Time”的组合框可用于选择片段的长度。默认值为十秒。

片段宏只是传递给 ffmepg.exe 应用程序的指令。在执行这些指令之前,必须将它们保存到批处理文件中。这是通过“保存”按钮完成的。默认文件名是 extractClip.bat,默认保存文件夹是视频文件的源目录。该文件内容如下。每一行都调用 ffmeg.exe 程序,并传递片段的起始点、要从中提取片段的文件名、片段的长度以及输出文件名。输出文件命名为 clipN.mp4,其中 N 是从一开始的整数,直到片段的数量。

由于这只是一个文本文件,如果对片段的开始或结束时间需要进行微小的更改,则可以在任何文本编辑器中进行修改。要提取所有视频片段,只需双击保存的 extractClips.bat 文件即可。这要求 ffmpeg.exe 文件与批处理文件位于同一目录中。

关注点

这个项目背后没有太多代码或有趣的细节。这是我迄今为止找到的从 GoPro 视频文件中提取片段的最快方法。它可能是别人扩展的基础,或者也许其他人有从 GoPro 视频中提取片段的需求。

历史

  • 2018 年 11 月 28 日:V1.0 初始发布
© . All rights reserved.