6个版本 (破坏性更新)
0.11.1 | 2024年5月8日 |
---|---|
0.9.0 | 2024年2月9日 |
0.8.0 | 2024年1月29日 |
0.7.0 | 2024年1月11日 |
0.6.2 | 2024年1月4日 |
#44 in 视频
61KB
995 行
otr
otr是一款命令行工具,可以从在线电视录制器(OTR)解码并剪切视频文件。它运行在Linux和macOS上。
支持的架构有
- x86_64/amd64
- AArch64/arm64,包括Raspberry Pi 4和苹果M系列芯片等平台
目录
功能
解码
otr解码OTRKEY文件(即从OTR下载的编码视频文件)。解码功能基于eddy14的工作,他逆向工程了OTRKEY文件格式,请参阅他的博客文章 [德语,由PyroPeter镜像]。
解码包括验证OTRKEY文件和解码文件的校验和。
剪切
otr使用FFmpeg和FFMS2剪切视频。剪切精确到帧。也就是说,即使剪切间隔的边界不在关键帧上,剪切也会精确地在那个边界进行。为了实现这一点,可能需要重新编码视频的部分。
关于剪切列表的确定和选择,有两种不同的选项
-
otr会自动从剪切列表提供商cutlist.at下载并选择剪切列表
如果可用多个剪切列表,otr优先选择评分高的那些。
-
可以在命令行上指定剪切间隔
当cutlist.at无法为视频提供剪辑列表时,此选项可能是有意义的。在这种情况下,剪辑间隔可以手动使用视频编辑器(例如,在Linux上可以使用Avidemux、OpenShot或Shotcut)来确定,并通过命令行输入otr。otr可以将此类自制的剪辑列表上传到cutlist.at,使其公开可用。
快速、并发处理
otr试图尽可能快地处理文件。视频文件是顺序解码的(即,一个接一个),但每个文件都是使用并发线程解码的,以充分利用CPU能力。对于剪辑,使用FFmpeg的多线程功能。
自动处理otrkey文件
可以为otrkey文件创建一个专用的MIME类型。otr可以将其定义为默认应用程序。此存储库包含Linux所需的文件。
简单使用
虽然otr是一个命令行应用程序,但其使用方法相当简单。例如,如果您已从OTR下载了一些OTRKEY文件,则命令otr process
处理所有文件(即,它们被解码,下载剪辑列表,然后剪辑文件)。使用专用MIME类型,它甚至更简单:双击OTRKEY文件即可启动otr。此外,otr还有专门的子命令用于解码和剪辑视频,提供了更多选项。
安装
Linux
手动安装
这适用于Linux和macOS。请确保安装FFmpeg和FFMS2(需要二进制文件ffmsindex
),因为otr需要这两者来剪辑视频。
要下载otr,通过以下方式克隆此存储库:
git clone https://gitlab.com/mipimipi/otr.git
之后,通过执行以下命令构建otr:
cd otr
make
最后,以root
身份执行以下命令以安装otr:
make install
使用软件包管理器安装
对于Arch Linux(以及其他可以从Arch用户存储库安装软件包的Linux发行版),有AUR软件包otr和otr-git。这些软件包也作为二进制文件通过nerdstuff存储库提供。
OTRKEY MIME类型
对于Linux,此存储库的resources
文件夹包含两个文件,用于为OTRKEY文件创建专用MIME类型,并使otr成为该类型的默认应用程序。只需将它们复制到您机器的相应文件夹中即可。
cp resources/otr.desktop /usr/share/applications/.
cp resources/otrkey_mime.xml /usr/share/mime/packages/.
由于otr现在是唯一可以处理新MIME类型文件的程序,因此如果您双击otrkey文件,它应该会自动启动。
macOS
请参阅手动安装。如果您首选的播放器是Quicktime,则可能需要根据视频文件格式安装插件。否则,必须使用不同的播放器 - 例如,使用VLC。
配置
可以通过创建一个JSON格式的配置文件来配置otr。它命名为otr.json
,必须存储在您操作系统默认配置目录中。那就是 ...
<XDG-CONFIG-HOME-DIR>
在Linux上,而在大多数情况下,<XDG-CONFIG-HOME-DIR>
等于~/.config
~/Library/Application Support
在macOS上
配置文件具有以下结构
{
"working_dir": "<PATH TO YOUR OTR WORKING DIRECTORY>",
"decoding": {
"user": "<YOUR OTR USER>",
"password": "<YOUR OTR PASSWORD>",
},
"cutting": {
"min_cutlist_rating": <MINIMUM CUT LIST RATING>
"submit_cutlists": <true/false>
"cutlist_at_access_token": <ACCESS TOKEN REQUIRED FOR CUTLIST.AT>
"cutlist_rating": <DEFAULT CUT LIST RATING>
}
}
所有参数都是可选的,或者有默认值,或者可以被相应的命令行参数覆盖。下表解释了详细信息
参数 | 描述 | 必选 | 默认 | CLI 参数 |
---|---|---|---|---|
working_directory |
OTR 的工作目录 | 可选 | ~/Videos/OTR 在 Linux 上,~/Movies/OTR 在 macOS 上 |
否 |
user ,password |
在线电视录制器的访问数据 | 解码视频时必选 | 没有默认值 | 是 (--user/-u 和 --password/-p ) |
min_cutlist_rating |
cutlist.at 的剪辑列表必须具有的最小评级,才能被 otr 接受用于剪辑视频 | 可选 | 如果没有给出此参数,所有剪辑列表都将被接受 | 是 (--min-rating ) |
submit_cutlists |
是否将自创建的剪辑列表提交到 cutlist.at。要上传剪辑列表,需要一个 cutlist.at 的访问令牌 | 可选 | 如果没有给出此参数,则不会提交自创建的剪辑列表 | 否 |
cutlist_at_access_token |
针对 cutlist.at 的用户特定访问令牌 | 上传自创建的剪辑列表时必选 | 没有默认值 | 否 |
cutlist_rating |
自创建的剪辑列表的评级 | 可选 | 如果没有给出此参数,评级将为 0(即,剪辑列表将被视为占位符,不会提供给其他用户) | 是 (--rating ) |
工作目录
otr 需要一个工作目录。在此目录中,创建子目录 Encoded
、Decoded
和 Cut
。因此,目录结构如下
<otr working dir>
|
|- Encoded
|
|- Decoded
| |- Archive
|
|- Cut
视频文件根据其处理状态存储在这里。例如,Cut
包含已剪辑的视频文件,Decoded
包含尚未剪辑的解码文件(可能发生视频可以解码但不能剪辑的情况,因为剪辑列表尚未存在)。如果视频已剪辑,则未剪辑版本存储在 Decoded/Archive
下,以便用户在结果不满意时可以重复剪辑。
运行otr
otr 有不同的子命令。
otr process
otr process
处理作为命令行参数提交的所有视频文件,或者存储在 工作目录 中的所有视频文件。
otr 需要视频文件名称的特定模式(即 OTR 使用的模式)。有关编码和解码文件的伪正则表达式表示法,请参阅模式
<name-of-video>_YY.MM.DD_hh-mm_<TV-station>_<a-number>_TVOON_DE.mpg(.|.HQ|.HD).<format>(.otrkey)?
otr decode
otr decode
允许解码单个视频。有关详细信息,请参阅命令行帮助。
otr cut
otr cut
允许剪辑单个视频。用于此的剪辑列表可以自动从 cutlist.at 选择和下载,或者通过命令行参数(作为文件或作为专用剪辑间隔)提交 - 请参阅命令行帮助以获取详细信息。
将剪辑列表提交到 cutlist.at
如果使用自创建的剪辑列表(即,使用 otr cut --cutlist ...
的专用剪辑间隔),otr 可以自动生成相应的剪辑列表文件并将它们上传到 cutlist.at,以便公开提供剪辑列表。这需要在 cutlist.at 上进行注册(即,访问令牌 - $$FRED)。此外,必须相应地设置 otr 配置。如果需要,可以在上传后调整此类剪辑列表的属性。
生成的裁剪列表文件存储在操作系统用户特定缓存目录的子目录OTR
中(通常是<XDG-CACHE-HOME-DIR>
- 即在大多数情况下 ~/.cache
- 在Linux上,~/Library/Caches
在macOS)。上传后,这些文件不再需要,可以删除。
详细程度
命令行标志--verbose/-v
定义了otr的消息输出详细程度。使用--quiet/-q
,则没有消息,请参阅命令行帮助以获取更多信息。
许可证
依赖项
~12–28MB
~394K SLoC