Java:编写自定义视频编解码器的指南 [已关闭]

2022-09-04 04:02:39

我有一个非常奇怪的问题,但这里是:

是否可能,是否有任何使用C++或Java编写自定义视频编解码器的指南?

这是奇怪的部分:我不需要深入研究那些我不理解的关于音频和电影的大量信息。我真正需要的是如何在电影播放器和电影文件之间制作软件层背后的技术内容。

原因如下:我想创建一个库或最终的2个函数 - 编码/解码 - C++ / Java,它将采用任何类型的文件的RAW二进制输入,并根据给定的密码或类似的东西对其进行编码/解码。然后,我需要将此处理放在电影播放器和电影文件之间。最终结果将是一个受密码保护的mp4 / avi / mpeg / wmv(无关紧要)文件,只能使用此“编解码器”播放。编解码器的内部逻辑现在不是问题。

我如何想象它就像一个流,电影播放器请求文件并调用我的函数,它获取文件的一块,对其进行解码(它以前已经编码过),并以wmv / mp4等格式返回正确的字节。encode()

这有可能吗?如何实现?


答案 1

编解码器通常获取图像块和上下文信息,转换和量化数据,应用预测,然后使用任意数量的编码方案之一对生成的错误流进行编码。

API 通常很简单。对于编码,您将图像数据块(帧)发送到编码器,并生成位流。您可能负责自己编写容器(文件格式)。对于解码,您将位流式传输进去,帧出来。

这些绝对没有标准 - 编解码器中使用的技术有时是标准化的,但确切的接口不是。

MediaTool Introduction是一个简单的应用程序编程接口(API),用于在Java中解码,编码和修改视频:http://wiki.xuggle.com/MediaTool_Introduction#How%5FTo%5FTake%5FSnapshots%5FOf%5FYour%5FDesktop

Java Media Frame 工作教程:http://wwwinfo.deis.unical.it/fortino/teaching/gdmi0708/materiale/jmf2_0-guide.pdf

也许对你有帮助!


答案 2

推荐