live555 使用testRTSPClient 接收h264记录
来源:互联网 发布:美白系列水乳 知乎 编辑:程序博客网 时间:2024/06/04 18:13
参考自网络,自己测试通过。特记录如下:
使用live555 客户端 testRTSPClient.cpp修改如下:
void DummySink::afterGettingFrame(unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned /*durationInMicroseconds*/) { // We've just received a frame of data. (Optionally) print out information about it:#ifdef DEBUG_PRINT_EACH_RECEIVED_FRAME if (fStreamId != NULL) envir() << "Stream \"" << fStreamId << "\"; "; envir() << fSubsession.mediumName() << "/" << fSubsession.codecName() << ":\tReceived " << frameSize << " bytes"; if (numTruncatedBytes > 0) envir() << " (with " << numTruncatedBytes << " bytes truncated)"; char uSecsStr[6+1]; // used to output the 'microseconds' part of the presentation time sprintf(uSecsStr, "%06u", (unsigned)presentationTime.tv_usec); envir() << ".\tPresentation time: " << (unsigned)presentationTime.tv_sec << "." << uSecsStr; if (fSubsession.rtpSource() != NULL && !fSubsession.rtpSource()->hasBeenSynchronizedUsingRTCP()) { envir() << "!"; // mark the debugging output to indicate that this presentation time is not RTCP-synchronized } envir() << "\n";#endif //todo one frame //save to file if(!strcmp(fSubsession.mediumName(), "video")) { if(firstFrame) { unsigned int num; SPropRecord *sps = parseSPropParameterSets(fSubsession.fmtp_spropparametersets(), num); // For H.264 video stream, we use a special sink that insert start_codes: struct timeval tv= {0,0}; unsigned char start_code[4] = {0x00, 0x00, 0x00, 0x01}; FILE *fp = fopen("test.264", "a+b"); if(fp) { fwrite(start_code, 4, 1, fp); fwrite(sps[0].sPropBytes, sps[0].sPropLength, 1, fp); fwrite(start_code, 4, 1, fp); fwrite(sps[1].sPropBytes, sps[1].sPropLength, 1, fp); fclose(fp); fp = NULL; } delete [] sps; firstFrame = False; } char *pbuf = (char *)fReceiveBuffer; char head[4] = {0x00, 0x00, 0x00, 0x01}; FILE *fp = fopen("test.264", "a+b"); if(fp) { fwrite(head, 4, 1, fp); fwrite(fReceiveBuffer, frameSize, 1, fp); fclose(fp); fp = NULL; } } // Then continue, to request the next frame of data: continuePlaying();}
1 0
- live555 使用testRTSPClient 接收h264记录
- Live555接收h264使用ffmpeg解码为YUV420
- Live555接收h264使用ffmpeg解码为YUV420 .
- Live555接收h264使用ffmpeg解码为YUV420 .
- Live555接收h264使用ffmpeg解码为YUV42
- Live555接收h264使用ffmpeg解码为YUV420 .
- Live555接收h264使用ffmpeg解码为YUV420
- live555--testRTSPClient学习心得
- Live555接收H264流判断关键帧
- LIVE555再学习 -- testRTSPClient 实例
- VLC 使用live555 接收数据
- Live555+FFMPEG+ddraw实现H264码流接收,解码,显示
- 庖丁解牛-----Live555源码彻底解密(testRTSPClient流程图)
- LIVE555再学习 -- testRTSPClient 源码分析
- Live555源码彻底解密(根据testRTSPClient讲解)
- 庖丁解牛-----Live555源码彻底解密(根据testRTSPClient讲解)
- live555 TestRtspClient -vs2008编译源码;
- 庖丁解牛-----Live555源码彻底解密(testRTSPClient --rtsp交互流程)
- 如何快速去掉.svn文件夹
- 在eclipse 中 制作自己的Android apk 签名密钥
- halcon Print-inspection 实例注释
- hdu 1052 Tian Ji -- The Horse Racing 贪心算法
- C++用mci音频播放
- live555 使用testRTSPClient 接收h264记录
- 从 Qt 的delete 说开来
- IOS学习之蓝牙4.0 BLE
- 一些关于NSRunLoop与NSTimer的知识
- ubuntu下设置静态ip 问题
- wireshark对重复包进行过滤
- centos 服务器上会用到的命令收集
- POJ 3294 Life Forms (后缀数组)
- 文件操作 C语言