我正在努力创建一个将由VLC播放的流。我已经检查了我的流信息,每个帧都是一个有效的jpeg图像。
对于我做的流(在C中):
loop:
// jpg contains 150-200k image
// sPtr is content length
...
char boundary[100];
char sPtr[11];
sprintf(sPtr, "%i", ptr);
strcpy(boundary,"--myboundary\r\nContent-Type: image/jpeg\r\nContent-Length: ");
strcat(boundary, sPtr);
strcat(boundary, "\r\n\r\n");
fwrite(&boundary, 1, strlen(boundary), stdout);
fwrite(&jpg, 1, ptr, stdout);
sprintf(boundary, "%s", "\r\n");
fwrite(&boundary, 1, 2, stdout);
goto loop:
我得到的是图像的前几行,然后是绿色和闪烁。在将图像写入文件而不是stdout之后,我使用jpeginfo和jpegsnoop对图像进行了三倍检查,并且图像中没有错误。每张图片大小约为150-200k。
我用./test |启动c程序vlc -
答案 0 :(得分:0)
边界已经是一个指针,&操作员错了。
fwrite(boundary, 1, strlen(boundary), stdout);