在上一篇博文中介绍了一个H264文件的解析封装类(https://blog.youkuaiyun.com/toshiba689/article/details/86747620),而这篇博文给大家介绍怎么把读出来的H264数据以RTP协议发送出去。我继续以前面读H264的代码为例子,加上发送H264的功能。
这个例子的main函数代码如下:
int _tmain(int argc, _TCHAR* argv[])
{
CFrameExtractFilter fileParser;
fileParser.SetLoopMode(FALSE);
if(fileParser.OpenFile(_T("D:\\videos\\185.1080P.264"), H264_DEC) != 0)
{
printf(("OpenFile failed \n"));
return -1;
}
unsigned int current_timestamp = 0; //当前时间戳
unsigned int timestamp_increase= 3600; //时间戳增量,90000/25 = 3600
unsigned int frame_duration = 1000/25; //帧的间隔时间
unsigned char * pFrameBuffer = (unsigned char*)malloc(1000*1024);
unsigned int nFrameSize = 0;
char cType = '\0';
// Init WinSock
WSADATA data;
int ret = WSAStartup(0x0202, &data);
if (ret != 0)
{
return -2;
}
H264Handler * pH264Handler = new H264Handler();
pH264Handler->SetPayl