91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 13.92MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2024-02-03
  • 語言: C/C++
  • 標簽: ffmpeg??mpeg4??

資源簡介

vs2013 的mfc工程,抓取攝像頭及錄音存儲成Demo.mp4。不同的機器可能需要修改AudioDevice.cpp的構造函數中的m_strMikeName值和CameraDevice.cpp中的m_strCameraName值。根據課堂內容抄的代碼,由于本人電腦沒有麥克,所以聲音沒有測試,所以錄音或許有抄錯的地方

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?“AudioDevice.h“
#include?“PacketEx.h“
#include?“PacketPool.h“
#include?“AudioUtil.h“

CAudioDevice::CAudioDevice()
{
m_strMikeName?=??L“audio=麥克風?(Realtek?High?Definition?Au)“;
m_iAudioIndex?=?-1;

m_pInFmtCtx?=?NULL;
m_pOutFmtCtx?=?NULL;
m_pDecoderCtx?=?NULL;
m_pEncoderCtx?=?NULL;
m_pOutStream?=?NULL;

m_pAudioFifo?=?NULL;
m_pPktPool?=?NULL;
m_bOpen?=?FALSE;
m_bCapture?=?FALSE;
}


CAudioDevice::~CAudioDevice()
{
}

BOOL?CAudioDevice::Open()
{
AVInputFormat?*pif?=?av_find_input_format(“dshow“);
if?(pif?==?NULL)
{
return?FALSE;//?未找到支持DShow的音頻設備
}
char?*pMikeName?=?dup_wchar_to_utf8(m_strMikeName);
if?(pMikeName?==?NULL)
{
return?FALSE;
}
if?(avformat_open_input(&m_pInFmtCtx?pMikeName?pif?NULL)? {
return?FALSE;//?打開音頻設備失敗
}
if?(avformat_find_stream_info(m_pInFmtCtx?NULL)? {
return?FALSE;//未沖音頻設備中檢測到流數據
}
for?(uint32_t?i?=?0;?i?nb_streams;?i++)
{
if?(m_pInFmtCtx->streams[i]->codec->codec_type?==?AVMEDIA_TYPE_AUDIO)
{
m_iAudioIndex?=?i;
//?嘗試打開解碼器
AVCodec?*pTempCodec?=?avcodec_find_decoder(m_pInFmtCtx->streams[i]->codec->codec_id);
if?(pTempCodec?==?NULL)
{
return?FALSE;
}
if?(avcodec_open2(m_pInFmtCtx->streams[i]->codec?pTempCodec?NULL)? {
return?FALSE;
}
m_pDecoderCtx?=?m_pInFmtCtx->streams[i]->codec;
break;
}
}
//?創建硬盤輸出流并且初始化
m_pOutStream?=?avformat_new_stream(m_pOutFmtCtx?0);
if?(m_pOutStream?!=?NULL)
{
m_pEncoderCtx?=?m_pOutStream->codec;
//?查找輸出音頻編碼器
if?(m_pOutFmtCtx->oformat->flags&AVFMT_GLOBALHEADER)
{
m_pEncoderCtx->flags?|=?CODEC_FLAG_GLOBAL_HEADER;
}
m_pEncoderCtx->codec?=?avcodec_find_encoder(AV_CODEC_ID_AAC);

//?初始化音頻流對應的音頻編碼器上下文屬性
m_pEncoderCtx->sample_rate?=?m_pDecoderCtx->sample_rate;
if?(m_pEncoderCtx->channel_layout?==?0)
{
m_pEncoderCtx->channel_layout?=?AV_CH_LAYOUT_STEREO;
}
m_pEncoderCtx->channels?=?av_get_channel_layout_nb_channels(m_pEncoderCtx->channel_layout);
m_pEncoderCtx->sample_fmt?=?m_pEncoderCtx->codec->sample_fmts[0];

AVRational?time_base?=?{?1?m_pEncoderCtx->sample_rate?};
m_pOutStream->time_base?=?time_base;
if?(avcodec_open2(m_pEncoderCtx?m_pEncoderCtx->codec?NULL)? {
return?FALSE;//?編碼器打開失敗
}
}
else
{
return?FALSE;//?創建音頻輸出流失敗
}
m_bOpen?=?TRUE;
return?TRUE;
}

BOOL?CAudioDevice::Close()
{
if?(m_bOpen?==?FALSE)
{
return?TRUE;
}
m_bOpen?=?FALSE;
avformat_close_input(&m_pInFmtCtx);
TRACE(“音頻剩余\t%d\t個采樣\n“m_lstPkt.size());

for?(list::iterator?it?=?m_lstPkt.begin();?it?!=?m_lstPkt.end();?it++)
{
av_free_packet((*it)->GetPkt());
}
m_lstPkt.clear();
if?(m_pPktPool?!=?NULL)
{
delete?m_pPktPool;
m_pPktPool?=?NULL;
}
return?TRUE;
}

BOOL?CAudioDevice::Start()
{
m_pAudioFifo?=?av_audio_fifo_alloc(m_pEncoderCtx->sample_fmt?m_pEncoderCtx->channels?1);

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????6221??2015-12-23?11:59??Camera\Camera\AudioDevice.cpp

?????文件????????945??2015-11-10?16:01??Camera\Camera\AudioDevice.h

?????文件????????532??2015-12-22?17:16??Camera\Camera\AudioUtil.cpp

?????文件?????????98??2015-11-06?16:57??Camera\Camera\AudioUtil.h

?????文件???????1923??2015-11-04?12:56??Camera\Camera\Camera.cpp

?????文件????????443??2015-11-04?10:09??Camera\Camera\Camera.h

?????文件???????9560??2015-12-23?11:08??Camera\Camera\Camera.rc

?????文件???????6800??2015-11-06?16:29??Camera\Camera\Camera.vcxproj

?????文件???????3164??2015-11-06?16:29??Camera\Camera\Camera.vcxproj.filters

?????文件????????165??2015-11-04?12:33??Camera\Camera\Camera.vcxproj.user

?????文件??????15992??2015-12-21?12:48??Camera\Camera\CameraDevice.cpp

?????文件???????2705??2015-11-09?09:47??Camera\Camera\CameraDevice.h

?????文件???????4373??2015-11-09?16:29??Camera\Camera\CameraDlg.cpp

?????文件????????932??2015-11-09?16:25??Camera\Camera\CameraDlg.h

?????文件???????1264??2015-11-06?09:29??Camera\Camera\CameraUtil.cpp

?????文件????????420??2015-11-06?09:28??Camera\Camera\CameraUtil.h

?????文件??????77789??2015-12-23?12:36??Camera\Camera\demo.mp4

?????文件????????532??2015-11-05?16:45??Camera\Camera\PacketEx.cpp

?????文件????????230??2015-11-05?16:37??Camera\Camera\PacketEx.h

?????文件???????1060??2015-11-05?17:02??Camera\Camera\PacketPool.cpp

?????文件????????228??2015-11-06?09:15??Camera\Camera\PacketPool.h

?????文件???????3199??2015-11-04?10:09??Camera\Camera\ReadMe.txt

?????文件??????67777??2013-07-22?01:18??Camera\Camera\res\Camera.ico

?????文件????????668??2015-11-04?10:09??Camera\Camera\res\Camera.rc2

?????文件???????1598??2015-11-04?11:03??Camera\Camera\resource.h

?????文件????????139??2015-11-04?10:09??Camera\Camera\stdafx.cpp

?????文件???????1466??2015-11-05?15:59??Camera\Camera\stdafx.h

?????文件????????234??2015-11-04?10:09??Camera\Camera\targetver.h

?????文件????????964??2015-11-04?10:09??Camera\Camera.sln

????..A..H.?????44544??2015-12-23?12:37??Camera\Camera.v12.suo

............此處省略133個文件信息

評論

共有 條評論