从命令行连接 ogg 视频文件

Nou*_*him 19 video ogg transcode video-editing

好的。我有一些使用桌面录制工具创建的 ogg 文件。我已经使用ffmpeg一次对它们进行了转码(主要是为了剪掉开头和结尾)。

现在,我有 3 个这样的文件,我想将它们连接成一个.ogv文件。我尝试使用oggCat,它因某种错误而崩溃(我尝试使用将文件连接到自身oggCat,但失败也让我相信我的发行版正在运送损坏的软件包版本)。简单地cating 文件有效,但我无法寻找哪个不酷。mencoder像这样跑mencoder -ovc lavc -oac lavc file1.ogv file2.ogv file3.ogv -o complete.ogv。它将文件转码为avi3 个视频中的一小部分。

那么,我该怎么做呢?

更新 1:我目前的解决方法是将 3 个文件转码为.mpgusing ffmpeg,然后将cat它们组合在一起,然后将它们转码回ogv.

更新 2:PiTiVi 适用于这种事情,但我需要命令行中的一些东西,我可以自动化和编写脚本。

soa*_*dos 9

Ogg Video Tools似乎可以满足您的需求。

简短的介绍:

有时连接(加入)两个或更多视频文件会很好。为此,您可以使用 oggCat,它从给定的文件创建一个连续的 Ogg 视频文件。

# oggCat newFile.ogv file1.ogv file2.ogv [ file3.ogv [...] ]

注意:视频文件必须在帧率、关键帧间隙、帧大小等方面对应。

在此处此处查看更多信息

  • 我在我的问题中提到了我使用 oggCat 的经历。即使当我尝试将文件连接到自身时也不起作用。 (2认同)

evi*_*oup 6

我会为此使用 ffmpeg 的 concat demuxer(需要最新版本的 ffmpeg)。

首先,创建一个名为 input.txt(或任意名称)的文件,其中包含如下几行:

file '/path/to/input1.ogv'
file '/path/to/input2.ogv'
file '/path/to/input3.ogv'
Run Code Online (Sandbox Code Playgroud)

请注意,这可以是相对或绝对文件路径。如果您的文件都在同一个目录中,并且以类似于input1.ogv, input2.ogv...的模式命名,则可以使用 for 循环生成 input.txt:

rm inputs.txt; for f in input*.ogv; do echo "$f" >> inputs.txt; done
Run Code Online (Sandbox Code Playgroud)

创建文件后,您可以像这样无损地连接 ogv 文件:

ffmpeg -f concat -i inputs.txt -c copy output.ogv
Run Code Online (Sandbox Code Playgroud)