资源简介
基于ffmpeg开发的windows录屏软件,同时录制桌面、麦克风、系统声音并合成MP4文件,Visual Studio版本最低vs2015,启动前请修改本地的声音捕获设备名称。
代码片段和文件信息
//-------------------------------------------------------------------------
// File: AecKsBinder.cpp
//
// Desciption: Definition of audio devices binding functions
//
// Copyright (c) 2004-2006 Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------------------
#include “stdafx.h“
#include “AecKsbinder.h“
#include “strsafe.h“
#include “functiondiscoverykeys.h“ // PKEY_Device_FriendlyName
#ifndef IF_FAILED_JUMP
#define IF_FAILED_JUMP(hr label) if(FAILED(hr)) goto label;
#endif
#ifndef IF_FAILED_RETURN
#define IF_FAILED_RETURN(hr) if(FAILED(hr)) return hr;
#endif
///////////////////////////////////////////////////////////////////////////
//
// Function:
// DeviceBindTo
//
// Description:
// Bind device to an IAudioClient interface.
//
// Parameters:
// eDataFlow: eRender for render device eCapture for capture device
// iDevIdx: Index of device in the enumeration list. If it is -1 use default device
// ppVoid: pointer pointer to IAudioClient interface.
// ppszEndpointDeviceId: Device ID. Caller is responsible for freeing memeory
// using CoTaskMemoryFree. If can be NULL if called doesn‘t need this info.
//
// Return:
// S_OK if successful
//
///////////////////////////////////////////////////////////////////////////////
HRESULT DeviceBindTo(
EDataFlow eDataFlow // eCapture/eRender
INT iDevIdx // Device Index. -1 - default device.
IAudioClient **ppAudioClient // pointer pointer to IAudioClient interface
IAudioEndpointVolume **ppEndpointVolume
WCHAR** ppszEndpointDeviceId) // Device ID. Need to be freed in caller with CoTaskMemoryFree if it is not NULL
{
HRESULT hResult;
CComPtr spEnumerator;
CComPtr spEndpoints;
CComPtr spDevice;
WCHAR *pszDeviceId = NULL;
if (ppAudioClient == NULL)
return E_POINTER;
*ppAudioClient = NULL;
hResult = spEnumerator.CoCreateInstance(__uuidof(MMDeviceEnumerator));
IF_FAILED_JUMP(hResult Exit);
// use default device
if (iDevIdx < 0 )
{
hResult = spEnumerator->GetDefaultAudioEndpoint(eDataFlow eConsole &spDevice);
IF_FAILED_JUMP(hResult Exit);
}else{
// User selected device
hResult = spEnumerator->EnumAudioEndpoints(eDataFlow DEVICE_STATE_ACTIVE &spEndpoints);
IF_FAILED_JUMP(hResult Exit);
hResult = spEndpoints->Item(iDevIdx &spDevice);
IF_FAILED_JUMP(hResult Exit);
}
// get device ID and format
hResult = spDevice->GetId(&pszDeviceId);
IF_FAILED_JUMP(hResult Exit);
// Active device
hResult = spDevice->Activate(__uuidof(IAudioClient) CLSCTX_INPROC_SERVER NULL (void**)ppAudioClient);
IF_FAILED_JUMP(hResult Exit);
if (ppEndpointVolu
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-11-08 23:20 Recorder\
文件 2373 2019-11-08 22:27 Recorder\.gitignore
目录 0 2019-09-02 18:24 Recorder\.vs\
目录 0 2019-09-02 18:24 Recorder\.vs\Recorder\
目录 0 2019-09-02 18:24 Recorder\.vs\Recorder\v14\
文件 122368 2019-11-08 23:20 Recorder\.vs\Recorder\v14\.suo
目录 0 2019-09-03 09:57 Recorder\ffmpeg\
目录 0 2019-09-03 09:57 Recorder\ffmpeg\bin\
文件 34023936 2019-08-08 13:47 Recorder\ffmpeg\bin\avcodec-58.dll
文件 1405440 2019-08-08 13:47 Recorder\ffmpeg\bin\avdevice-58.dll
文件 7290368 2019-08-08 13:47 Recorder\ffmpeg\bin\avfilter-7.dll
文件 9884160 2019-08-08 13:47 Recorder\ffmpeg\bin\avformat-58.dll
文件 780800 2019-08-08 13:47 Recorder\ffmpeg\bin\avutil-56.dll
文件 124928 2019-08-08 13:47 Recorder\ffmpeg\bin\postproc-55.dll
文件 316928 2019-08-08 13:47 Recorder\ffmpeg\bin\swresample-3.dll
文件 518656 2019-08-08 13:47 Recorder\ffmpeg\bin\swscale-5.dll
目录 0 2019-09-02 18:25 Recorder\ffmpeg\include\
目录 0 2019-09-02 18:25 Recorder\ffmpeg\include\libavcodec\
文件 1207 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\ac3_parser.h
文件 1354 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\adts_parser.h
文件 214339 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\avcodec.h
文件 2570 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\avdct.h
文件 3111 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\avfft.h
文件 2853 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\d3d11va.h
文件 4044 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\dirac.h
文件 3715 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\dv_profile.h
文件 2361 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\dxva2.h
文件 1650 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\jni.h
文件 3450 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\mediacodec.h
文件 3763 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\qsv.h
文件 2297 2019-08-08 13:47 Recorder\ffmpeg\include\libavcodec\vaapi.h
............此处省略229个文件信息
- 上一篇:画nc文件的软件
- 下一篇:[龙书]编译原理技术与工具 (详细书签扫描版)
相关资源
- 使用jrtplib发送和接收网络流支持解码
- 最新版MinGW + yasm + ffmpeg编译环境大全
- FFmpeg+qt实现的播放器工程
- ffmpeg64库
- ffmpeg-4.3.1-full_build
- FFmpege编译源码静态库
- H264测试文件 1080P2分30秒和720P1分45秒
- nginx-flv部署和安装.zip
- FFMpeg资源
- ffmpeg+nginx+nginx-rtmp-module搭建个人直播
- 博睿康公司Neuracle EEG RecorderV2采集软件
- ffmpeg 直播推流
- 编译opencv3.1需要的opencv_ffmpeg_64.dll-o
- 4.2.3_ffmpeg-release-amd64-static.tar_2.xz
- ffmpeg 采集摄像机流(rtsp)后推流(
- handbrake -- ffmpeg 图形化工具
- opencv_ffmpeg_64.dll
- opencv_ffmpeg.dll
-
ijkpla
yer全格式支持HTTPS支持so包 - webcam(含有编译好的ffmpegx264z库)
- FFmpegTestDemo
- 使用DirectShow采集桌面、语音并实时进
- FFMPEG实现RTSP中数据流解码 并且实时播
- opencv3编译需要的opencv_ffmpeg_64.dll
-
VideoPla
yer_5(FFMPEG Qt视频播放器之播 - ffmpeg安装包
- 基于FFmpegQt的视频播放器完整源码.r
- ffmpeg3.2.4_Win32开发库文件
- 利用ffmpeg将H264裸流文件封装为MP4文件
- VS2013+OSG 下编译好的ffmpeg插件
评论
共有 条评论