我想了解视频和音频解码是如何工作的,特别是定时同步(如何获得30fps视频,如何将其与音频耦合,等等)。我不想知道所有的细节,只想知道它的本质。我希望能够编写一个实际的视频/音频解码器的高度简化。
你能给我指点一下吗?我认为,一个实际的MPEG2视频/音频解码器的C/C++源代码将是理解这些东西的最快方法。
发布于 2009-02-23 10:21:09
您可以浏览ffmpeg的源代码(可通过svn获取)或其API documentation。
发布于 2009-02-23 10:21:09
从工作正常的编解码器中读取源代码似乎是正确的方法。我的建议如下:
http://www.mpeg.org/MPEG/video/mssg-free-mpeg-software.html
鉴于mpeg.org网站上提到了它,我想说你会在这里找到你需要的东西。
在过去,我花了一些时间对mpeg视频进行解码(虽然没有音频),而且原理非常简单。其中包含一些纯图像,一些中间图像相对于最接近的主图像进行描述,其余的使用最接近的主/中间图像进行描述。
一个时隙,一个图像。但我想,最近的编解码器要复杂得多!
编辑:同步
我不是同步音频和视频的专家,但这个问题似乎是使用同步层解决的(参见there的定义)。
发布于 2009-02-23 10:56:44
对于音视频同步,基本上每个视频帧和音频帧都要打上时间戳。时间戳通常被称为PTS (演示时间戳)。一旦视频/音频被解码器解码,音频/视频渲染器应该安排帧在正确的时间显示,以便音频/视频同步。
我想你可以参考MPEG2 Tutorial的"Timing Model“一章来了解细节。
https://stackoverflow.com/questions/577102
复制相似问题