//是否录制视频
if(recordflag==1)
{
recordstart = 1;
if(firstFrame ==1)
{
if(frameInfo->frame_type != 1 )
{
recordstart = 0;
goto step_end;
}else
{
time_t starttime;
struct tm * tm;
time ( &starttime );
tm = localtime ( &starttime );
//sprintf(filename,"%s%s",dir_name,asctime(timeinfo));
sprintf(filename,"%s%d_%d_%d_%d_%d_%d",dir_name,tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec);
out_fd = AVI_open_output_file(filename); //把文件描述符绑定到此文件上
if(out_fd == NULL)
{
printf("open file erro");
}
AVI_set_video(out_fd,frameInfo->width,frameInfo->height,frameInfo->frame_rate,"H264");//设置视频文件的格式
//void AVI_set_audio(avi_t *AVI, int channels, long rate, int bits, int format, long mp3rate);
//AVI_set_audio(out_fd,0,8000,16,1,0x55);
AVI_set_audio(out_fd,1,8000,8,6,64);
firstFrame = 0;
}
}else
{
//视频帧
if(frameInfo->frame_type == 1 || frameInfo->frame_type == 2)
{
if(AVI_write_frame(out_fd,data+head_len,frame_len,1)<0)//向视频文件中写入一帧图像
{
printf("write video frame erro!");
}
}else{ //音频帧
if(AVI_write_audio(out_fd,data+head_len,frame_len)<0)
{
printf("write audio frame erro!");
}
}
frame_len = 0;
}
recordstart = 0;
}
- 1
- 2
前往页