繁体   English   中英

mpeg 2 解码

[英]mpeg 2 decoding

我想了解视频和音频解码的工作原理,特别是时序同步(如何获得 30fps 视频,如何将其与音频结合等)。 我不想知道所有的细节,只想知道它的本质。 我希望能够编写实际视频/音频解码器的高级简化。

你能给我指点迷津吗? MPEG2 视频/音频解码器的实际 C/C++ 源代码将是理解我认为的那些东西的最快方法。

从有效的编解码器中读取源代码似乎是正确的方法。 我建议如下:

http://www.mpeg.org/MPEG/video/mssg-free-mpeg-software.html

鉴于在 mpeg.org 网站上提到了它,我想说你会在这里找到你需要的东西。

在过去,我有一些时间来解码 mpeg 视频(虽然没有音频),而且原理非常简单。 其中包括一些纯图像,一些中间图像相对于最接近的主图像进行描述,其余的使用最接近的主/中间图像进行描述。

一个时间段,一张图片。 但是最近的编解码器要复杂得多,我猜!

编辑:同步

我不是同步音频和视频的专家,但这个问题似乎是使用同步层来处理的(参见那里的定义)。

对于音频/视频同步,基本上,每个视频和音频帧都应该有时间戳。 时间戳通常称为 PTS(演示时间戳)。 一旦一个视频/音频被一个解码器解码,音频/视频渲染器应该安排在正确的时间显示的帧,以便音频/视频同步。

我想你可以参考MPEG2教程的时序模型”一章了解详细信息。

您可以浏览ffmpeg 的源代码(可通过 svn 获得)或其API 文档

根据您对 MPEG-2 格式的了解程度,您可能希望先阅读一篇有关它的文章,以获得广泛的概述。 我的意思是这样的:

MPEG-2 标准初学者指南

MPEG-2 视频压缩

@帕特里克和尼尔斯

所以你说有时间戳,嘿...这些只是我猜的视频部分。 对于音频,我猜标题中有足够的信息(例如“每秒样本数”)。 多久需要这些时间戳? 我想音频和视频数据包的交错可以确保视频数据总是在音频数据之前?

编辑:找到我需要的: http : //www.dranger.com/ffmpeg/tutorial01.html

海通,

音频数据的时间戳仍然是必要的,因为音频和视频帧可能不在同一位置对齐。 例如:

V:1000 1040 1080 1120 ... A:990 1013 1036(丢失)1082

您可能需要补偿第一个视频/音频帧之间的偏移。 此外,如果可能存在丢包(在视频流期间),您需要视频/音频的时间戳以保持准确同步。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM