资源简介
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个文件信息
- 上一篇:武汉市统计年鉴
- 下一篇:可信计算3.0构建主动防御体系 .pptx
相关资源
- windows上自己编译的最新的ffmpeg库
- Qt基于FFmpeg播放本地 H.264H264文件
- 从ffmpeg中抽取的h264解码器,可用于
- ffplay源代码
- 最简单的基于FFmpeg的推流器以推送R
- DVD文件VOB的生成代码
- FFmpeg 采集摄像头输出rtmp直播流媒体,
- 基于ffmpeg将avi视频转换为mp4视频
- (补充)修改output-example,将H.264AAC帧
- ffmpeg-win64位库
- X264实时编码,FFmpeg实时解码
- FFmpeg API读取视音频文件信息的一个工
- 使用FFmpeg采集摄像头图像和麦克风音
- opencv_ffmpeg249.dll
- FFmpeg-3.1 windows vs2013编译动态库静态库
- 基于FFmpeg4.0.2的AAC编码器
- FFmpeg获取网络摄像头数据解码
- Qt写的Windows下屏幕录制程序源码
- Windows下使用FFMPEG解码AAC文件并使用
- ffmpeg转换MP4为JPG帧图片
- ffmpeg解码sdl播放h264
- 最简单的利用ffmpeg获取视频的图片
- 最简单的基于FFmpeg的编码器 1.2
- vs2012调试ffmpeg.c
- 基于FFMPEG SDK流媒体开发1---解码媒体文
- ffmpeg 源码demo
- 最简单的基于FFMPEG的AVDevice的 1.2
- 最简单的基于FFMPEG的音频编码器 1.1
- 最简单的基于FFMPEG+SDL的视频播放器
- ffmpeg提取mp4关键帧保存为jpg.zip
评论
共有 条评论