我正在努力创建一个将由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-

最佳答案

边界已经是一个指针,&运算符是错误的。

fwrite(boundary, 1, strlen(boundary), stdout);

关于c - 为mjpeg流创建正确的标题和流信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49473438/

10-12 15:55