在Mac OS X上以自己的容器格式播放视频文件的方案
我计划编写一个应用程序(C/C++/Objective-C) 以自己的(私有)容器格式播放媒体文件。这些文件将 包含:多个视频流,由视频编解码器编码(例如 据推测,XVid 或 H264 组件能够解码 系统中存在视频格式);多个音频 某些压缩格式的流(假设解码 将由系统组件或自己的代码执行)。
因此,似乎需要实现以下方案:
1)实现容器解复用器(可能采用媒体处理程序的形式 成分)。
2)将视频帧传递给视频解码器组件,并混合 解压缩帧(使用一些自己的规则)。
3) 将音频数据传递给音频解码器组件,或者解压 通过自己的代码进行音频,并混合解码的音频数据。
4) 将视频帧渲染到窗口。
5) 将音频数据传递到选定的音频板。
任何人都可以为上述任何阶段提供提示,即: 我应该使用的工具包;有用的样本;可能是以下名称 要使用的功能;可能是对该方案的改进,......
I am planning to write an application (C/C++/Objective-C) that will
play media files in own (private) container format. The files will
contain: multiple video streams, encoded by a video codec (like
XVid or H264, it is supposed, that components capable of decoding
the viideo formats are present in the system); multiple audio
streams in some compressed formats (it is supposed, that decoding
will be performed by a system component or by own code).
So, it seems it is required to implement the following scheme:
1) Implement container demuxer (may be in the form of media handler
component).
2) Pass video frames to a video decoder component, and mix
decompressed frames (using some own rules).
3) Pass audio data to an audio decoder component, or decompress the
audio by own code, and mix decoded audio data.
4) Render video frames to a window.
5) Pass audio data to a selected audio board.
Could anybody provide tips to any of the above stages, that is:
toolkits, that I should use; useful samples; may be names of
functions to be used; may be improvements to the scheme,....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我知道我已经很晚了,所以您可能不再需要这个,但我只是想提一下,正确的方法是编写一个 QuickTime 组件。
虽然它是相当老派的,但它与苹果用来支持新格式和编解码器的方式相同。
将 Perian 项目视为一个方向点。
最好的
I know I am quite late, so you might not need this anymore, but I just wanted to mention, that the right way to do it is to write a QuickTime component.
Although it is pretty old school, it's the same way Apple uses to support new formats and codecs.
Look at the Perian project as an orientation point.
Best