-
大小: 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\fr
文件 4608000 2017-12-29 17:29 ffmpegTOjpg\bin\fr
文件 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\TESTfr
文件 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个文件信息
评论
共有 条评论