从命令行连接 ogg 视频文件

从命令行连接 ogg 视频文件

好的。我有一些使用桌面录制工具。我使用ffmpegonce 对它们进行了转码(主要是为了剪掉开头和结尾)。

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

那么,我该怎么做呢?

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

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

答案1

Ogg 视频工具似乎可以做你想做的事。

简短的介绍:

有时将两个或多个视频文件连接起来会很不错。为此,您可以使用 oggCat,它可以根据给定的文件创建一个连续的 Ogg 视频文件。

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

笔记:视频文件的帧速率、关键帧间隙、帧大小等必须对应。

查看更多这里这里

答案2

我将为此使用 ffmpeg 的 concat 解复用器(需要最新版本的 ffmpeg)。

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

file '/path/to/input1.ogv'
file '/path/to/input2.ogv'
file '/path/to/input3.ogv'

请注意,这可以是相对或绝对文件路径。如果您的文件都位于同一目录中,并且以类似于以下的模式命名输入1.ogv,输入2.ogv...,可以使用for循环生成inputs.txt:

rm inputs.txt; for f in input*.ogv; do echo "$f" >> inputs.txt; done

创建文件后,您可以无损地连接 ogv 文件,如下所示:

ffmpeg -f concat -i inputs.txt -c copy output.ogv

答案3

您是否尝试过使用皮蒂维? 将三个剪辑按顺序放在时间线上,然后将结果保存为一个文件。

答案4

http://www.xiph.org/oggz/有一个特点,

  • 合并将 Ogg 文件合并在一起,按照演示时间的顺序交错页面。

编辑:这并不能实现您想要的效果,因为您想一个接一个地播放视频。


http://sox.sourceforge.net也可能有效,语法(http://sox.sourceforge.net/sox.html):

 sox infile1 infile2 outfile

编辑:这仅处理音频。


你可以尝试编译oggvideotools然后看看 oggCat 是否有效。

编辑:这对你有用......


您可以询问http://sourceforge.net/projects/oggvideotools/support修复您的发行版中的问题,包括您在 1) 运行从您的发行版存储库获取的二进制文件 2) 编译 3) 运行编译版本时遇到的错误消息文本。

编辑:您正在寻找替代程序来进行连接。


尝试使用mkvtoolnix将 ogg 文件合并为单个 mkv,然后使用同一工具从中提取 ogg

相关内容