#ffmpeg #summarize #performance #shorten

app video-summarizer

使用 FFMPEG 摘要视频的应用程序。推断视频的哪些部分是静音或大声,并以不同的速率加快。非常适合长讲座视频。

3 个稳定版本

1.2.3 2020 年 1 月 1 日
1.2.2 2019 年 12 月 30 日
1.2.1 2019 年 9 月 30 日

179视频 中排名

每月下载 28 次

自定义许可

34KB
614

免责声明:这是一个正在进行中的工作。它还不适合在需要它不会失败的地方使用。如果它不起作用,请提交 github 问题。通常情况下它都能正常工作,但通常需要包括“不要过多地处理视频的输入/输出”的解决方案。

进度:我们正在努力实现使用此工具的更快和更有效的方法。从数小时的处理时间缩短到几秒钟。缺点是vlc媒体播放器将成为强制依赖。您可以在vlc分支中跟踪进度。

此应用程序允许用户根据当前的响度以不同的速率加快视频。例如,我可以将讲座中响亮的部分加快1.5倍,而静音部分加快5倍。应用程序通过提取音频并搜索音频在一段时间内水平可疑恒定来执行此操作。然后,我只需将其分割,加快速度,并通过ffmpeg连接即可。这主要是为了学习更多关于Rust的知识,但结果实际上比我预期的要好。我认为这实际上可以用于互联网讲座。

请参阅“结果”部分,了解我之前做的分析。

用法

转换多个讲座文件。将响亮的部分加快1.5倍,将静音部分加快5倍。

for lecture-video in *.mp4; do
	video-summarizer -l 1.5 -s 5 "$lecture_video" -o "NEW-$lecture_video"
done

我不在乎质量,我需要它现在。

video-summarizer -l 2.5 -s 7 --fast video.mp4 -o new-video.mp4

从视频中剪除静音部分。

video-summarizer -s 100 video.mp4 -o video-cut.mp4

从YouTube下载非常长的谈话的音频,将响亮的部分加快2倍,将静音部分加快4倍,并将其导入VLC。

youtube-dl -f 'bestaudio[ext=m4a]' 'https://www.youtube.com/watch?v=KSWqx8goqSY' -o - |
video-summarizer --audio -l 2 -s 4 - -o - |
vlc -

安装

请确保您有必需的依赖关系,并从发布中下载二进制文件或自行构建。如果您只想尝试它,我建议您下载二进制文件,但最佳选项是从Rust仓库直接构建。包括更新在内的所有内容都得到了妥善处理。

安装 ffmpeg [apt] [pacman] 以使用此程序。

如果您想自己构建,则需要安装 Rust [apt] [pacman] 以及 git [apt] [pacman]

从 Rust 仓库构建

cargo install video-summarizer

从源代码构建

# Clone this repository
git clone https://github.com/SoptikHa2/video-summarizer.git
# Compile debug build to verify everything works
cd video-summarizer
cargo build
target/debug/video-summarizer -h
# Install release build
cargo install
# Run
# this will speedup loud parts 1.5x and completely drop silent parts (as speedup factor is >= 100)
video-summarizer -l 1.5 -s 100 path/to/video

依赖项

构建依赖项

运行时依赖项

结果

所有测试都使用 ffmpeg 4.2 和视频摘要器 1.1.1 进行。设置:-l 1.5 -s 100

名称 持续时间(秒) 静默时间(%) 节省时间(秒)
DEFCON 17: 我因为两亿美元而被起诉的那段爽时光 1887 15.32% 822 (43.55%)
1. 简介和范围(MIT AI 课程) 2838 40.12% 1706 (60.08%)
黑镜:白色圣诞 4326 11.93% 1786 (41.29%)
魔法少女小圆 第10集 1449 7.22% 553 (38.15%)

已知问题

  • 由于某些原因,youtube 管道示例失败了。

依赖项

~5MB
~95K SLoC