3

I need to perform the following operations in my python+django project:

  • joining videos with same size and bitrate
  • joining videos and images (for the image manipulation I'll use PIL: writing text to an existing image)
  • fading in the transitions between videos

I already know of some video editing libraries for python: MLT framework (too complex for my needs), pygame and pymedia (don't include all the features I want), gstreamer bindings (terrible documentation).

I could also do all the work from command line, using ffmpeg, mencoder or transcode.

What's the best approach to do such a thing on a Linux machine.

EDIT: eventually I've chosen to work with melt (mlt's command line)

4

4 回答 4

0

您可以使用 OpenCV 加入视频和图像。请参阅文档,尤其是图像/视频 I/O 功能

但是,我不确定该库是否具有可以为您褪色的功能。

于 2011-02-01T08:00:22.673 回答
0

你用的是什么编解码器?

有两种压缩视频的方法:有损和无损。很容易将它们区分开来。根据它们的长度,有损视频文件在兆字节范围内,无损(包括未压缩)在千兆字节范围内。

这里过于简单化了。编辑视频文件与编辑电影有很大不同,您只需将电影片段粘合在一起。这不仅仅是比特率、帧率和分辨率。大多数有损视频编解码器(MPEG 1-4、Ogg Theora、H.26x、VC-1 等)以全帧开始,然后仅记录运动的变化。当您观看视频时,您实际上看到的是一个静态场景,上面粘贴了一层又一层的变化。看起来您在全帧之后看到全帧,但如果您查看文件中的数据,您将看到的只是黑色背景和打乱的视频块。

如果它未压缩或使用无损编解码器(HuffYUV、Lagarith、FFV1 等),那么您可以像编辑电影一样编辑视频文件。您仍然需要重新编码视频,但它不会影响视频质量,您可以随意剪切、复制和粘贴,只要分辨率和帧速率相同。如果您的视频有损,则必须重新编码,但会损失一些视频质量,就像一遍又一遍地以 JPEG 格式保存相同的图像一样。

另一种选择可能是将几段视频放入 MKV 之类的容器中,并使用章节让它从一段跳到另一段。我似乎记得被告知这是可能的,但我从未尝试过,所以也许不是。

于 2013-01-24T17:45:26.397 回答
0

因为 ffmpeg 在 GNU/Linux 上可用,所以我将它与pexpectsubprocess等模块一起使用是最好的解决方案....

于 2011-01-29T12:24:48.203 回答
0

http://avisynth.org/mediawiki/Main_Page是一种视频脚本语言。

于 2011-01-28T05:07:34.100 回答