• 大小: 18.58MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-02
  • 语言: 其他
  • 标签: RTSP  

资源简介

RTSP视频播放器,包括发送端和接收端。

资源截图

代码片段和文件信息

#include “h264.h“

FILE * poutfile =  NULL;
char * outputfilename = “..\\H264_STREAM\\receive.264“;

int InitiateWinsock()
{
int Error;
WORD Version=MAKEWORD(22);
WSADATA WsaData;
Error=WSAStartup(Version&WsaData);       //Start up WSA   
if(Error!=0)
return 0;
else
{
if(LOBYTE(WsaData.wVersion)!=2||HIBYTE(WsaData.wHighVersion)!=2)
{
WSACleanup();
return 0;
}
}
return 1;
}

int  OpenBitstreamFile (char *fn)
{
if (NULL == (poutfile = fopen(fn “wb“)))
{
printf(“Error: Open input file error\n“);
getchar();
}
return 1;
}


NALU_t *AllocNALU(int buffersize)
{
NALU_t *n;

if ((n = (NALU_t*)calloc (1 sizeof(NALU_t))) == NULL)
{
printf(“AllocNALU Error: Allocate Meory To NALU_t Failed “);
exit(0);
}
return n;
}

void FreeNALU(NALU_t *n)
{
if (n)
{
free (n);
}
}

unsigned char * rtp_unpackage(char *bufInint len)
{
    unsigned char recvbuf[1500];
RTPpacket_t *p = NULL; 
RTP_HEADER * rtp_hdr = NULL;
NALU_HEADER * nalu_hdr = NULL;
NALU_t * n  = NULL;
FU_INDICATOR *fu_ind = NULL;
FU_HEADER *fu_hdr= NULL;
int total_bytes = 0;                 //当前包传出的数据
static int total_recved = 0;         //一共传输的数据
int fwrite_number = 0;               //存入文件的数据长度

memcpy(recvbufbufIn len);          //复制rtp包 
printf(“包长度+ rtp头:   = %d\n“len);

//////////////////////////////////////////////////////////////////////////
//begin rtp_payload and rtp_header

p = (RTPpacket_t*)&recvbuf[0];
if ((p = malloc (sizeof (RTPpacket_t)))== NULL)
{
printf (“RTPpacket_t MMEMORY ERROR\n“);
}
if ((p->payload = malloc (MAXDATASIZE))== NULL)
{
printf (“RTPpacket_t payload MMEMORY ERROR\n“);
}

if ((rtp_hdr = malloc(sizeof(RTP_HEADER))) == NULL)
{
printf(“RTP_HEADER MEMORY ERROR\n“);
}
    
rtp_hdr =(RTP_HEADER*)&recvbuf[0]; 
printf(“版本号 : %d\n“rtp_hdr->version);
p->v  = rtp_hdr->version;
p->p  = rtp_hdr->padding;
p->x  = rtp_hdr->extension;
p->cc = rtp_hdr->csrc_len;
printf(“标志位 : %d\n“rtp_hdr->marker);
p->m = rtp_hdr->marker;
printf(“负载类型:%d\n“rtp_hdr->payloadtype);
p->pt = rtp_hdr->payloadtype;
printf(“包号   : %d \n“rtp_hdr->seq_no);
p->seq = rtp_hdr->seq_no;
printf(“时间戳 : %d\n“rtp_hdr->timestamp);
p->timestamp = rtp_hdr->timestamp;
printf(“帧号   : %d\n“rtp_hdr->ssrc);
p->ssrc = rtp_hdr->ssrc;

//end rtp_payload and rtp_header
//////////////////////////////////////////////////////////////////////////
//begin nal_hdr
if (!(n = AllocNALU(800000)))          //为结构体nalu_t及其成员buf分配空间。返回值为指向nalu_t存储空间的指针
{
printf(“NALU_t MMEMORY ERROR\n“);
}
if ((nalu_hdr = malloc(sizeof(NALU_HEADER))) == NULL)
{
printf(“NALU_HEADER MEMORY ERROR\n“);
}

nalu_hdr =(NALU_HEADER*)&recvbuf[12];                        //网络传输过来的字节序 ,当存入内存还是和文档描述的相反,只要匹配网络字节序和文档描述即可传输正确。
printf(“forbidden_zero_bit: %d\n“nalu_hdr->F);              //网络传输中的方式为:F->NRI->TYPE.. 内存中存储方式为 TYPE->NRI->F (和nal头匹配)。
n->fo

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

     文件        879  2016-08-09 16:32  RTSP视频播放器\rtpRecv\Backup\rtpRecv.sln

    ..A..H.     27648  2016-08-10 01:33  RTSP视频播放器\rtpRecv\Backup\rtpRecv.v12.suo

     文件      35739  2017-07-04 22:09  RTSP视频播放器\rtpRecv\Debug\Rtp2H264.obj

     文件      45568  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.exe

     文件     315768  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.ilk

     文件       2548  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.log

     文件      59790  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.obj

     文件     749568  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.pdb

     文件       1802  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.tlog\cl.command.1.tlog

     文件      42462  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.tlog\CL.read.1.tlog

     文件       2302  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.tlog\CL.write.1.tlog

     文件       1444  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.tlog\link.command.1.tlog

     文件       2976  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.tlog\link.read.1.tlog

     文件        660  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.tlog\link.write.1.tlog

     文件        179  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\rtpRecv.tlog\rtpRecv.lastbuildstate

     文件       3779  2017-07-04 22:04  RTSP视频播放器\rtpRecv\Debug\stdafx.obj

     文件     707584  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\vc120.idb

     文件     167936  2017-07-05 09:37  RTSP视频播放器\rtpRecv\Debug\vc120.pdb

     文件       5069  2017-07-04 22:08  RTSP视频播放器\rtpRecv\h264.h

     文件       8988  2012-07-29 16:32  RTSP视频播放器\rtpRecv\main.c

     文件       1302  2016-08-09 16:32  RTSP视频播放器\rtpRecv\ReadMe.txt

     文件       3557  2017-07-05 11:17  RTSP视频播放器\rtpRecv\Rtp2H264.cpp

     文件        949  2015-11-09 11:41  RTSP视频播放器\rtpRecv\Rtp2H264.h

     文件       9707  2017-07-05 09:37  RTSP视频播放器\rtpRecv\rtpRecv.cpp

     文件   30081024  2017-07-05 11:54  RTSP视频播放器\rtpRecv\rtpRecv.sdf

     文件        959  2017-07-04 21:06  RTSP视频播放器\rtpRecv\rtpRecv.sln

    ..A..H.     27648  2016-08-10 01:33  RTSP视频播放器\rtpRecv\rtpRecv.suo

    ..A..H.     47616  2017-07-05 11:54  RTSP视频播放器\rtpRecv\rtpRecv.v12.suo

     文件       4364  2016-08-09 17:34  RTSP视频播放器\rtpRecv\rtpRecv.vcproj

     文件       1411  2016-08-09 19:19  RTSP视频播放器\rtpRecv\rtpRecv.vcproj.DELL-PC.DELL.user

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

评论

共有 条评论