节点文献

基于FFmpeg的H.264解码器实现

Implementation of H.264 Decoder Based on the FFmpeg

【作者】 王彤

【导师】 殷福亮;

【作者基本信息】 大连理工大学 , 通信与信息系统, 2011, 硕士

【摘要】 FFmpeg是一个应用于音频和视频领域的开源程序,由于它开源、免费和跨平台的特点,备受开发者的青睐。它支持超过90种解码器和协议,例如H.261、H.263、H.264等。FFmpeg由C实现,不仅适用于PC软件,还应用于各种嵌入式设备。它为记录、转换和流化音频、视频提供了一个完整的解决方案,包括了先进的音频、视频编解码器库libavcodec,所有这些特性保证了可移植性和编解码器质量。H.264/MPEG-4第十部分或视频压缩标准A VC (Advanced Video Coding),是目前最为常用的录制、压缩和分配高清晰度视频的标准之一。它是由国际电信联盟远程通信标准化组织(ITU-T)的视频编码专家组(VCEG)与国际标准化组织(ISO)和国际电工委员会(IEC)的运动图像专家组(MPEG)共同开发的一个面向块的基于运动补偿的编解码标准,是两个组织共同合作的产物。H.264被公认为是最好的蓝光光盘的编解码标准之一,所有蓝光光盘播放机必须能够支持H.264解码。它还被广泛的用于流媒体网络资源,如VIMEO, YouTube和iTunes Store中的视频,网络软件如Adobe Flash Player和Microsoft Silverlight, DVB和SBTVD的广播服务,直接广播卫星电视服务,有线广播服务,电视服务,实时视频会议。作为最新的视频压缩标准,在压缩和网络传输质量上H.264/AVC相比以往的标准向前迈进了一大步。本论文首先介绍了H.264视频标准的应用,解码的关键技术和不同于以往视频编码标准的新特点,然后介绍FFmpeg的编译使用和其中主要的结构体和函数,在此基础上,重点对FFmpeg解码流程和FFmpeg中H.264解码器解码流程进行分析。在对以上问题进行系统的分析以后,提出一种从FFmpeg中提取特定功能代码的方法,并利用此方法成功提取出H.264解码器,经过测试,提取出的H.264解码器与FFmpeg解码结果相同,抽取出的解码器代码量相比FFmpeg代码显著降低,总文件数由899个降至60个,代码行数由302327行降至26576行。为工程中H.264解码器的使用提供了便捷之选。

【Abstract】 FFmpeg is an open source used in the field of audio and video, because of its open source, free and cross-platform features, it is favored by the developers. It supports over 90 codecs and protocols, such as H.261, H.263, H.264 and so on. It is realized by C, and being incorporated in not only PC software, but also a variety of embedded devices. It provides a complete solution to record, transcode and stream audio/video and includes advanced audio and video codec library libavcodec, all of which guarantee the transplantation and codec quality.H.264/MPEG-4 Part 10 or AVC (Advanced Video Coding) is a standard for video compression, and is currently one of the most commonly used formats for recording, compression, and distribution of high definition video. H.264/MPEG-4 AVC is a block-oriented motion-compensation-based codec standard developed by the ITU-T Video Coding Experts Group (VCEG) together with the International Organization for Standardization (ISO)/International Electrotechnical Commission (IEC) Moving Picture Experts Group (MPEG). It was the product of a partnership effort known as the Joint Video Team (JVT). H.264 is perhaps best known as being one of the codec standards for Blu-ray Discs; all Blu-ray Disc players must be able to decode H.264. It is also widely used by streaming internet sources, such as videos from Vimeo, YouTube, and the iTunes Store, web software such as the Adobe Flash Player and Microsoft Silverlight, broadcast services for DVB and SBTVD, direct-broadcast satellite television services, cable television services, and real-time videoconferencing.This paper first describes the H.264 video standard applications, the decoding key technologies and new features which are different from the other standards, and then introduced the compilation and usages of FFmpeg, the major structures and functions of FFmpeg, on this basis, focusing on the FFmpeg decoder process and FFmpeg H.264 decoder in thedecoding process analysis.After a systematic analysis of these questions, propose a method to extract specific function from the FFmpeg code, and using this method successfully extracted theH.264 decoder. Tests showed that, the H.264 decoder extracted from FFmpeg had the same result as FFmpeg decoding. The amount of code compared to FFmpeg code is significantly reduced.

【关键词】 FFmpegH.264解码抽取视频
【Key words】 FFmpegH.264decoderextractvideo
节点文献中: