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

  • 大小: 18.12MB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2023-08-02
  • 語言: C/C++
  • 標簽: AAC??RTSP??EasyDarwin??

資源簡介

介紹一個基于C++開發的RTSP/RTMP推流組件PushStream,PushStream推流基礎組件是一款推送流媒體音/視頻流給標準RTSP流媒體服務器 (如EasyDarwin、Wowza) 或者RTMP流媒體服務器 (如Nginx) 的流媒體推送庫

資源截圖

代碼片段和文件信息

/*******************************************************************************
Copyright?(c)?wubihe?Tech.?Co.?Ltd.?All?rights?reserved.
--------------------------------------------------------------------------------
?
Date?Created: 2014-10-25
Author: ????wubihe?QQ:1269122125?Email:1269122125@qq.com
Description: 推流工具庫,協議支持RTMP/RTSPRTSP支持RTP?OVER?TCP/RTP?OVER?UDP
視頻編碼格式支持H264H265音頻編碼格式支持AACG711A/G711U
封裝格式支持MPEG2-PSMPEG2-TSFLV格式本Demo模擬AAC編碼器從文
件循環讀取AAC數據發送給EasyDarwin服務器
--------------------------------------------------------------------------------
Modification?History
DATE??????????AUTHOR??????????DEscriptION
--------------------------------------------------------------------------------

********************************************************************************/
#include?“IPushStream.h“
#include?“Xbase/XThread.h“
#include?


//只推送AAC音頻到RTSP服務器上
#define?PUSH_AAC_ONLY




#ifdef?PUSH_AAC_ONLY
#define?INPUT_FILE_NAME (“huangdun.aac“)
#endif



//推流地址
#define?PUSH_STREAM_URL (“rtsp://192.168.1.110/live.sdp“)

#define?MAX_BUFFER_SIZE?????(1024*8)

//讀取文件
static?FILE*???gInputFile?=?NULL;
//推流句柄
PSTREAM_HANDLE?gPushHandle ;
//H264流句柄
int ???gStreamId;

unsigned?char??gszReadBuffer[MAX_BUFFER_SIZE];


//日志回調
void?CALLBACK?LogCBFun(PSTREAM_LOG_LEVEL?nLogLevel?const?char?*szMessage?void*?pUserData?)
{
printf(“%s\n“szMessage);
}

//消息回調
void?CALLBACK?MsgCBFun(PSTREAM_HANDLE?lHandle?PSTREAM_MSG_TYPE?eTypevoid*?pUserData?)
{
switch?(eType)
{
case?PSTREAM_MSG_TYPE_OFFLINE:
printf(“收到離線消息\n“);
break;
default:
break;
}
}


//線程循環讀取本地文件?模擬從編碼器獲取的編碼數據
#ifdef?__WINDOWS__
unsigned?XAPI?Thread1Handle(void*?pParam)
#endif//__WINDOWS__
#ifdef?__GNUC__
void*?XAPI?Thread1Handle(void*?pParam)
#endif//__GNUC__
{
XThread*?pThread?=?(XThread*)pParam;
//或者采用阻塞版本TryWaitQuit(uint32)
while(!pThread->IsExitThread())
{

int?iReadSize?=?fread(gszReadBuffer?1?MAX_BUFFER_SIZE?gInputFile);

if(iReadSize?>?0)
{
//流送入庫
PSTREAM_DataInput(gPushHandlegStreamIdgszReadBufferiReadSize);
}
else
{
//文件結束從頭讀
fseek(gInputFile0SEEK_SET);
}
XThread::Sleep(20);
}
printf(“線程:%ld?運行結束\n“XThread::SelfID());
return?0;
}



