1

我有一系列以 mpeg2 编码的视频文件(我可以更改此编码),并且我必须在 flash flv 中制作一部电影(这是一项要求,我无法更改该编码)。

一个目标电影是不同源视频文件的汇编。

我有一个定义目标电影的播放列表。例如:

Video file        Position        Offset       Length 
little_gnomes     0               0            8.5
fairies           5.23            0.12         12.234
pixies            14              0            9.2

video file 是文件的名称,position 是文件应该开始的时间(在主时间轴中),offset 是视频文件内的偏移量,length 是要播放的视频的长度。数字是秒(双)。

这将导致类似的结果(最终电影时间线):

               0--5.23|--8.5|--14|--17.464|--23.2|
little_nomes   **************
fairies               *********************
pixies                           *****************

在视频重叠的地方,要添加的最后一个视频覆盖最后一个,应该混合音频。

生成的视频轨道将是:

               0--5.23|--8.5|--14|--17.464|--23.2|
little_nomes   *******
fairies               ***********
pixies                           *****************

虽然生成的音频将是:

               0--5.23|--8.5|--14|--17.464|--23.2|
little_nomes   11111112222222
fairies               222222211112222222222
pixies                           22222222221111111

其中 1 或 2 是混合音轨的数量。

最多可以有 3 个音轨。

我需要编写一个程序,将播放列表作为输入并生成 flv 文件。我对任何解决方案持开放态度(必须是免费/开源的)。

可以做到这一点的现有工具将是最简单的,但我没有找到。至于制作我自己的解决方案,我发现只有 ffmpeg,我可以用它做一些基本的事情,但是文档非常缺乏。

它可以是任何语言,它不必非常快(如果制作一部 1 小时的电影需要 30 分钟就可以了)。

该解决方案将在基于 opensolaris 的 x64 服务器上运行。如果我必须使用 linux,这也可以。但是windows是不可能的。

4

4 回答 4

2

我终于结束了使用 ffmpeg 库从头开始编写我的解决方案。这是很多样板代码,但最终逻辑并不复杂。

我发现MLT 框架对我帮助很大。

于 2009-12-28T04:49:07.077 回答
0

好吧,如果您更喜欢 Java,我已经使用Xuggler的 API 编写了几个类似的程序。

于 2009-12-29T03:42:54.667 回答
0

这里有两个相关的问题:

命令行视频编辑工具

https://superuser.com/questions/74028/linux-command-line-tool-for-video-editing

Avisynth听起来好像它可以做你想做的事,但它只适用于 Windows。

您很可能最终会使用 FFmpeg 库编写自己的应用程序。你是对的,文档可能会更好......但是Stephen Dranger 的教程是一个很好的起点(如果你还不知道的话)。

于 2009-12-25T09:38:50.647 回答
0

如果您的视频/图像已经在线,您可以使用 Stupeflix API 创建最终视频。您可以更改配乐,为视频添加过滤器等等。这里有文档和在线演示:https ://developer.stupeflix.com/documentation/ 。

于 2014-03-16T22:05:33.507 回答