2011-10-17 134 views
8

我正在制作支持视频通话的应用程序,我正在寻找解释h.264编解码器结构的tutorial/doc。我希望能够打包流,将其封装在数据报中,在接收端进行发送和解包。H.264编解码器

任何建议/阅读材料?

回答

9

你是什么意思的结构?如果你正在谈论比特流语法,你可以免费下载H.264 standard。还有很多关于H.264的书籍/论文,例如Iain Richardson

如果您对H.264 over IP的网络传输更感兴趣,为什么不使用RTP标准和关联的payload format

+0

我对RTP封装过程更感兴趣。我正在黑莓上制作一个视频流应用程序,并且我可以访问视频流,并且我需要能够以正确的方式将其打包到RTP包中,以便在接收端正确使用它,而不管数据包丢失如何。所以谢谢这些链接看起来正是我需要的。最后一件事 - 具有h.264编码视频的视频文件是否有头文件?我的意思是当我用h.264编码的文件记录时,它将以.3gp文件格式保存视频,并且在文件的开头似乎有一个标题 - 我可以在哪里读到这个? –

+0

您可以在3GPP规范中找到:AFAICT它看起来可能是下面的一个,但仔细检查:http://www.3gpp.org/ftp/Specs/html-info/26244.htm否则在http下搜索://www.3gpp.org/specifications。请记住,.3gp文件只是一个容器格式(在您的情况下,在手机上使用),并且与网络打包无关。另外,您可能需要/能够读取标题中某处的H.264 SPS和PPS。提取该信息对你来说可能很重要。 – Ralf

1

看看x264这是编解码器的现有实现。你甚至可能想考虑使用该编解码器,而不是从头开始实施AVC

5

这里是H.264

很基本的原则如果你正在写的网络摄像机的应用程序,RTP是你在找什么。 如果你正在C++中实现它,库有一个ffmpeg选择。