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

资源简介

FFmpeg 采集摄像头视频H264编码输出rtmp流媒体项目文件基于雷神之前代码汇总编译,经过测试,基本代码涵盖注释。VS2015编译环境编译通过,ffmpeg学习用

资源截图

代码片段和文件信息

// dsshowffmpeg.cpp : 定义控制台应用程序的入口点。
//

#include “stdafx.h“
#include “stdio.h“
#include “_mingw.h“
#include “stdint.h“
//解决SDL之后发现的错误 LNK2019无法解析的外部符号 __imp__fprintf,该符号在函数 _ShowError 中被引用
#pragma comment(lib “legacy_stdio_definitions.lib“)

//#pragma comment(lib“SDL2.lib“)
#define __STDC_CONSTANT_MACROS
//#define __STDC_CONSTANT_MACROS

extern “C“
{
//解决SDL之后发现的错误 LNK2019无法解析的外部符号 __imp____iob_func,该符号在函数 _ShowError 中被引用
FILE __iob_func[3] = { *stdin*stdout*stderr };
#include “libavcodec/avcodec.h“
#include “libavformat/avformat.h“
#include “libswscale/swscale.h“
#include “libavdevice/avdevice.h“
#include “libavutil/mathematics.h“
#include “libavutil/time.h“
#include “SDL2/SDL.h“

};


//Output YUV420P 
#define OUTPUT_YUV420P 0
//‘1‘ Use Dshow 
//‘0‘ Use VFW
#define USE_DSHOW 0


//Refresh Event
#define SFM_REFRESH_EVENT  (SDL_USEREVENT + 1)

#define SFM_BREAK_EVENT  (SDL_USEREVENT + 2)

int thread_exit = 0;
int thread_pause = 0;
//线程和事件
int sfp_refresh_thread(void *opaque)
{
thread_exit = 0;
thread_pause = 0;

while (!thread_exit) 
{
if (!thread_pause) 
{
SDL_Event event;
event.type = SFM_REFRESH_EVENT;
SDL_PushEvent(&event);
}
SDL_Delay(40);
}
thread_exit = 0;
thread_pause = 0;
//Break
SDL_Event event;
event.type = SFM_BREAK_EVENT;
SDL_PushEvent(&event);

return 0;
}


//Show Dshow Device
void show_dshow_device()
{
AVFormatContext *pFormatCtx = avformat_alloc_context();
AVDictionary* options = NULL;
av_dict_set(&options “list_devices“ “true“ 0);
AVInputFormat *iformat = av_find_input_format(“dshow“);
printf(“========Device Info=============\n“);
avformat_open_input(&pFormatCtx “video=dummy“ iformat &options);
printf(“================================\n“);
}

//Show Dshow Device Option
void show_dshow_device_option()
{
AVFormatContext *pFormatCtx = avformat_alloc_context();
AVDictionary* options = NULL;
av_dict_set(&options “list_options“ “true“ 0);
AVInputFormat *iformat = av_find_input_format(“dshow“);
printf(“========Device Option Info======\n“);
avformat_open_input(&pFormatCtx “video=Integrated Camera“ iformat &options);
//avformat_open_input(&pFormatCtx “video=USB2.0 PC CAMERA“ iformat &options);
//avformat_open_input(&pFormatCtx “video=USB2.0 HD UVC WebCam“ iformat &options);
printf(“================================\n“);
}

//Show VFW Device
void show_vfw_device() 
{
AVFormatContext *pFormatCtx = avformat_alloc_context();
AVInputFormat *iformat = av_find_input_format(“vfwcap“);
printf(“========VFW Device Info======\n“);
avformat_open_input(&pFormatCtx “list“ iformat NULL);
printf(“=============================\n“);
}

//Show AVFoundation Device
void show_avfoundation_device()
{
AVFormatContext *pFormatCtx = avformat_alloc_context();
AVDictionary* options = NULL;
av_dict_set(&options “list_devices“ “true“ 0);
AVInputFormat *iformat = av_find_input_f

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

    ..A..H.     44544  2017-07-14 15:09  dsshowffmpeg\.vs\dsshowffmpeg\v14\.suo

     文件      71680  2017-07-14 14:50  dsshowffmpeg\Debug\dsshowffmpeg.exe

     文件     641160  2017-07-14 14:50  dsshowffmpeg\Debug\dsshowffmpeg.ilk

     文件    1273856  2017-07-14 14:50  dsshowffmpeg\Debug\dsshowffmpeg.pdb

     文件   18936320  2016-03-11 20:51  dsshowffmpeg\dsshowffmpeg\avcodec-55.dll

     文件    1340928  2016-03-11 20:51  dsshowffmpeg\dsshowffmpeg\avdevice-55.dll

     文件    2034688  2016-03-11 20:51  dsshowffmpeg\dsshowffmpeg\avfilter-4.dll

     文件    5342720  2016-03-11 20:51  dsshowffmpeg\dsshowffmpeg\avformat-55.dll

     文件     418304  2016-03-11 20:51  dsshowffmpeg\dsshowffmpeg\avutil-52.dll

     文件       1652  2017-07-13 16:45  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.Build.CppClean.log

     文件       2506  2017-07-14 14:50  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.log

     文件      49247  2017-07-14 14:50  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.obj

     文件      49505  2017-07-14 14:11  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.obj.enc

     文件    3407872  2017-07-13 16:45  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.pch

     文件       1842  2017-07-14 14:50  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.tlog\CL.command.1.tlog

     文件      26310  2017-07-14 14:50  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.tlog\CL.read.1.tlog

     文件       1774  2017-07-14 14:50  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.tlog\CL.write.1.tlog

     文件        280  2017-07-14 14:50  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.tlog\dsshowffmpeg.lastbuildstate

     文件       4776  2017-07-14 14:50  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.tlog\link.command.1.tlog

     文件       8280  2017-07-14 14:50  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.tlog\link.read.1.tlog

     文件       3256  2017-07-14 14:50  dsshowffmpeg\dsshowffmpeg\Debug\dsshowffmpeg.tlog\link.write.1.tlog

     文件      13096  2017-07-13 16:45  dsshowffmpeg\dsshowffmpeg\Debug\stdafx.obj

     文件     445440  2017-07-14 14:50  dsshowffmpeg\dsshowffmpeg\Debug\vc140.idb

     文件     258048  2017-07-14 14:50  dsshowffmpeg\dsshowffmpeg\Debug\vc140.pdb

     文件      18168  2017-07-14 15:08  dsshowffmpeg\dsshowffmpeg\dsshowffmpeg.cpp

     文件      11300  2017-07-13 16:47  dsshowffmpeg\dsshowffmpeg\dsshowffmpeg.vcxproj

     文件       6748  2017-07-13 16:44  dsshowffmpeg\dsshowffmpeg\dsshowffmpeg.vcxproj.filters

     文件        165  2017-07-13 15:19  dsshowffmpeg\dsshowffmpeg\dsshowffmpeg.vcxproj.user

     文件       5721  2016-03-11 20:51  dsshowffmpeg\dsshowffmpeg\include\inttypes.h

     文件     175612  2016-03-11 20:51  dsshowffmpeg\dsshowffmpeg\include\libavcodec\avcodec.h

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

评论

共有 条评论