资源简介
1、解析rtpdump文件获取rtp包。
2、将rtp包解为hevc/h265裸流并存为265文件。
资源是一个完整的vs2012工程。
对应的CSDN博文http://blog.csdn.net/andyshengjl/article/details/79330610
代码片段和文件信息
#include
#include
#include “h265frame.h“
#include “RtpDump.h“
#include “rtpframe.h“
using namespace std;
#pragma comment(lib “shlwapi.lib“)
int main(int argc char* argv[])
{
H265frame *pHevcframe = NULL;
RD_buffer_t rdBuff;
char szInFileName[256] = ““;
char szOutFileName[256] = ““;
FILE *pInFile = NULL;
FILE *pOutFile = NULL;
if(argc<2){
cout << “RD2Hevc rtpdumpfile“ << endl;
return -1;
}
strcpy(szInFileNameargv[1]);
if(strcmp(PathFindExtension(szInFileName)“.rtpdump“)!=0){
cout << “input file error:[filename].rtpdump“ << endl;
return -1;
}
strcpy(szOutFileNameszInFileName);
strcpy(szOutFileName+strlen(szOutFileName)-7“h265“);
pInFile = fopen(szInFileName “rb+“);
if (pInFile == NULL){
cout << “open input file error:“ << szInFileName << endl;
return -1;
}
pOutFile = fopen(szOutFileName“wb“);
if(pOutFile == NULL){
fclose(pInFile);
cout << “open output file error:“ << szInFileName << endl;
return -1;
}
if(RD_header(pInFileNULL1)<0){
fclose(pInFile);
fclose(pOutFile);
cout << “rtpdump file error“ << endl;
return -1;
}
unsigned long ulBeginTS = 0;
unsigned long ulEndTS = 0;
u_char *pPayload = NULL;
int iGoodframe = -1;
pHevcframe = new H265frame();
while(RD_read(pInFile&rdBuff)>0){
RTPframe hevcRtp((const unsigned char *)rdBuff.p.datardBuff.p.hdr.length);
pPayload = hevcRtp.GetPayloadPtr();
cout << “HEVC SQN:“ << hevcRtp.GetSequenceNumber() << “ time:“ << hevcRtp.GetTimestamp() << “ len:“ << rdBuff.p.hdr.length << “ payloadsize:“ << hevcRtp.GetPayloadSize() << “ marker:“ << hevcRtp.GetMarker() << endl;
iGoodframe = pHevcframe->handleHevcframe(hevcRtp.GetSequenceNumber()hevcRtp.GetTimestamp()hevcRtp.GetPayloadPtr()hevcRtp.GetPayloadSize());
if(iGoodframe<0){
break;
}
if(iGoodframe == 0){
continue;
}
if(ulBeginTS == 0){
ulBeginTS = hevcRtp.GetTimestamp();
}
ulEndTS = hevcRtp.GetTimestamp();
fwrite(pHevcframe->m_buf1pHevcframe->m_buflenpOutFile);
}
cout << “durations: “ << (ulEndTS-ulBeginTS)/90000 << “s\n“;
delete pHevcframe;
fclose(pInFile);
fclose(pOutFile);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 76800 2018-02-16 21:59 RD2Hevc\Debug\RD2Hevc.exe
文件 7179 2018-02-14 22:33 RD2Hevc\h265fr
文件 2946 2018-02-16 18:17 RD2Hevc\h265fr
文件 2225 2018-02-16 18:10 RD2Hevc\RD2Hevc.cpp
文件 880 2018-02-14 22:25 RD2Hevc\RD2Hevc.sln
..A..H. 31744 2018-02-16 21:59 RD2Hevc\RD2Hevc.v11.suo
文件 4340 2018-02-14 22:50 RD2Hevc\RD2Hevc.vcxproj
文件 1430 2018-02-14 22:45 RD2Hevc\RD2Hevc.vcxproj.filters
文件 383 2018-02-14 23:38 RD2Hevc\RD2Hevc.vcxproj.user
文件 3412 2018-02-14 23:42 RD2Hevc\RtpDump.cpp
文件 3171 2018-02-14 22:48 RD2Hevc\RtpDump.h
文件 2312 2018-02-14 19:38 RD2Hevc\rtpfr
目录 0 2018-02-16 22:00 RD2Hevc\Debug
目录 0 2018-02-16 21:59 RD2Hevc
----------- --------- ---------- ----- ----
136822 14
相关资源
- jrtplib移植到安卓
- 实时传输RTP代码
- linuxRTP打包发送
- H265 RTP封装格式
- 基于H.265的RTP封装
- V4L2 通过JRTPLIB 实现RTP实时视频传输并
- 读取H264+发送RTP包的代码--VsParserSend
- 基于RTPRTCP和RTSP协议的流媒体快速流间
- RTP传输h264码流
- RTSP/RTP 嵌入式流媒体服务器的实现
- 用Ffmpeg进行h265编解码的
- HEVC测试序列139681
- RTP打包与解析,荷载PS和H264
- RTP实时传输H.264
- RtspServerForHisiv500
- H.264&H.265视频压缩编码参考码率表
- HM16.9的reference software manual参考软件手
- RFC3550_RTP协议中文版.pdf免费
- HEVC TS 封装文档
- gpac库把H265与AAC封装成MP4的接口新
- 最简RTSP客户端程序
- 最简 jrtplib 收发数据
- linux下的实时语音聊天程序源码adpcm编
- mitty多普达smartphone刷机工具
- linux 语音实时对讲
- RTPC sar面目标成像
- rtp/rtcp协议实现源码
- 水杉导出pmx插件 ExportPMX
- hevc测试序列
- linux c下acc打包成RTP并在VLC上播放
评论
共有 条评论