〔*.exe‖可执行文件;直接打开〕
〔*.rar‖一种压缩包;用WinRAR打开〕
〔*.zip‖一种压缩包;用WinRAR打开,或者WinXP也可以直接打开〕
〔*.iso‖虚拟光驱;用WinRAR打开,也可用其他虚拟光驱软件〕
〔*.doc‖word文档;用Office Word打开〕
〔*.ppt‖幻灯片; 用Office PowerPiont打开〕
〔*.xls‖电子表格;用Office Excel打开〕
〔*.wps‖WPS文档; 用金山WPS打开〕
〔*.txt‖文本文档;默认用记事本打开〕
〔*.lrc‖动态歌词;可以用记事本打开〕
〔*.rm,*.rmvb‖高清视频;可以用RealOnePlayer打开〕
〔*.mp3,*.wma,*.wav‖一些音乐〕
〔*.jpg,*.bmp,*.gif‖一些图片,其中gif可以是动态的〕
〔*.wfs‖Flash文件;可以用IE打开,也可用FlashPlayer打开〕
〔*.torrent‖BT文件;可以用BitComet打开〕
A
ACE:Ace压缩档案格式
ACT:Microsoft office助手文件
AIF,AIFF:音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式
ANI:Windows系统中的动画光标
ARC:LH ARC的压缩档案文件
ARJ:Robert Jung ARJ压缩包文件
ASD:Microsoft Word的自动保存文件;Microsoft高级流媒体格式(microsoft advanced streaming
format,ASF)的描述文件;可用NSREX打开 Velvet Studio例子文件
ASF:Microsoft高级流媒体格式文件
ASM:汇编语言源文件,Pro/E装配文件
ASP:动态网页文件;ProComm Plus安装与连接脚本文件;Astound介绍文件
AST:Astound多媒体文件;ClarisWorks“助手”文件
Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字)
A3L:Authorware 3.x库文件
A4L:Authorware 4.x库文件
A5L:Authorware 5.x库文件
A3M,A4M:Authorware Macintosh未打包文件
A3W,A4W,A5W:未打包的Authorware Windows文件
B
BAK:备份文件
BAS:BASIC源文件
BAT:批处理文件
BIN:二进制文件
BINHex:苹果的一种编码格式
BMP:Windows或OS/2位图文件
BOOK:Adobe FrameMaker Book文件
BOX:Lotus Notes的邮箱文件
BPL:Borlard Delph 4打包库
BSP:Quake图形文件
BUN:CakeWalk 声音捆绑文件(一种MIDI程序)
C
C0l:台风波形文件
CAB:Microsoft压缩档案文件
CAD:Softdek的Drafix CAD文件
CAM:Casio照相机格式
CAP:压缩音乐文件格式
CAS:逗号分开的ASCⅡ文件
CCB:Visual Basic动态按钮配置文件
CCH:Corel图表文件
CCO:CyberChat数据文件
CCT:Macromedia Director Shockwave投影
CDA:CD音频轨道
CDF:Microsoft频道定义格式文件
CDI:Philip的高密盘交互格式
CDM:Visual dBASE自定义数据模块文件
CDR:CorelDRAW绘图文件;原始音频CD数据文件
CDT:CorelDRAW模板
CDX:CorelDRAW压缩绘图文件;Microsoft Visual FoxPro索引文件
CFG:配置文件
CGI:公共网关接口脚本文件
CGM:计算机图形元文件
CH:OS/2配置文件
CHK:由Windows磁盘碎片整理器或磁盘扫描保存的文件碎片
CHM:编译过的HTML文件
CHP:Ventura Publisher章节文件
CHR:字符集(字体文件)
CHT:ChartViem文件;Harvard Graphics矢量文件
CIF:Adaptec CD 创建器 CD映像文件
CIL:Clip Gallery下载包
CIM:SimCity 2000文件
CIN:OS/2改变控制文件用于跟踪INI文件中的变化
CLASS:Java类文件
CLP:Windows 剪贴板文件
CLL:Crick Software Clicker文件
CLS:Visual Basic类文件
CMD:Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件
CPI:Microsoft MS-DOS代码页信息文件
CPL:控制面板扩展名,Corel颜色板
CPP:C++代码文件
CPR:Corel提供说明书文件
CPT:Corel 照片-绘画图像
CST:Macromedia Director Cast文件
CUR:Windows光标文件
D
DBF:dBASE文件,一种由Ashton-Tate创建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数据库或与数据库有关产品识别;可用数据文件(能被Excel
97打开);Oracle 8.1.x表格空间文件
DBX:DataBearn图像;Microsoft Visual FoxPro表格文件
DCT:Microsoft Visual FoxPro数据库容器
DCU:Delphi编译单元文件
DCX:Microsoft Visual FoxPro数据库容器;基于PCX的传真图像;宏
DIR:MacromediaDirector文件
DLL:动态链接库
DOC:FrameMaker或FrameBuilder文档;Word Star文档、Word
Perfect文档、Microsoft:Word文档;DisplayWrite文档
DOT:Microsoft Word文档模板
DPL:Borland Delph 3压缩库
DRV:驱动程序
DRW:Micrografx Designer/Draw;Pro/E绘画文件
DSF:Micrografx Designer VFX文件
DSG:DOOM保存的文件
DSM:Dynamic Studio音乐模块(MOD)文件
DSP:Microsoft Developer Studio工程文件
DSQ:Corel QUERY(查询)文件
DST:刺绣机图形文件
DSW:Microsoft Developer Studio工作区文件
DTA:World Bank(世界银行)的STARS数据文件
DTD:SGML文档类型定义(DTD)文件
DTED:地面高度数字数据(图形的数据格式)文件
DTF:Symantec Q&A相关的数据库数据文件
DTM:DigiTrakker模块文件
DUN:Microsoft拔号网络导出文件
DV:数字视频文件(MIME)
DWG:AutoCAD工程图文件;AutoCAD或Generic CADD老版本的绘图格式
DXR:Macromedia Director受保护(不可编辑)电影文件
E
EDA:Ensoniq ASR磁盘映像
EDD:元素定义文档(FrameMaker+SGML文档)
EDE:Ensoniq EPS磁盘映像
EDK:Ensoniq KT磁盘映像
EDQ:Ensoniq SQ1/SQ2/Ks32磁盘映像
EDS:Ensoniq SQ80磁盘映像
EDV:Ensoniq VFX-SD磁盘映像
EFA:Ensoniq ASR文件
EFE:Ensoniq EPS文件
EFK:Ensoniq KT文件
EFQ:Ensoniq SQ1/SQ2/Ks32文件
EFS:Ensoniq SQ80文件
EFV:Ensoniq VFX-SD文件
EMD:ABT扩展模块
EMF:Windows增强元文件
EML:Microsoft Outlook Express邮件消息(MIME RTC822)文件
EXE:可执行文件(程序)
F
FAV:Microsoft Outlook导航条
FAX:传真类型图像
FCD:虚拟CD-ROM
FDF:Adobe Acrobat表单文档文件
FLA:Macromedia Flash电影
FND:Microsoft Explorer保存的搜索文件(Find applet)
FON:系统字体
FRT:Microsoft FoxPro报表文件
FRX:Visual Basic表单文本;Microsoft FoxPro报表文件
FXP:经Microsoft FoxPro编译的源文件
G
GDM:铃声、口哨声和声音板模块格式
GetRight:GetRight未完成的下载文件
GHO:Norton 克隆磁盘映像
GID:Windows 95全局索引文件(包括帮助状态)
GIF:CompuServe位图文件
GL:动画格式
GRP:程序管理组
H
HEX:Macintosh BinHex2.0文件
HLP:帮助文件;Date CAD Windows帮助文件
HPP:C++程序头文件
HQX:Macintosh BinHex 4.0文件
HT:HyperTerminal(超级终端)
HTM,HTML:超文本文档
HTT:Microsoft超文本模板
HTX:扩展HTML模板
I
ICO:Windows图标
IDX:Microsoft FoxPro相关数据库索引文件;Symantec Q&A相关数据库索引文件;Microsoft Outlook
Express文件
IMG:GEM映像
INF:信息文件
INI:初始化文件;Mwave DSP Synth的“nwsynth.ini” GMS安装;Cravis Ultrasound bank安装
INP:Oracle 3.0版或早期版本的表单源代码
INRS:INRS远程通信声频
INS:InstallShield安装脚本;X-Internet签字文件;Ensoniq EPS字簇设备;Cell/ⅡMAC/PC抽样设备
INT:中间代码,当一个源程序经过语法检查后编译产生一个可执行代码
IOF:Findit文档
IQY:Microsoft Internet查询文件
ISO:根据ISD 9660有关CD-ROM文件系统标准列出CD-ROM上的文件
ISP:X-Internet签字文件
IST:数字跟踪设备文件
ISU:InstallShield卸装脚本
IT:脉冲跟踪系统音乐模块(MOD)文件
ITI:脉冲跟踪系统设备
ITS:脉冲跟踪系统抽样,Internet文档位置
IV:Open Inventor中使用的文件格式
IVD:超过20/20微观数据维数或变量等级文件
IVP:超过20/20的用户子集配置文件
IVT:超过20/20表或集合数据文件
IVX:超过20/20微数据目录文件
IW:Idlewild屏幕保护程序
IWC:Install Watch文档
J
J62:Ricoh照相机格式
JAR:Java档案文件(一种用于applet和相关文件的压缩文件)
JAVA:Java源文件
JAR:Java档案文件(一种用于applet和相关文件的压缩文件)
JAVA:Java源文件
JFF,JFIF,JIF:JPEG文件
JPE,JPEG,JPG:JPEG图形文件
JS:JavaScript源文件
JSP:HTML网页,其中包含有对一个Java servlet的参考
K
KAR:卡拉OK MIDI文件(文本+MIDI)
L
LAB:Visual dBASE标签文件
LBT,LBX:Microsoft FoxPro标签文件
LDB:Microsoft Access加锁文件
LHA:LZH更换文件后缀
LOG:日志文件
LZH:LH ARC压缩档案
M
M1V:MPEG相关文件(MIME"mpeg"类型)
M3D:Corel Motion 3D动画文件
M3U:MPEG URL(MIME声音文件)
MAM:Microsoft Access宏
MAQ:Microsoft Access查询文件
MAR:Microsoft Access报表文件
MBX:Microsoft Outlook保存email格式;Eudora邮箱
MCW:Microsoft Word的Macintosh文档
MDB:Microsoft Access数据库
MDN:Microsoft Access空数据库模板
MDW:Microsoft Access工作组文件
MID:MIDI音乐
MMM:Microsoft多媒体电影
MOV:QuickTime for Windows电影
MP2:第二层MPEG音频文件
MP3:第三层MPEG音频文件
MPA:MPEG相关文件,MIME“mpeg类型”
MPE,MPEG,MPG:MPEG动画文件
MPP:Microsoft工程文件;CAD绘图文件格式
MPR:Microsoft FoxPro菜单(已编译)
MSI:Windows 安装器包
MSN:Microsoft 网络文档;Descent Mission文件
O
OBD:Microsoft Office活页夹
OBJ:对象文件
OBZ:Microsoft Office活页夹向导
OCX:Microsoft对象链接与嵌入定制控件
ODS:Microsoft Outlook Express邮箱文件
OFT:Microsoft Outlook模板
OPX:OPL扩展DLL(动态链接库)
OSS:Microsoft Office查找文件
OST:Microsoft Exchange / Outlook 离线文件
P
PAL:压缩文件
PART:Go!Zilla部分下载文件
PAS:Pascal源代码
PCS:PICS动画文件
PDF:Adobe Acrobat
可导出文档格式文件(可用Web浏览器显示);Microsoft系统管理服务器包定义文件;NetWare打印机定义文件
PHP,PHP3:包含有PHP脚本的HTML网页
PHTML:包含有PHP脚本的HTML网页;由Perl分析解释的HTML
PM5:Pagemaker 5.0文件
PM6:Pagemaker 6.0文件
PPS:Microsoft Powerpoint幻灯片放映
PPT:Microsoft Powerpoint演示文稿
PRF:Windows系统文件,Macromedia导演设置文件
PSD:Adobe photoshop位图文件
PSM:Protracker Studio模型格式;Epic游戏的源数据文件
PST:Microsoft Outlook个人文件夹文件
PWL:Windows 95口令列表文件
Q
QIF:QuickTime相关图像(MIME);Quicken导入文件
QT,QTM:QuickTime电影
QTI,QTIF:QuickTime相关图像
QTP:QuickTime优先文件
QTS:Mac PICT图像文件;QuickTime相关图像
QTX:QuickTime相关图像
R
RA:RealAudio声音文件
RAM:RealAudio元文件
RAR:RAR压缩档案(Eugene Roshall格式)
REC:录音机宏;RapidComm声音文件
REG:注册表文件
REP:Visual dBASE报表文件
RES:Microsoft Visual C++资源文件
RM:RealAudio视频文件
RMF:Rich Map格式(3D游戏编辑器使用它来保存图)
ROM:基于盒式磁带的家庭游戏仿真器文件(来自Atari
2600、Colecovision、Sega、Nintendo等盒式磁带里的ROM完全拷贝,在两个仿真器之间不可互修改)
Rxx:多卷档案上的RAR压缩文件(xx=1~99间的一个数字)
S
SAV:游戏保存文件
SB:原始带符号字节(8位)数据
SBK:Creative Labs的Soundfont 1.0 Bank文件;(Soundb laster)/EMU SonndFont v1.x
Bank文件
SBL:Shockwave Flash对象文件
SCF:Windows Explorer命令文件
SCH:Microsoft Schedule+1
SCP:拨号网络脚本文件
SCR:Windows屏幕保护;传真图像;脚本文件
SFX:RAR自解压档案
SHTML:含有服务器端包括(SSI)的HTML文件
SPL:Shockwave Flash对象;DigiTrakker抽样
SQL:Informix SQL查询;通常被数据库产品用于SQL查询(脚本、文本、二进制)的文件扩展名
STM:.shtml的短后缀形式,含有一个服务端包括(SSI)的HTML文件;Scream Tracker V2音乐模块(MOD)文件
STR:屏幕保护文件
SWA:在Macromedia导演文件(MP3文件)中的Shockwave声音文件
SWF:Shockwave Flash对象
SYS:系统文件
T
T64:Commodore 64仿真器磁带映像文件
THEME:Windows 95桌面主题文件
TIF,TIFF:标签图像文件格式(TIFF)位图
TMP:Windows临时文件
TRM:终端文件
TXT:ASCⅡ文本格式的声音数据
TZ:老的压缩格式文件
V
VBA:VBase文件
VBP:Microsoft Visual Basic工程文件
VBW:Microsoft Visual Basic工作区文件
VBX:Microsoft Visual Basic用户定制控件
VQE,VQL:Yamaha Sound-VQ定位器文件
VQF:Yamaha Sound-VQ文件(可能出现标准)
VRF:Oracle 7配置文件
VSL:下载列表文件(GetRight)
W
WAB:Microsoft Outlook文件
WAD:包含有视频、玩家水平和其他信息的DOOM游戏的大文件
WAL:Quake 2正文文件
WAV:Windows波形声形
WBK:Microsoft Word备份文件
WFM:Visual dBASE Windows表单
WFN:在CorelDRAW中使用的符号
WIZ:Microsoft Word向导
WRL:虚拟现实模型
WWL:Microsoft Word内插器文件
X
XLK:Microsoft Excel备份
XLL:Microsoft Excel内插器文件
XLM:Microsoft Excel宏
XLS:Microsoft Excel工作单
XLT:Microsoft Excel模板
XLV:Microsoft Excel VBA模块
XLW:Microsoft Excel工作簿/工作区
Z
ZAP:Windows软件安装配置文件
ZIP:Zip文件
这个简单。大致的思路是1.打开wav文件
2.打开要输出的wma文件
3.不停的读取数据帧
4.读取以后解码并写入wma
5.关闭wav文件
6.关闭wma文件
重新写例子太麻烦贴点代码吧
#include "Debug.h"
#include "FFMpegAVFileReader.h"
#include "FFMpegAVFileReaderFactory.h"
#include <sstream>
#include "yk_convert.h"
static char h264_head[4] = {(char)0x00,(char)0x00,(char)0x00,(char)0x01}
namespace YK
{
FFMpegAVFileReader::FFMpegAVFileReader()
{
ffmpeg_avcodec_init()
ffmpeg_av_register_all()
av_log_set_callback(ffmpeg_log_callback)
m_format_context = 0
m_input_format = 0
m_format_parameters = 0
m_packet = (AVPacket*)av_mallocz(sizeof(AVPacket))
}
FFMpegAVFileReader::~FFMpegAVFileReader()
{
Close()
av_free(m_packet)
}
avfile_reader_param_t* FFMpegAVFileReader::GetParam()
{
//YK::AutoLock l(m_lock)
return &m_param
}
void FFMpegAVFileReader::Seek(int pts)
{
YK::AutoLock l(m_lock)
int ret = av_seek_frame(m_format_context,-1,(YK::int64_t)pts * (YK::int64_t)1000,AVSEEK_FLAG_BACKWARD | AVSEEK_FLAG_ANY)
//if(ret >= 0)
//{
// for(int i = 0i <m_format_context->nb_streamsi++)
// {
// avcodec_flush_buffers( m_format_context->streams[i]->codec )
// }
//}
//std::stringstream ss
//ss <<"pts = " <<pts
// <<" ret = " <<ret <<std::endl
//OutputDebugString(ss.str().data())
}
void FFMpegAVFileReader::GetDuration(double&start,double&end)
{
//YK::AutoLock l(m_lock)
start = (double)(m_start_time / 1000000)
end = start + (double)(m_duration / 1000000)
}
service_error_t FFMpegAVFileReader::Open(int time_out)
{
YK::AutoLock l(m_lock)
service_error_t service_error
// 打开文件
if (av_open_input_file(&m_format_context,TToANSI(m_param.input_file_path).data(),m_input_format,0,m_format_parameters) <0)
{
service_error.init(service_error_type_failed,"av_open_input_file failed")
return service_error
}
// 查询流信息
if(av_find_stream_info(m_format_context) <0)
{
service_error.init(service_error_type_failed,"av_find_stream_info failed")
return service_error
}
m_start_time = m_format_context->start_time
m_duration = m_format_context->duration
#ifdef _DEBUG
pFile = fopen("D:/1.out","w+b")
#endif
// 保存流信息
av_stream_info_t av_stream_info
for(unsigned int i = 0i <m_format_context->nb_streamsi++)
{
AVStream *st = m_format_context->streams[i]
AVCodecContext *enc = st->codec
if(enc->codec_type == AVMEDIA_TYPE_AUDIO)
{
// 音频
av_stream_info.av_stream_info_type = av_stream_info_type_audio
av_stream_info.codec_id = codec_id_none
//channel_layout = enc->channel_layout
av_stream_info.audio_channels = enc->channels
av_stream_info.audio_samplepersec = enc->sample_rate
av_stream_info.audio_bitpersample = yk_sample_format(enc->sample_fmt)
//audio_sample_fmt = enc->sample_fmt
//input_codecs[nb_icodecs++] = avcodec_find_decoder_by_name(audio_codec_name)
av_stream_info.codec_id = yk_code_id(enc->codec_id)
av_stream_info.extradata_size = enc->extradata_size
if(av_stream_info.extradata_size)
memcpy(av_stream_info.extradata,enc->extradata,enc->extradata_size)
if(av_stream_info.codec_id == codec_id_mp3)
{
av_stream_info.extradata_size = sizeof(mpeg1_waveformat_extradata)
mpeg1_waveformat_extradata* pMpeg1WaveFormat = (mpeg1_waveformat_extradata*)av_stream_info.extradata
pMpeg1WaveFormat->dwHeadBitrate = enc->bit_rate
pMpeg1WaveFormat->dwPTSHigh = 0
pMpeg1WaveFormat->dwPTSLow = 0
pMpeg1WaveFormat->fwHeadFlags = 25
pMpeg1WaveFormat->fwHeadLayer = ACM_MPEG_LAYER3
pMpeg1WaveFormat->fwHeadMode = ACM_MPEG_STEREO
pMpeg1WaveFormat->fwHeadModeExt = 1
pMpeg1WaveFormat->wHeadEmphasis = 1
}
AddStreamInfo(av_stream_info)
m_stream_audio_index = i
}
else if(enc->codec_type == AVMEDIA_TYPE_VIDEO)
{
// 视频
av_stream_info.av_stream_info_type = av_stream_info_type_video
av_stream_info.codec_id = codec_id_none
av_stream_info.video_width = enc->width
av_stream_info.video_height = enc->height
av_stream_info.video_profile = enc->profile
av_stream_info.video_level = enc->level
if(av_stream_info.video_profile <0)
{
av_stream_info.video_profile = 77
}
if(av_stream_info.video_level <0)
{
av_stream_info.video_level = 30
}
av_stream_info.extradata_size =
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)