我有一系列以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
视频文件是文件的名称,位置是应该启动文件的时间(在主时间轴中),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,我能用它做基本的事情,但文档非常缺乏。
它可以是任何语言,它不一定非常快(如果制作1h电影需要30分钟就可以了)。
该解决方案将在基于opensolaris的x64服务器上运行。如果我必须使用linux,这也可以。但窗户是不可能的。
答案 0 :(得分:2)
我终于使用ffmpeg库从头开始编写我的解决方案了。这是很多锅炉板代码,但最终逻辑并不复杂。
我发现MLT framework给了我很大的帮助。
答案 1 :(得分:0)
以下是两个相关问题:
Command line video editing tools
https://superuser.com/questions/74028/linux-command-line-tool-for-video-editing
Avisynth听起来好像可以做你想要的,但它只是Windows。
您最终可能会使用FFmpeg库编写自己的应用程序。你是对的,文档可能会更好......但tutorial by Stephen Dranger是一个很好的起点(如果你还不知道的话)。
答案 2 :(得分:0)
好吧,如果您更喜欢Java,我使用Xuggler的API编写了几个类似的程序。
答案 3 :(得分:0)
如果您的视频/图片已在线,则可以使用Stupeflix API创建最终视频。您可以更改音轨,为视频添加过滤器等等。这里是文档和在线演示:https://developer.stupeflix.com/documentation/。