• 大小: 18.94MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-30
  • 语言: C/C++
  • 标签: ffmpeg  mfc  

资源简介

自己做的FFMPEG移植到VC下的开源工程:ffmpeg for MFC。 本工程将ffmpeg工程中的ffmpeg转码器(ffmpeg.c)移植到了VC环境下。并且使用MFC做了一套简单的界面。它可以完成一个视频转码的基本功能:封装格式以及编码格式的转换。通过本程序可以学习视频转码器的原理,以及Windows的消息机制等知识。 更新记录============================== 1.1版(2014.7.12) * 更换了部分界面 * 原工程支持Unicode编码 * 修复了一部分内存泄露的问题 * 修正了ffmpeg.c中的exit_program()函数。保证在转码结束后可以释放资源。 * 修正了一部分“任务列表”的功能 * 修正了添加任务的时候“要用按钮去选输入文件,不能自己直接输入”的问题。 1.2版(2014.8.16) *增加了“内部转码”和“外部转码”选项。“内部转码”即通过原先移植的ffmpeg.c进行转码。“外部转码”支持作为一个GUI直接调用ffmpeg.exe进行转码。

资源截图

代码片段和文件信息

/*
 * Various utilities for command line tools
 * Copyright (c) 2000-2003 Fabrice Bellard
 *
 * This file is part of FFmpeg.
 *
 * FFmpeg is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License or (at your option) any later version.
 *
 * FFmpeg is distributed in the hope that it will be useful
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with FFmpeg; if not write to the Free Software
 * Foundation Inc. 51 Franklin Street Fifth Floor Boston MA 02110-1301 USA
 */

#include 
#include 
#include 
#include 

/* Include only the enabled headers since some compilers (namely Sun
   Studio) will not omit unused inline functions and create undefined
   references to libraries that are not being built. */

#include “config.h“
#include “compat/va_copy.h“
#include “libavformat/avformat.h“
#include “libavfilter/avfilter.h“
#include “libavdevice/avdevice.h“
#include “libavresample/avresample.h“
#include “libswscale/swscale.h“
#include “libswresample/swresample.h“
#if CONFIG_POSTPROC
#include “libpostproc/postprocess.h“
#endif
#include “libavutil/avassert.h“
#include “libavutil/avstring.h“
#include “libavutil/mathematics.h“
#include “libavutil/imgutils.h“
#include “libavutil/parseutils.h“
#include “libavutil/pixdesc.h“
#include “libavutil/eval.h“
#include “libavutil/dict.h“
#include “libavutil/opt.h“

#include “cmdutils.h“
//#include “version.h“
#if CONFIG_NETWORK
#include “libavformat/network.h“
#endif
#if HAVE_SYS_RESOURCE_H
#include 
#endif

struct SwsContext *sws_opts;
SwrContext *swr_opts;
AVDictionary *format_opts *codec_opts;

const int this_year = 2012;

static FILE *report_file;

const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB];

void init_opts(void)
{

    /*if(CONFIG_SWSCALE)
        sws_opts = sws_getContext(16 16 0 16 16 0 SWS_BICUBIC
                              NULL NULL NULL);

    if(CONFIG_SWRESAMPLE)
        swr_opts = swr_alloc();*/
}

void uninit_opts(void)
{
#if CONFIG_SWSCALE
    sws_freeContext(sws_opts);
    sws_opts = NULL;
#endif

 //   if(CONFIG_SWRESAMPLE)
 //       swr_free(&swr_opts);

    av_dict_free(&format_opts);
    av_dict_free(&codec_opts);
}

void log_callback_help(void *ptr int level const char *fmt va_list vl)
{
    vfprintf(stdout fmt vl);
}

static void log_callback_report(void *ptr int level const char *fmt va_list vl)
{
    va_list vl2;
    char line[1024];
    static int print_prefix = 1;

    va_copy(vl2 vl);
    av_log_default_callback(ptr level fmt vl);
    av_log_format_line(ptr level fmt vl2 line sizeof(line) &print_prefix);
    va_end(vl2);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-08-16 00:20  ffmpegmfc\
     文件          44  2014-06-05 19:14  ffmpegmfc\.gitignore
     文件         326  2014-08-16 00:21  ffmpegmfc\ChangeLog
     目录           0  2014-08-16 00:22  ffmpegmfc\ffmpegmfc\
     文件         894  2014-05-27 21:37  ffmpegmfc\ffmpegmfc.sln
     文件       50176  2014-08-16 00:14  ffmpegmfc\ffmpegmfc.suo
     文件          27  2014-06-05 19:14  ffmpegmfc\ffmpegmfc\.gitignore
     文件    15042560  2012-10-11 07:22  ffmpegmfc\ffmpegmfc\avcodec-54.dll
     文件      390656  2012-10-11 07:22  ffmpegmfc\ffmpegmfc\avdevice-54.dll
     文件     1737728  2012-10-11 07:22  ffmpegmfc\ffmpegmfc\avfilter-3.dll
     文件     2900480  2012-10-11 07:22  ffmpegmfc\ffmpegmfc\avformat-54.dll
     文件      235008  2012-10-11 07:22  ffmpegmfc\ffmpegmfc\avutil-51.dll
     文件       52814  2014-01-24 14:52  ffmpegmfc\ffmpegmfc\cmdutils.c
     文件       15774  2014-01-24 12:52  ffmpegmfc\ffmpegmfc\cmdutils.h
     文件        4265  2012-10-12 15:56  ffmpegmfc\ffmpegmfc\cmdutils_common_opts.h
     文件       26500  2012-10-12 16:31  ffmpegmfc\ffmpegmfc\config.h
     文件      116850  2014-07-09 22:53  ffmpegmfc\ffmpegmfc\ffmpeg.c
     文件    27388928  2014-04-20 10:07  ffmpegmfc\ffmpegmfc\ffmpeg.exe
     文件       12767  2014-07-09 22:53  ffmpegmfc\ffmpegmfc\ffmpeg.h
     文件      529744  2014-08-16 00:14  ffmpegmfc\ffmpegmfc\ffmpegmfc.aps
     文件        3237  2014-08-15 18:08  ffmpegmfc\ffmpegmfc\ffmpegmfc.cpp
     文件         885  2014-06-07 13:19  ffmpegmfc\ffmpegmfc\ffmpegmfc.h
     文件       66528  2014-08-16 00:14  ffmpegmfc\ffmpegmfc\ffmpegmfc.rc
     文件        8304  2014-07-12 15:51  ffmpegmfc\ffmpegmfc\ffmpegmfc.vcxproj
     文件        3293  2014-06-07 15:40  ffmpegmfc\ffmpegmfc\ffmpegmfc.vcxproj.filters
     文件         143  2014-05-10 11:39  ffmpegmfc\ffmpegmfc\ffmpegmfc.vcxproj.user
     文件       31077  2014-08-15 23:59  ffmpegmfc\ffmpegmfc\ffmpegmfcDlg.cpp
     文件        4414  2014-08-15 18:09  ffmpegmfc\ffmpegmfc\ffmpegmfcDlg.h
     文件       32466  2012-10-12 16:34  ffmpegmfc\ffmpegmfc\ffmpeg_filter.c
     文件       98813  2014-06-06 11:13  ffmpegmfc\ffmpegmfc\ffmpeg_opt.c
     目录           0  2014-08-16 00:16  ffmpegmfc\ffmpegmfc\include\
............此处省略204个文件信息

评论

共有 条评论