我认为这是您之前问题的延续/重新发布(但有更多细节)。正如我在那篇文章的评论中提到的那样,那里有一整套视频编解码器。扩散的一个原因是很多人喜欢重新发明轮子。然而,一个更突出的原因是视频有很多不同的用例。
您似乎要求很多,但是您没有提出很多变量:
- 您表达了对视频编码器的需求,该编码器将在 Windows Phone 设备上完全以软件运行,这必然是一台功率相当低的机器;你需要它实时运行吗?即,您是否希望在发送未压缩帧后(几毫秒内)几乎立即压缩视频帧?或者你可以让设备考虑一下压缩吗?
- 视频帧有多大?您是否在 WP 设备上进行屏幕捕获,即计算机生成的数据?或者您是否正在从相机读取原始帧并希望压缩它们?
- 继上一点之后,什么类型的视频数据?使用某种编解码器,计算机生成的数据看起来会更好。照片质量的图像(来自相机)意味着不同的编解码器系列。
- 你的目标是什么比特率?如果您有 1 秒的视频,它应该占用的最大字节数是多少(或者您希望如此)?
- 谁是视频的最终消费者?在上一篇文章中,您表示要上传到 YouTube。如果是这种情况,那么您很幸运,因为由 FFmpeg 支持的 YouTube 几乎可以处理宇宙中的所有编解码器,因此您将有很多选择。
我对 Windows Phone 编程了解不多。但是,任何 WP 设备在技术上都将具有硬件视频编码功能。我做了一些粗略的谷歌搜索,以确定您是否可以在应用程序编程级别访问它,但我找不到任何证据表明它是可能的(这个 SO 答案表明该功能不存在)。
我希望给你留下深刻印象,编写视频编码器是一项艰巨的工作(看看我的用户名;我知道我从哪里说话)。通常,它们需要相当多的 CPU 功率(因此需要电池功率,尤其是在纯软件中实现时)。但是,您已经对使用标准 zlib 的编解码器做出了一些猜测。实际上,基于直 zlib 的视频编解码器有几种,即 MSZH 和 ZLIB,统称为Lossless Codec Libraries。该 wiki 页面有一个基本的比特流描述(披露:我操作该 wiki 站点)。我相信 WP 库包括对 zlib 编码的访问,所以这可能是一个起点,YouTube 应该能够消化生成的文件。
如您所料,还有一个结合 XOR 和 zlib 的视频编解码器(Dosbox Capture Codec),但它可能不适合您的应用程序。
这些库是否提供对标准 JPEG 的访问(即,它可以对 JPEG 文件进行编码)吗?另一种选择(取决于视频类型)是在 AVI 文件中填充连续的静止 JPEG 图像帧。这称为 Motion JPEG 或 MJPEG。但是,它的比特率大致相当于仅帧内 MPEG-1,您表示它是不充分的。
我希望我已经为您提供了一些想法和有用的途径,让您在寻求解决方案的道路上继续前进。