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

Posted

技术标签:

【中文标题】Java:编写自定义视频编解码器的指南 [关闭]【英文标题】:Java: Guide to write a custom video codec [closed] 【发布时间】:2012-04-24 06:11:54 【问题描述】:

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

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

这是奇怪的部分:我不需要深入了解我不了解的有关音频和电影的大量信息。我真正需要的是如何在电影播放器​​和电影文件之间制作软件层的技术资料。

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

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

这是否可能以及如何实现?

【问题讨论】:

我知道是很久以前的事了,但我也想实现同样的东西,请问您有找到方法或在这件事上取得任何进展吗? 【参考方案1】:

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

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

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

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

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

也许对你有帮助!

【讨论】:

以上是关于Java:编写自定义视频编解码器的指南 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

1.使用DShow获取本机的视音频设备和自带编解码器列表

[总结]FFMPEG视音频编解码零基础学习方法

FFmpeg学习1:视频解码

一文搞懂视频编解码原理

Netty框架之编解码机制二(自定义协议)

Netty框架之编解码机制二(自定义协议)