mikefranklin 发表于 2018-1-24 14:40:02

视频流写入流文件的问题

鱼油们我想把视频流(unsigned char*)写入一个.ps或者.ts视频文件,文件写的是成功的(可以看到文件),但是文件用指定的软件打不开之后会有大部分画面绿屏,想知道是为什么,或者应该怎么查出出错的原因。
代码如下:
void func(int index,const unsigned char* data,unsigned int datalen)
{
       /*就写一个简短的程序吧,实际的逻辑要稍微严谨一点*/
      FILE *fp = NULL;
      char filename = {0};
      if (datalen==0)
      {
             return;
      }
      if (fp==NULL)
      {
             sprintf(filename, "%s%s", "D://test",".ps");
             fp = fopen(filename,"a+");
      }
      if(fp != NULL)
      {
            fwrite(data,dataLen,1,fp);
            fclose(fp);
      }
      fp = NULL;
}

mikefranklin 发表于 2018-1-24 14:40:50

纠正一下:视频文件可以打开,只是打开之后画面不对

BngThea 发表于 2018-1-24 15:07:49

应该是编码不统一吧,视频格式和文字的编码差别很大

U201010009 发表于 2018-1-24 15:49:31

用二进制的方式写入文件试试
fopen(filename,"ab+")

mikefranklin 发表于 2018-1-24 16:12:03

U201010009 发表于 2018-1-24 15:49
用二进制的方式写入文件试试
fopen(filename,"ab+")

哦对的,是这个原因,第一次写二进制文件,忘了fopen还有二进制了,十分感谢!
页: [1]
查看完整版本: 视频流写入流文件的问题