资源简介
linux 使用jrtplib收发h.264视频文件 详细内容见博客:http://blog.csdn.net/li_wen01/article/details/70435005
代码片段和文件信息
/*=============================================================================
* FileName: receive.cpp
* Desc: reveive h.264 from RTP server
* Author: licaibiao
* LastChange: 2017-04-22
* =============================================================================*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace jrtplib;
void checkerror(int rtperr)
{
if (rtperr < 0)
{
std::cout << “ERROR: “ << RTPGetErrorString(rtperr) << std::endl;
exit(-1);
}
}
int main(void)
{
RTPSession sess;
uint16_t portbase = 6664;
int status;
bool done = false;
RTPUDPv4TransmissionParams transparams;
RTPSessionParams sessparams;
sessparams.SetOwnTimestampUnit(1.0/10.0);
sessparams.SetAcceptOwnPackets(true);
transparams.SetPortbase(portbase);
status = sess.Create(sessparams&transparams);
checkerror(status);
sess.BeginDataAccess();
RTPTime delay(0.001);
RTPTime starttime = RTPTime::CurrentTime();
FILE *fd;
size_t len;
uint8_t *loaddata;
RTPPacket *pack;
uint8_t buff[1024*100] = {0};
int pos = 0;
fd = fopen(“./test_recv.h264““wb+“);
while (!done)
{
status = sess.Poll();
checkerror(status);
if (sess.GotoFirstSourceWithData())
{
do
{
while ((pack = sess.GetNextPacket()) != NULL)
{
loaddata = pack->GetPayloadData();
len = pack->GetPayloadLength();
if(pack->GetPayloadType() == 96) //H264
{
if(pack->HasMarker()) // the last packet
{
memcpy(&buff[pos]loaddatalen);
fwrite(buff 1 pos+len fd);
pos = 0;
}
else
{
memcpy(&buff[pos]loaddatalen);
pos = pos + len;
}
}else
{
printf(“!!! GetPayloadType = %d !!!! \n “pack->GetPayloadType());
}
sess.DeletePacket(pack);
}
} while (sess.GotoNextSourceWithData());
}
RTPTime::Wait(delay);
RTPTime t = RTPTime::CurrentTime();
t -= starttime;
if (t > RTPTime(40.0))
done = true;
}
fclose(fd);
sess.EndDataAccess();
delay = RTPTime(10.0);
sess.BYEDestroy(delay00);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 122 2017-04-21 20:39 jrtplib_send_recv_h264\Makefile
文件 2396 2017-04-22 14:52 jrtplib_send_recv_h264\receive.cpp
文件 6023 2017-04-22 11:49 jrtplib_send_recv_h264\sender.cpp
文件 2263679 2015-07-03 01:36 jrtplib_send_recv_h264\test.h264
目录 0 2017-04-22 15:16 jrtplib_send_recv_h264
----------- --------- ---------- ----- ----
2272220 5
相关资源
- live555 RTSP RTCP RTP。live555类关系图,
- udp码流接收录制工具
- H264流媒体RTP打包源代码和相关资料
- SmartPrinter3.6破解版(附带命令行与批
- linux+QT下基于RTP协议的实时视频传输客
- 基于ARM的嵌入式网络视频监控系统的
- PowerTCP Telnet for .NET 4.4.5 破解去除试用
- 微积分_Stewart_第六版Calculus6th edition
- 接收RTP包保存为h264文件
- H264编解码rtp发送
- onvif协议源码rtsp,rtp,gb28181等等协议
- 使用jrtplib发送和接收网络流支持解码
- 使用jrtplib发送和接收的--PlayStream V1
- ffmpegjrtplib.zip
- Linux 下RTP实时打包发送H.264码流
- live555-20181214基于ARM-linux从网络摄像机
- ScreenReceiver46接收rtp流解析并解码播放
- GES SRTP OPC Server
- Qt基于RTP打包H.264
- 岳维功 ortp-realease.pdf
- jrtplib 3.9
- jrtplib移植到安卓
- 实时传输RTP代码
- linuxRTP打包发送
- H265 RTP封装格式
- 基于H.265的RTP封装
- V4L2 通过JRTPLIB 实现RTP实时视频传输并
- 读取H264+发送RTP包的代码--VsParserSend
- 基于RTPRTCP和RTSP协议的流媒体快速流间
- RTP传输h264码流
评论
共有 条评论