资源简介

基于FFMPEG SDK流媒体开发1---解码媒体文件流信息 没有下载积分了 ,,都施舍点吧

资源截图

代码片段和文件信息

// ffmpeg_test.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“  

#include 
#ifdef _CPPRTTI
extern “C“  
{
#endif
#include “libavcodec/avcodec.h“  //编解码器
#include “libavformat/avformat.h“ //格式上下文 
#include “libavformat/avio.h“  //音视频IO
#include “libavutil/file.h“  //处理文件
#ifdef _CPPRTTI  
};
#endif

void  SetStdClr(WORD wd)
{
SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE)wd );
}

int _tmain(int argc _TCHAR* argv[])
{   
//注册所有 编码器  解析器 二进制流过滤器
 av_register_all();
 avcodec_register_all();
 SetStdClr(FOREGROUND_RED |   FOREGROUND_GREEN);
 AVFormatContext *pContext=NULL;//格式上下文
 int errNo=0 ;
 pContext=avformat_alloc_context();
 //打开输入文件 新接口
 if(0==avformat_open_input(&pContext“.\\test.mp4“nullptrNULL)){
 printf(“打开文件输入成功!\n“);
 }else
 return  0;
 //从上下文检索流信息
if(0==avformat_find_stream_info(pContextNULL))
{
printf(“获取流信息成功!\n“);
}else
return 0 ;
//循环多个流
 SetStdClr(FOREGROUND_RED |   FOREGROUND_BLUE);
for (unsigned int i=0;inb_streams;i++)
{   

//媒体流 
AVStream *pStream = pContext->streams[i];
//帧率信息 为有理数/无理数
AVRational frame =pStream->r_frame_rate;  

// 时间比率单位
AVRational timebase = pStream->time_base; 

//流的持续时间  比特率
int64_t duration=   pStream->duration ; 
printf(“媒体持续时间%d\n“duration);
//获取编码类型
AVCodecContext *pCodecContext=pStream->codec ;
//获取 媒体类型
/************************************************************************/
/* 
enum AVMediaType {
AVMEDIA_TYPE_UNKNOWN = -1  ///< Usually treated as AVMEDIA_TYPE_DATA
AVMEDIA_TYPE_VIDEO
AVMEDIA_TYPE_AUDIO
AVMEDIA_TYPE_DATA          ///< Opaque data information usually continuous
AVMEDIA_TYPE_SUBtitle
AVMEDIA_TYPE_ATTACHMENT    ///< Opaque data information usually sparse
AVMEDIA_TYPE_NB
};
                                                                     */
/************************************************************************/
AVMediaType avMediaType=pCodecContext->codec_type;
//编码器ID
AVCodecID codecID=pCodecContext->codec_id ;
if(avMediaType == AVMEDIA_TYPE_AUDIO)
{
//如果是视频
int audioChannels = pCodecContext->channels;
int samplerate = pCodecContext->sample_rate;
PixelFormat pixelFormat = pCodecContext->pix_fmt;
printf(“Stream%d音频\n“i);
printf(“音频采样频率%d/%d\n“timebase.numtimebase.den);
printf(“音频时间单位%d/%d\n“timebase.numtimebase.den);
printf(“音频通道数%d\n“audioChannels);

}
else if(avMediaType == AVMEDIA_TYPE_VIDEO)
{
//如果是音频
int videoWidth = pCodecContext->width;
int videoHeight = pCodecContext->height;
AVSampleFormat sampleFmt = pCodecContext->sample_fmt;
printf(“Stream%d视频\n“i);
printf(“帧率帧率%d/%d\n“frame.denframe.num);
printf(“视频时间单位%d/%d\n“timebase.numtimebase.den);
printf(“图像宽度:%d\t高度:%d\t%\n“videoWidthvideoHeight);
printf(“图像宽度:%d\t高度:%d\t%\n“videoWidthvideoHeight);
}
switch(codecID)
{
case  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     179942  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavcodec\avcodec.h

     文件       3111  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavcodec\avfft.h

     文件       3998  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavcodec\dv_profile.h

     文件       2358  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavcodec\dxva2.h

     文件      10623  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavcodec\old_codec_ids.h

     文件       4007  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavcodec\vaapi.h

     文件       5437  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavcodec\vda.h

     文件       7094  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavcodec\vdpau.h

     文件       6340  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavcodec\version.h

     文件       2317  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavcodec\vorbis_parser.h

     文件       6062  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavcodec\xvmc.h

     文件      16642  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavdevice\avdevice.h

     文件       1859  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavdevice\version.h

     文件       3321  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavfilter\asrc_abuffer.h

     文件       2390  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavfilter\avcodec.h

     文件      56887  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavfilter\avfilter.h

     文件        975  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavfilter\avfiltergraph.h

     文件       7539  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavfilter\buffersink.h

     文件       4899  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavfilter\buffersrc.h

     文件       2918  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavfilter\version.h

     文件     102499  2014-12-17 01:46  ffmpeg_test\ffmpeg\include\libavformat\avformat.h

     文件      18871  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavformat\avio.h

     文件       2391  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavformat\version.h

     文件       1584  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavutil\adler32.h

     文件       1834  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavutil\aes.h

     文件       4230  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavutil\attributes.h

     文件         82  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavutil\audioconvert.h

     文件       4475  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavutil\audio_fifo.h

     文件       2113  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavutil\avassert.h

     文件        211  2014-12-16 15:50  ffmpeg_test\ffmpeg\include\libavutil\avconfig.h

............此处省略128个文件信息

评论

共有 条评论