资源简介
基于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个文件信息
相关资源
- ffmpeg 源码demo
- 最简单的基于FFMPEG的AVDevice的 1.2
- 最简单的基于FFMPEG的音频编码器 1.1
- 最简单的基于FFMPEG+SDL的视频播放器
- ffmpeg提取mp4关键帧保存为jpg.zip
- ffmpeg+qt的简单播放器
- 使用ffmpeg将多张图片生成H264裸流并获
- ffmpeg h264 转换jpg
- 利用FFmpeg将Jpeg图片转为任意视频容器
- ffmpeg exeWINXP的最后一个可运行版本
- 最简单的基于FFMPEG的视频编码器修正
- ffmpeg-vs2013
- 基于FFMPEG_SDL2_音视频播放_参考音频时
- ffmpeg-3.2-win32-shared.zip
- ffmpeg录音
- ffmpeg资料全
- ffmpeg_windows屏幕录制并编码成H264
- windows32位系统的ffmpeg
- 利用ffmpeg提取任意格式视频帧关键帧
- ffmpeg3.0源码
- FFmpeg解码+SDL播放
- ffmpeg封装H264成MP4、AVI视频格式,及提
- 从零开始学习音视频编程技术十二 录
- AudioResample
- 最简单的基于FFmpeg的libswscale的教程
- ffmpeg-2.5.2-win32-shared
- 利用FFmpeg将mkv视频转换为H.264
- 安卓交叉编译ffmepgx86_64版本
- ffmepg的安卓arm(armeabi-v7a)版本
- 基于ARM9的远程视频监控系统
评论
共有 条评论