资源简介

linux 2.6.28---UBUNTU9.04 V4L2及uvcvideo驱动采集 采用libjrtp-2.9 实现RTP传输

资源截图

代码片段和文件信息

#include 
#include 
#include “rtpsession.h“
#include “rtppacket.h“

// 错误处理函数
void checkerror(int err)
{
  if (err < 0) {
    char* errstr = RTPGetErrorString(err);
    printf(“Error:%s\\n“ errstr);
    exit(-1);
  }
}

int main(int argc char** argv)
{
  RTPSession sess;
  int localport;
  int status;
  int timestamplengh = 1025length = 0;
  char buffer[32768];
  unsigned char *RawData;
  
  if (argc != 2) {
    printf(“Usage: ./recieve localport\\n“);
    return -1;
  }

   // 获得用户指定的端口号
  localport = atoi(argv[1]);

  // 创建RTP会话
  status = sess.Create(localport);
  checkerror(status);
  FILE *file = 0; 
  int i = 0;
  int j = 1;
        

  do {
    // 接受RTP数据
    status = sess.PollData();
  // 检索RTP数据源

    if (sess.GotoFirstSourceWithData())
    {

      do {
        RTPPacket* packet;
        // 获取RTP数据报
        
        while ((packet = sess.GetNextPacket()) != NULL) {
        
            printf(“Got packet %d! of pic %d!\n“ij);
        timestamp = packet->GetTimeStamp();
            lengh=packet->GetPayloadLength();
            length += lengh;
            RawData=packet->GetPayload();   //得到实际有效数据
            printf(“ timestamp:%d;lengh=%d\n“timestamplengh);
            memcpy(&buffer[1024*i]RawDatalengh); 
            i ++;     
            delete packet;
           // 删除RTP数据报
        }
      } while (sess.GotoNextSourceWithData());
    }    
    if(lengh < 1024)
    {
        if((file = fopen(“rtp_rev.jpg“ “wb“)) < 0)
     {
            printf(“Unable to create y frame recording file\n“);
            return -1;
     }
     else
     {
     fwrite(buffer length 1 file);
     printf(“buffer write %d bytes into file.\n“length);
     fclose(file);
     i = 0;//write over so reset i
     j ++ ;//write pic and j++
     lengh = 1025;
     }
    }  
  } while(1);

  return 0;
}

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

     文件      55477  2010-05-31 14:28  v4l2_jpeg_rtp\jpegrtp_recieve

     文件       7553  2010-05-31 14:50  v4l2_jpeg_rtp\jpegvideo

     文件      60218  2010-05-31 14:44  v4l2_jpeg_rtp\v4l2_sendrtp

     文件      36864  2010-05-31 14:50  v4l2_jpeg_rtp\rtp_rev.jpg

     文件          0  2010-05-31 14:50  v4l2_jpeg_rtp\1.jpg

     文件      12300  2010-05-31 13:44  v4l2_jpeg_rtp\jpegsdl

     文件       3456  2010-05-31 14:36  v4l2_jpeg_rtp\jpegvideo.c

     文件      60213  2010-05-31 14:14  v4l2_jpeg_rtp\v4l2sdl

     文件      11309  2010-05-31 14:46  v4l2_jpeg_rtp\v4l2_sendrtp.c

     文件        294  2010-05-31 13:48  v4l2_jpeg_rtp\Makefile

     文件       1951  2010-05-31 14:28  v4l2_jpeg_rtp\jpegrtp_recieve.c

     目录          0  2010-05-31 14:50  v4l2_jpeg_rtp

----------- ---------  ---------- -----  ----

               249635                    12


评论

共有 条评论