-
大小: 15.22MB文件类型: .rar金币: 1下载: 0 次发布日期: 2023-08-01
- 语言: 其他
- 标签: H264ffmpeg
资源简介
Jrtplib发送H264数据,ffmpeg解码+VFW播放视频
代码片段和文件信息
// My01.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include “rtpsession.h“
#include “rtpudpv4transmitter.h“
#include “rtpipv4address.h“
#include “rtpsessionparams.h“
#include “rtperrors.h“
#include “rtplibraryversion.h“
#include
#include
#include
#include
using namespace jrtplib;
//jrtplib应用需链接的lib
#pragma comment(lib“ws2_32.lib“)
#pragma comment(lib “jrtplib_d.lib“)
#define MAXLEN (RTP_DEFAULTPACKETSIZE - 100) //默认值是1400
//
// This function checks if there was a RTP error. If so it displays an error
// message and exists.
//
void checkerror(int rtperr)
{
if (rtperr < 0)
{
std::cout << “ERROR: “ << RTPGetErrorString(rtperr) << std::endl;
exit(-1);
}
}
class MyRTPSession : public RTPSession
{
public:
MyRTPSession(void);
~MyRTPSession(void);
void SendH264Nalu(RTPSession* sessuint8_t* m_h264Bufint buflen);
protected:
};
MyRTPSession::MyRTPSession(void){}
MyRTPSession::~MyRTPSession(void){}
void MyRTPSession::SendH264Nalu(RTPSession* sessuint8_t *h264bufint buflen){
int status;
uint8_t *pSendbuf;
pSendbuf = h264buf;
if(buflen <= MAXLEN)
{
sess->SetDefaultMark(true);
status = sess->SendPacket((void *)&pSendbuf[0]buflen);
checkerror(status);
printf(“send_packt 0 len = %d\n“buflen);
}
else if(buflen > MAXLEN)
{
int send_packet = 0;
int all_packet = 0;
int over_data = 0;
int iSendLen;
all_packet = buflen / MAXLEN;
over_data = buflen % MAXLEN;
send_packet = 0;
while((send_packet 0)))
{
printf(“send_packet = %d \n“send_packet);
/* the first packet or the second last packet */
if((0 == send_packet) || (send_packet {
sess->SetDefaultMark(false);
status = sess->SendPacket((void *)&pSendbuf[send_packet*MAXLEN]MAXLEN);
checkerror(status);
//printf(“send_packet = %d \n“send_packet);
send_packet++;
}
/* the last packet */
else if(((all_packet==send_packet) && over_data>0) || ((send_packet== (all_packet-1))&& over_data==0))
{
sess->SetDefaultMark(true); //表示分包的最后一包
if ( over_data > 0)
{
iSendLen = buflen - send_packet*MAXLEN;
}
else
{
iSendLen = MAXLEN;
}
status = sess->SendPacket((void *)&pSendbuf[send_packet*MAXLEN]iSendLen);
checkerror(status);
send_packet++;
printf(“send_packet = %d \n“send_packet);
}
}
}
}
int _tmain(int argc _TCHAR* argv[])
{
#ifdef RTP_SOCKETTYPE_WINSOCK
WSADATA dat;
WSAStartup(MAKEWORD(22)&dat);
#endif // RTP_SOCKETTYPE_WINSOCK
int i;
int num;
int status;
RTPSession sess;
MyRTPSession sender;
uint16_t portbase = 12348;
uint16_t destport = 12346; //目的端口
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2908 2017-07-04 14:39 VFW_ show_H264\rtpSender\My01\Include\rtpconfig.h
文件 1777 2017-07-04 14:39 VFW_ show_H264\rtpSender\My01\Include\rtplibraryversioninternal.h
文件 254 2017-07-04 14:39 VFW_ show_H264\rtpSender\My01\Include\rtptypes.h
文件 2276790 2017-07-04 14:49 VFW_ show_H264\rtpSender\My01\Lib\jrtplib.lib
文件 7672032 2017-07-04 14:47 VFW_ show_H264\rtpSender\My01\Lib\jrtplib_d.lib
文件 12446 2017-07-04 14:12 VFW_ show_H264\rtpSender\My01\Lib\jthread.lib
文件 58882 2017-07-04 14:11 VFW_ show_H264\rtpSender\My01\Lib\jthread_d.lib
文件 5233 2017-07-22 16:11 VFW_ show_H264\rtpSender\My01\My01.cpp
文件 4515 2017-07-05 10:47 VFW_ show_H264\rtpSender\My01\My01.vcxproj
文件 1308 2017-07-05 10:41 VFW_ show_H264\rtpSender\My01\My01.vcxproj.filters
文件 143 2017-07-05 10:41 VFW_ show_H264\rtpSender\My01\My01.vcxproj.user
文件 1532 2017-07-05 10:41 VFW_ show_H264\rtpSender\My01\ReadMe.txt
文件 3907 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\CMakeLists.txt
文件 481 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\errcodecommand
文件 34279 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\extratransmitters\rtpfaketransmitter.cpp
文件 9009 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\extratransmitters\rtpfaketransmitter.h
文件 757 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\reformaterrors.py
文件 2697 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcpapppacket.cpp
文件 3703 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcpapppacket.h
文件 2943 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcpbyepacket.cpp
文件 4049 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcpbyepacket.h
文件 5897 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcpcompoundpacket.cpp
文件 4164 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcpcompoundpacket.h
文件 22746 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcpcompoundpacketbuilder.cpp
文件 12166 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcpcompoundpacketbuilder.h
文件 2224 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcppacket.cpp
文件 3001 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcppacket.h
文件 18777 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcppacketbuilder.cpp
文件 11786 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcppacketbuilder.h
文件 3209 2017-03-28 18:59 VFW_ show_H264\rtpSender\My01\src\rtcprrpacket.cpp
............此处省略420个文件信息
- 上一篇:Eclipse搭建SSH架构
- 下一篇:微波传输线理论与实用技术.pdf
评论
共有 条评论