论文部分内容阅读
数字信息时代中,嵌入式系统以其嵌入和专用的特点得到了蓬勃的发展,多媒体技术不断发展的过程中,视频信息以直观性强、信息量大和便于理解等优点,得到了极其广泛的应用。随着市场上终端设备的日新月异,越来越多的视频格式出现来适应不同的终端设备和不同的应用环境。为了实现多媒体之间访问,视频格式转换成为了一项重要的技术。本论文通过在嵌入式Linux平台上移植FFmpeg开源库来实现视频格式的转换。首先,视频格式转换软件的开发需要搭建Linux平台,本设计中应用的主要解码芯片是STi7105芯片,具有强大的解码功能并且兼容嵌入式Linux软件开发环境的特点。在搭建平台的过程中,需要先在宿主机上编译STLinux,编译成功后再移植入目标板,同时,提出了一种通过比较两个版本的文件系统不同之处进行文件系统升级的方法,可以使文件系统在不擦除Flash的情况下进行升级。其次,在视频格式转换过程中需要了解视频格式转换的编解码过程和封装过程,通过分析先进的视频编码标准技术H.264编码标准,以及Windows系统下常用的流媒体AVI文件格式和可进行实时传输TS流的结构,为视频格式转换提供了理论知识基础。最后,利用FFmpeg库实现格式转换过程需要学习FFmpeg开源库中的主要项目和框架组成,在剪辑和交叉编译过程中选取所需功能,并外接libx264来实现H.264编码标准。在设计代码时,通过调用FFmpeg库中的接口函数,编写C语言代码,实现socket接收UDP传送的实时TS视频流并对其进行视频格式转换后生成AVI视频文件,或者直接对TS视频文件进行视频格式转换后生成H.264编码标准的AVI文件,其中,在编码过程中可以改变编码器的量化步长来改变编码视频的质量。由于FFmpeg属于自由的开源的软件,有利于程序的二次开发和维护;并且通过C语言编写的软件文件占用空间小,灵活性强,且具有很强的可移植性。