1

我想对 MP4 视频做几件事,但我不知道从哪里开始。

我想做的一些事情:
- 将视频的颜色更改为黑白、棕褐色等
- 添加动画,例如淡入、淡出、自定义图像/文本四处移动
- 将文本嵌入到视频中

本质上,视频编辑程序的基本功能。

是否有我可以用来为 MP4 视频执行这些操作的代码库?或者我可以阅读的地方开始?我似乎找不到任何有关此的信息,尤其是 MP4 的格式。

我在想我需要为视频的每一帧应用某种 RGB 转换以获得颜色效果,并可能将我想要的动画视频附加到给定的 MP4 视频中。

编辑:非常感谢您提供的信息。我正在尝试以编程方式执行此操作。FFmpeg 仅用于视频转换,因此不能完全满足我的要求。Puffadder 为我提供了必要的信息,让我了解该做什么。总之,非常感谢大家!

4

4 回答 4

3

舍文,

MP4 不是视频格式。它是一个容器。它们是有区别的。因此,当您说“MP4 视频”时,您在技术上是不正确的。容器(例如 MP4、Matroska、AVI 等)只是将多个多媒体和/或文本流包含在一个文件中,容器的“格式”只是指定这些流存储到容器文件中的方式,没有任何内容关于里面的“视频”。要找出您的 MP4 文件中有哪些流,您需要一个类似“mp4box”的工具。它将为您提供有关多媒体流的信息,并且还允许提取这些流。为此考虑使用“yamb”。

AFAIK,ffmpeg 是一种编码/解码工具,而不是视频编辑器。所以我认为它不适合你的工作(除非你需要做一些视频格式转换)。

关于 MP4 的格式,它是 ISO/IEC 14496-14 规范,不是免费提供的。我也觉得你不需要。只需使用 yamb 从 MP4 文件中提取视频并找到一个视频编辑库。

于 2009-12-06T08:08:52.543 回答
1

我也推荐 FFMPEG,我已经习惯了它在实时 mp4 视频流上执行运动检测和运动轮廓,这需要一些思考,但我的过程是,将帧解压缩为原始 RGB 或 YUV 数据,检查数据比较算法,然后使用边缘检测算法(针对我的情况进行了优化)用特定颜色(红色)标记“移动”像素。处理完原始数据后,您可以使用 FFMPEG 即时重新压缩它。您甚至可以使用 FFMPEG 将数据存储到文件中,也可以使用 live555 通过网络流式传输。如果您决定使用 live555 流式传输数据,那么您将能够使用 vlc 或任何其他支持 rtsp 的媒体播放器连接到流(并下载它)。

于 2012-02-09T08:53:01.343 回答
0

ffmpeg是一个家喻户晓的视频转换名称,包括 MPEG-4。我不知道它是否有 Objective-C 绑定,但如果有的话我不会感到惊讶。

于 2009-12-06T02:05:01.793 回答
0

如果您使用的是 Mac(而不是 iPhone)并且有可用的 Core Video 和 Core Image,我相信您可以使用 Core Image 过滤器来完成任务。

一个不错的起点似乎是Core Video Programming Guide

您还可以使用Quartz Composer并以图形方式设置管道。然后你可以从代码中加载和使用它。

于 2009-12-06T08:30:19.017 回答