• 大小: 14.16MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-29
  • 语言: 其他
  • 标签: ffmpeg-3.4.1  

资源简介

ffmpeg版本为3.4.1,64位的库,vs2012编译工具,主要将h264一帧数据转换位jpg图片,亲测可行

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “ffmpegDecode.h“
#include 
#include 
#include 
#include 

#define INBUF_SIZE 4096
static void SaveAsBMP(AVframe *pframeRGB int width int height int index int bpp)  
{  
char buf[5] = {0};  
BITMAPFILEHEADER bmpheader;  
BITMAPINFOHEADER bmpinfo;  
FILE *fp;  

char *filename = new char[255];  

//文件存放路径,根据自己的修改  
sprintf_s(filename 255 “%s%d.bmp“ “E:/temp/“ index);  
if( (fp = fopen(filename“wb+“)) == NULL ) {  
printf (“open file failed!\n“);  
return;  
}  

bmpheader.bfType = 0x4d42;  
bmpheader.bfReserved1 = 0;  
bmpheader.bfReserved2 = 0;  
bmpheader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);  
bmpheader.bfSize = bmpheader.bfOffBits + width*height*bpp/8;  

bmpinfo.biSize = sizeof(BITMAPINFOHEADER);  
bmpinfo.biWidth = width;  
bmpinfo.biHeight = height;  
bmpinfo.biPlanes = 1;  
bmpinfo.biBitCount = bpp;  
bmpinfo.biCompression = BI_RGB;  
bmpinfo.biSizeImage = (width*bpp+31)/32*4*height;  
bmpinfo.biXPelsPerMeter = 100;  
bmpinfo.biYPelsPerMeter = 100;  
bmpinfo.biClrUsed = 0;  
bmpinfo.biClrImportant = 0;  

fwrite(&bmpheader sizeof(bmpheader) 1 fp);  
fwrite(&bmpinfo sizeof(bmpinfo) 1 fp);  
fwrite(pframeRGB->data[0] width*height*bpp/8 1 fp);  

fclose(fp);  


static int MyWriteJPEG(AVframe* pframe int width int height int iIndex)  
{  
// 输出文件路径  
char out_file[MAX_PATH] = {0};  
sprintf_s(out_file sizeof(out_file) “%s%d.jpg“ “E:/temp/“ iIndex);  

// 分配AVFormatContext对象  
AVFormatContext* pFormatCtx = avformat_alloc_context();  

// 设置输出文件格式  
pFormatCtx->oformat = av_guess_format(“mjpeg“ NULL NULL);  
// 创建并初始化一个和该url相关的AVIOContext  
if( avio_open(&pFormatCtx->pb out_file AVIO_FLAG_READ_WRITE) < 0) {  
printf(“Couldn‘t open output file.“);  
return -1;  
}  

// 构建一个新stream  
AVStream* pAVStream = avformat_new_stream(pFormatCtx 0);  
if( pAVStream == NULL ) {  
return -1;  
}  

// 设置该stream的信息  
AVCodecContext* pCodecCtx = avcodec_alloc_context3(NULL); 
if (pCodecCtx == NULL)  
{  
printf(“Could not allocate AVCodecContext\n“);  
return -1;  
}  

avcodec_parameters_to_context(pCodecCtx pAVStream->codecpar);  


pCodecCtx->codec_id = pFormatCtx->oformat->video_codec;  
pCodecCtx->codec_type = AVMEDIA_TYPE_VIDEO;  
pCodecCtx->pix_fmt = AV_PIX_FMT_YUVJ420P;  
pCodecCtx->width = width;  
pCodecCtx->height = height;  
pCodecCtx->time_base.num = 1;  
pCodecCtx->time_base.den = 25;  

// Begin Output some information  
av_dump_format(pFormatCtx 0 out_file 1);  
// End Output some information  

// 查找解码器  
AVCodec* pCodec = avcodec_find_encoder(pCodecCtx->codec_id);  
if( !pCodec ) {  
printf(“Codec not found.“);  
return -1;  
}  
// 设置pCodecCtx的解码器为pCodec  
if( avcodec_open2(pCodecCtx pCodec NULL) < 0 ) {  
printf(“Could not open

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

     文件   25500672  2017-12-13 02:10  ffmpegTOjpg\bin\avcodec-57.dll

     文件    1460736  2017-12-13 02:10  ffmpegTOjpg\bin\avdevice-57.dll

     文件    6838272  2017-12-13 02:10  ffmpegTOjpg\bin\avfilter-6.dll

     文件    3971584  2017-12-13 02:10  ffmpegTOjpg\bin\avformat-57.dll

     文件     687104  2017-12-13 02:10  ffmpegTOjpg\bin\avutil-55.dll

     文件     296960  2017-12-13 02:10  ffmpegTOjpg\bin\ffmpeg.exe

     文件      73216  2018-01-02 15:14  ffmpegTOjpg\bin\ffmpegTest.exe

     文件     455180  2018-01-02 15:14  ffmpegTOjpg\bin\ffmpegTest.ilk

     文件    1330176  2018-01-02 15:14  ffmpegTOjpg\bin\ffmpegTest.pdb

     文件     152576  2017-12-13 02:10  ffmpegTOjpg\bin\ffplay.exe

     文件     168960  2017-12-13 02:10  ffmpegTOjpg\bin\ffprobe.exe

     文件     921615  2017-12-29 17:11  ffmpegTOjpg\bin\frame1.jpg

     文件    4608000  2017-12-29 17:29  ffmpegTOjpg\bin\frameout1.yuv

     文件     126464  2017-12-13 02:10  ffmpegTOjpg\bin\postproc-54.dll

     文件     377344  2017-12-13 02:10  ffmpegTOjpg\bin\swresample-2.dll

     文件     528896  2017-12-13 02:10  ffmpegTOjpg\bin\swscale-4.dll

     文件      20780  2017-12-25 15:24  ffmpegTOjpg\bin\TESTframe.h264

     文件       5721  2012-05-23 20:03  ffmpegTOjpg\ffmeg\include\inttypes.h

     文件     217771  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\avcodec.h

     文件       2570  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\avdct.h

     文件       3111  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\avfft.h

     文件       2853  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\d3d11va.h

     文件       4044  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\dirac.h

     文件       3715  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\dv_profile.h

     文件       2361  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\dxva2.h

     文件       1650  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\jni.h

     文件       2825  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\mediacodec.h

     文件       3763  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\qsv.h

     文件       4550  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\vaapi.h

     文件       5928  2017-12-13 02:10  ffmpegTOjpg\ffmeg\include\libavcodec\vda.h

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

评论

共有 条评论

相关资源