• 大小: 3.4MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-03
  • 语言: 其他
  • 标签:

资源简介

采用ffmpeg把任意MPEG4文件解码后,打入DVD码流,写入VOB文件,支持DVD播放。提供源码和测试程序。ffmpeg可以自行下载。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 

extern “C“  
{                               
    #include “libavformat/avformat.h“
    #include “libavdevice/avdevice.h“
    #include “libavcodec/avcodec.h“
}

#pragma comment(lib “avcodec.lib“)
#pragma comment(lib “avformat.lib“)
#pragma comment(lib “avutil.lib“)
#pragma comment(lib “swscale.lib“)
#pragma comment(lib “avdevice.lib“)
#pragma comment(lib “avfilter.lib“)

#undef exit
/****************************************************************************************************************************************/
#define STREAM_DURATION  5.0
#define STREAM_frame_RATE  3.0
#define STREAM_NB_frameS ((int)(STREAM_DURATION*STREAM_frame_RATE))
#define STREAM_PIX_FMT  PIX_FMT_YUV420P      //????对于YUV420的结构

AVframe *picture*tmp_picture;     //AVframe为结构体,具体的定义在line 846 of file avcodec.h
uint8_t *video_outbuf;             //关于uint8_t的解释   网址:http://blog.163.com/luokun_9/blog/static/20818832200761033146831/
int frame_countvideo_outbuf_size;

main(int argcchar **argv)
{
    int a;
const char *input_file_name=“d:/aaa.m4v“;
av_register_all();   //初始化的作用  注册库中所有可用的文件格式和编码器      Definition at line 597 of file avformat.h
AVFormatContext *ic;      //为结构体,在其中定义了编解码所需要的变量   Definition at line 401 of file avformat.h

/**
 * Allocate an AVFormatContext.
 * Can be freed with av_free() but do not forget to free everything you
 * explicitly allocated as well!
*/
ic=av_alloc_format_context(); // Allocate an AVFormatContext.   Definition at line 646 of file avformat.h

if(av_open_input_file(&icinput_file_nameNULL0NULL)!=0)   //open input file   Definition at line 637 of file avformat.h
{
printf(“can not open the file %s\n“input_file_name);
exit(1);
}//检验是否成功的打开文件

if(av_find_stream_info(ic)<0)   //Read packets of a media file to get stream information.    Definition at line 660 of file avformat.h  
{
printf(“can not find suitable codec parameters\n“);
exit(1);
}//检验视频文件中,是否有数据流,并检验是否能成功取出
dump_format(ic0input_file_name0);  //列出输入文件的相关流信息     Definition at line 884 of file avformat.h   最后一位:判断是否是输出,若是输出则该位为1
/******************************************************************************************************************************************/
int i;
int videoindex=-1;          
int audioindex=-1;

for(i=0;inb_streams;i++)
{
if(ic->streams[i]->codec->codec_type==CODEC_TYPE_VIDEO)     //指针数组stream[i]的类型是结构体AVStream  表示音频和视频的数据流   Definition at line 295 of file avformat.h 
                                                        //codec的数据类型是结构体AVCodecContext   表示关于编解码的标准位    Definition at line 800 of file avcodec.h
{
videoindex=i;
printf(“video\n“);
}
else if(ic->streams[i]->codec->codec_type==CODEC_TYPE_AUDIO)
{
audioindex=i;
printf(“audio\n“);
}
}
/*******************************************************************************************

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

     文件      14929  2009-11-23 09:46  testsrc\23.cpp

     文件       3353  2009-11-23 09:46  testsrc\23.dsp

     文件        529  2009-11-23 09:47  testsrc\23.dsw

     文件      33792  2009-11-23 09:47  testsrc\23.ncb

     文件      48640  2009-11-23 09:47  testsrc\23.opt

     文件        726  2009-11-23 09:46  testsrc\23.plg

     文件     163961  2009-11-23 09:46  testsrc\Debug\23.exe

     文件     207968  2009-11-23 09:46  testsrc\Debug\23.ilk

     文件      23297  2009-11-23 09:46  testsrc\Debug\23.obj

     文件     235796  2009-11-23 09:46  testsrc\Debug\23.pch

     文件     369664  2009-11-23 09:46  testsrc\Debug\23.pdb

     文件      50176  2009-11-23 09:46  testsrc\Debug\vc60.idb

     文件      69632  2009-11-23 09:46  testsrc\Debug\vc60.pdb

     文件     163961  2009-11-23 09:46  bin-test\23.exe

     文件    7276032  2008-04-12 22:21  bin-test\avcodec.dll

     文件      10752  2008-04-12 22:21  bin-test\avdevice.dll

     文件      14336  2008-04-12 22:21  bin-test\avfilter.dll

     文件     666624  2008-04-12 22:21  bin-test\avformat.dll

     文件      57344  2008-04-12 22:21  bin-test\avutil.dll

     文件      89273  2008-02-16 17:18  bin-test\pthreadGC2.dll

     文件    1760356  2008-02-16 17:03  bin-test\SDL.dll

     文件     158208  2008-04-12 22:21  bin-test\swscale.dll

     文件     742220  2008-03-02 20:40  bin-test\xvidcore.dll

     目录          0  2009-11-23 09:52  testsrc\Debug

     目录          0  2009-11-23 09:52  testsrc

     目录          0  2009-11-23 09:54  bin-test

----------- ---------  ---------- -----  ----

             12161569                    26


评论

共有 条评论

相关资源