资源简介

ffmpeg 音视频转码代码,在前人基础上修改,感谢CSDN。

资源截图

代码片段和文件信息

// convertVideo.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include 
#include 
#include 

using namespace std;

extern “C“  
{  
#define __STDC_CONSTANT_MACROS
#define __STDC_FORMAT_MACROS
#include “libavcodec/avcodec.h“  
#include “libavformat/avformat.h“  
#include “libavfilter/avfiltergraph.h“   
#include “libavfilter/buffersink.h“  
#include “libavfilter/buffersrc.h“  
#include “libavutil/avutil.h“  
#include “libavutil/opt.h“  
#include “libavutil/pixdesc.h“ 
#include “libavutil/imgutils.h“
#include “libavutil/avassert.h“
#include “libavutil/channel_layout.h“
#include “libavutil/opt.h“
#include “libavutil/mathematics.h“
#include “libswscale/swscale.h“
#include “libswresample/swresample.h“
#include “libavutil/audio_fifo.h“
}; 



int _tmain(int argc _TCHAR* argv[])
{



string infilename=“sixcount.mp4“;
string outfilename=“out.wmv“;
int videowidth=640;
int videoheight=360;
int videoframerate=5;
int audiochannel=1;
int audiosamplerate=16000;
int audiobitrate=24000;
av_register_all();  

 AVFormatContext *pinfileFormatCtx = NULL; 
if(avformat_open_input(&pinfileFormatCtx infilename.c_str() NULL NULL)!=0) 

        goto end1;
  
    if(avformat_find_stream_info(pinfileFormatCtxNULL)<0)  
       goto end1; 
   //找流
int   invideoStream=-1;
int  inaudioStream=-1; 
for(int i=0; inb_streams; i++)
{
if(pinfileFormatCtx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO)  
{
inaudioStream=i;
}
if(pinfileFormatCtx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO)  
{
invideoStream=i;
}

}

//创建音频解码器
AVCodecContext *pinfileaudiocodectx=NULL;
if(inaudioStream>=0)
{
pinfileaudiocodectx=avcodec_alloc_context3(NULL);
avcodec_parameters_to_context(pinfileaudiocodectxpinfileFormatCtx->streams[inaudioStream]->codecpar);
if (avcodec_open2(pinfileaudiocodectx avcodec_find_decoder(pinfileaudiocodectx->codec_id) NULL) < 0)
goto end2;

}
//创建视频解码器
AVCodecContext *pinfilevideocodectx=NULL;
if(invideoStream>=0)
{
pinfilevideocodectx=avcodec_alloc_context3(NULL);
avcodec_parameters_to_context(pinfilevideocodectxpinfileFormatCtx->streams[invideoStream]->codecpar);
if (avcodec_open2(pinfilevideocodectx avcodec_find_decoder(pinfilevideocodectx->codec_id) NULL) < 0)
goto end3;
}

//初始化输出文件
AVFormatContext  *outformat_ctx= NULL;
int outret=avformat_alloc_output_context2(&outformat_ctxNULL NULLoutfilename.c_str());
if (!outformat_ctx)
{
goto end4;
}
if (avio_open(&outformat_ctx->pboutfilename.c_str() AVIO_FLAG_WRITE) < 0)
{

goto end4;
}
//创建音频编码器
AVCodecContext * pCodecCtxaudioenconder=NULL;
if(inaudioStream!=-1)
{
AVCodec * audiocodec=avcodec_find_encoder(outformat_ctx->oformat->audio_codec);
pCodecCtxaudioenconder =avcodec_alloc_context3(audiocodec);
pCodecCtxaudioenconder->sample_fmt=audiocodec->sample_fmts[0];
pCodecCtxaudioenconder->chann

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

     文件     362496  2013-08-22 13:47  ffmpeg转码代码\TestForConvertVideo\AudioIntercom.dll

     文件   24946688  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\avcodec-57.dll

     文件    2010624  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\avdevice-57.dll

     文件    4503040  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\avfilter-6.dll

     文件    5009920  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\avformat-57.dll

     文件     687104  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\avutil-55.dll

     文件      15335  2017-12-20 14:27  ffmpeg转码代码\TestForConvertVideo\convertVideo.cpp

     文件    1709108  2014-01-05 12:46  ffmpeg转码代码\TestForConvertVideo\cuc_ieschool.ts

     文件         96  2017-12-20 14:37  ffmpeg转码代码\TestForConvertVideo\Debug\TestForConvertVideo.log

     文件    1645320  2012-03-05 15:40  ffmpeg转码代码\TestForConvertVideo\gdiplus.dll

     文件       5721  2015-02-13 01:39  ffmpeg转码代码\TestForConvertVideo\include\inttypes.h

     文件     214604  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\avcodec.h

     文件       2570  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\avdct.h

     文件       3111  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\avfft.h

     文件       2853  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\d3d11va.h

     文件       4044  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\dirac.h

     文件       3715  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\dv_profile.h

     文件       2361  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\dxva2.h

     文件       1650  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\jni.h

     文件       2825  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\mediacodec.h

     文件       3763  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\qsv.h

     文件       4550  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\vaapi.h

     文件       5928  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\vda.h

     文件       7865  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\vdpau.h

     文件       8269  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\version.h

     文件       4029  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\videotoolbox.h

     文件       2285  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\vorbis_parser.h

     文件       6062  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavcodec\xvmc.h

     文件      17918  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavdevice\avdevice.h

     文件       1861  2017-04-25 21:34  ffmpeg转码代码\TestForConvertVideo\include\libavdevice\version.h

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

评论

共有 条评论