FLV解码软件开发 flv解码

FLV解码软件开发的开发,在本课题中是利用的FFmpeg为基础的。FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案[23]。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、ASF等90多种解码。TCPMP, VLC, MPlayer等开源播放器都用到了FFmpeg [24]。FFmpeg主目录下主要有libavcodec、libavformat和libavutil等子目录。其中libavcodec用于存放各个encode/decode模块,libavformat用于存放muxer/demuxer模块,libavutil用于存放内存操作等常用模块。

以flash movie的flv文件格式为例, muxer/demuxer的flvenc.c和flvdec.c文件在libavformat目录下,encode/decode的mpegvideo.c和h263de.c在libavcodec目录下。

FLV视频文件格式实际上并没有明确指出应该使用哪种编码来解析音频和视频数据;它们只是定义了音频流和视频流(或者,有可能是多个音频视频流)如何被绑定在一个文件里面。这就是为什么有时候,当你打开了一个FLV文件时,你只能听到声音,却不能看到图象--因为没有合适的视频解码器。所以,libavformat 用来处理解析视频文件并将包含在其中的流分离出来,而libavcodec 则处理原始音频和视频流的解码。

解码处理流程:

1、 通过函数flvdec_init(void)注册初始化编码器,通过REGISTER_MUXDEMUX(FLV, flv)完成对FLV格式的注册,内含音频视频编解码的初始化;

2、 打开视频文件,通过av_open_input_file(&pFormatCtx, filename, NULL, 0, NULL)实现,

通过av_find_stream_info(pFormatCtx)、dump_format(pFormatCtx, 0, filename, false)分析文件数据包编码格式,再把pFormatCtx的流域填满;

3、通过avcodec_find_decoder(pCodecCtx->codec_id)找到相应的解码器,

4、打开解码器,通过函数(avcodec_open(pCodecCtx, pCodec);

5、视频数据解码通过avcodec_decode_video(pCodecCtx, pFrame, &frameFinished, rawData, bytesRemaining)解析视频数据包,得到视频帧,GetNextFrame(AVFormatContext *pFormatCtx, AVCodecContext *pCodecCtx, int videoStream, AVFrame *pFrame );视频编码格式为FLV1;

FLV解码软件开发 flv解码
6、音频数据包通过avcodec_decode_audio()解码,得到的数据存入buffer中,根据时间戳来实现音视频的同步;音频编码格式有PCM、ADPCM、MP3;

7、释放解码器,关闭解码器(codec),avcodec_close(pCodecCtx); 关闭视频文件av_close_input_file(pFormatCtx);

表5-6 FLV解码软件中部分重要处理函数接口

函数接口

作用

flv_probe()

探测文件是否为FLV文件

flv_read_packet ( )

读入数据包,分析数据包

flv_read_close( )

关闭读操作

flv_read_header()

读入头数据

av_register_input_format()

初始化输入格式

  

爱华网本文地址 » http://www.aihuau.com/a/25101012/128676.html

更多阅读

手机APP应用软件开发 app应用开发软件

?以下信息由广州最大、最专业、最出名的手机app应用软件开发公司——启汇网络提供,请耐心认真看完,谢谢!  一、随着智能手机及平板电脑等移动终端的普及,各种各样的APP应用软件不断涌现。目前,苹果App?Store应用商店有77.5万个应用,安

10大软件开发测试工具附免费下载 测试工具开发

软件测试是软件开发流程中必不可少的步骤,当然移动开发也不例外,也包括功能测试、性能测试、安全测试等方面。不过移动应用测试还要面临移动设备和系统多样化、测试脚本多样化等挑战,选择一款跨平台且支持自动化的测试工具则显得至关重

嵌入式软件开发和其他软件开发的区别 嵌入式软件开发笔试题

嵌入式软件开发和其他软件开发的区别 (2012-10-15 16:28)标签:嵌入式软件软件开发style分类: linux专区1、嵌入式系统开发--平台种类繁多。--资源受限。--专用系统。--需要与底层的硬件设备进行通信和交互操作。与设备相关。--数要是对设备控制

软件开发必备工具集 java开发必备工具

软件开发是一项比较复杂而又容易出错的工作,面对着几万行甚至几十万行代码任何人都会茫然的,俗话说得好”工欲善其事,必先利其器”,那么我们现在说说软件开发要用到的好的工具:1 代码查看和编辑工具: 1Uedit32是一款比较好的代码编写和

软件开发专业-就业方向指南 软件技术专业就业方向

大家都知道IT行业现在可是非常抢手,那么大家要在这么抢手的行业中如何脱颖而出呢?或者说选择什么专业更能成为佼佼者呢?今天呢,南方IT学院小编就给大家整理了一些干货,大家来看看吧!http://www.edu-nf.com/news/schoolnews/ 从事软件开发

声明:《FLV解码软件开发 flv解码》为网友心死绿稻田分享!如侵犯到您的合法权益请联系我们删除