live555摄像头视频直播的问题!
cywin 2011-10-28 06:16:44
小弟最近在搞基于live555的摄像头实时直播。采用T264压缩。采用从写一个服务类继承了framedsource。调用下面函数之后能够保存到.264的文件。但用VLC没法播放。而且设置fFrameSize 之后会产生一个错误退出。
谢谢各位。请帮忙分析下!!!!!
void getNextFrame1 ()
{
//帧缓存出列
if (ioctl(video_fd, VIDIOC_DQBUF, &v4lbuf) == -1)
{
printf("error\n");
// return;
}
YUV422To420((unsigned char *)videobuf[v4lbuf.index].start, buf, WIDTH, HEIGTH);
len = T264_encode(t, buf, dst, size);
FILE *out_file = fopen(out_path, "ab");
if (fwrite(dst, len, 1, out_file) < 0)
printf("cannot write 264 file.\n");
//--cywin add
if (ioctl(video_fd, VIDIOC_QBUF, &v4lbuf) == -1) return ;
printf("len = %d\n",len);
printf("fMaxSize = %d\n", fMaxSize);
fFrameSize = len;
if (fFrameSize > fMaxSize) {
fNumTruncatedBytes = fFrameSize - fMaxSize;
fFrameSize = fMaxSize;
}
else {
fNumTruncatedBytes = 0;
}
// memmove(fTo, dst, len);
memcpy(fTo, dst, len);
// notify
fclose(out_file);
afterGetting(this);
}