int?main()
{

gInputFile?=?fopen(INPUT_FILE_NAME?“rb“);
if?(!gInputFile)
{
printf(“read?input?file?:%s?failed!\n“INPUT_FILE_NAME);
return?0;
}

PSTREAM_SetLogCallBack(LogCBFunNULL);

//RTSP/RTP?OVER?TCP?推流
gPushHandle?=?PSTREAM_CreatePushHandle(PSTREAM_RTSP_RTP_TCP);

if(!gPushHandle)
{
printf(“PSTREAM_CreatePushHandle?Error!\n“);
return?0;
}
//設置消息回調
PSTREAM_SetMsgCallBack(gPushHandleMsgCBFun?NULL);



#ifdef?PUSH_AAC_ONLY
//添加音視頻軌道?這里添加H264軌道
gStreamId?=?PSTREAM_AddStream(gPushHandle PSTREAM_AUDIO_TYPE_AAC);
#endif


if(gStreamId<0)
{
printf(“PSTREAM_AddStream?Error!\n“);
PSTREAM_DestroyPushHandle(gPushHandle);
retu

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

?????文件????9092080??2018-06-07?16:44??PushStream_AAC\bin\Debug\huangdun.264

?????文件????4035283??2018-06-17?17:40??PushStream_AAC\bin\Debug\huangdun.265

?????文件????1545007??2018-07-29?10:13??PushStream_AAC\bin\Debug\huangdun.aac

?????文件??????82944??2018-12-03?15:36??PushStream_AAC\bin\Debug\PushStreamDemo_D.exe

?????文件?????556824??2018-12-03?15:36??PushStream_AAC\bin\Debug\PushStreamDemo_D.ilk

?????文件?????977920??2018-12-03?15:36??PushStream_AAC\bin\Debug\PushStreamDemo_D.pdb

?????文件?????229888??2018-12-02?20:27??PushStream_AAC\bin\Debug\PushStream_D.dll

?????文件???????1926??2018-12-02?17:24??PushStream_AAC\bin\Debug\PushStream_D.exp

?????文件????1580196??2018-12-02?20:27??PushStream_AAC\bin\Debug\PushStream_D.ilk

?????文件???????3680??2018-12-02?17:24??PushStream_AAC\bin\Debug\PushStream_D.lib

?????文件????2067456??2018-12-02?20:27??PushStream_AAC\bin\Debug\PushStream_D.pdb

?????文件?????800000??2018-02-24?11:16??PushStream_AAC\bin\Debug\test_8k_1_16.G711A

?????文件???????5423??2018-12-02?12:52??PushStream_AAC\Project\PushStreamDemo\PushStreamDemo.vcproj

?????文件???????1466??2018-12-03?15:44??PushStream_AAC\Project\PushStreamDemo\PushStreamDemo.vcproj.PC-20180721LUCB.Administrator.user

?????文件???10603520??2018-12-03?15:44??PushStream_AAC\PushStream.ncb

?????文件????????916??2018-12-02?20:30??PushStream_AAC\PushStream.sln

????..A..H.?????73728??2018-12-03?15:44??PushStream_AAC\PushStream.suo

?????文件???????8142??2018-12-02?20:19??PushStream_AAC\src\PushStreamDemo\IPushStream.h

?????文件???????4350??2018-12-03?15:35??PushStream_AAC\src\PushStreamDemo\main.cpp

?????文件???????2536??2018-11-25?16:12??PushStream_AAC\src\PushStreamDemo\Xbase\Timer.cpp

?????文件???????2076??2018-11-25?16:43??PushStream_AAC\src\PushStreamDemo\Xbase\Timer.h

?????文件???????1653??2018-11-25?08:12??PushStream_AAC\src\PushStreamDemo\Xbase\XCritical.cpp

?????文件????????763??2018-11-25?08:12??PushStream_AAC\src\PushStreamDemo\Xbase\XCritical.h

?????文件???????3472??2018-11-25?10:44??PushStream_AAC\src\PushStreamDemo\Xbase\XDefine.h

?????文件???????3028??2018-11-25?08:12??PushStream_AAC\src\PushStreamDemo\Xbase\XEvent.cpp

?????文件????????989??2018-11-25?08:12??PushStream_AAC\src\PushStreamDemo\Xbase\XEvent.h

?????文件???????1880??2018-11-25?08:12??PushStream_AAC\src\PushStreamDemo\Xbase\XMutex.cpp

?????文件???????1124??2018-11-25?08:12??PushStream_AAC\src\PushStreamDemo\Xbase\XMutex.h

?????文件????????536??2018-11-25?08:12??PushStream_AAC\src\PushStreamDemo\Xbase\XNoncopyable.h

?????文件???????3944??2018-11-25?08:12??PushStream_AAC\src\PushStreamDemo\Xbase\XThread.cpp

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

評論

共有 條評論