Live555 TSX 文件索引

Live555 TSX file indexing

我正在查看 Live555 媒体服务器。它有一个用于 "index" 传输流视频的可执行文件,其名称/用途如下:

MPEG2TransportStreamIndexer video.ts 

因此,如果视频名为 TransportStreamVideo.ts,则索引器会创建一个名为 TransportStreamVideo.tsx 的文件。注意与视频文件相同的名称只是添加了一个 'x' 或者扩展名是 ".tsx

我知道这是为了 'trick play' 但我想知道它在内部是如何工作的。

所以我的问题是:Live555如何将'.ts'文件和'.tsx'文件一起使用?

是否生成了一个全新的流发送出去显示在客户端视频显示器上?

如果您查看文件 DynamicRTSPServer.cpplive555MediaServer 的代码,您将看到会话是这样创建的:

  } else if (strcmp(extension, ".ts") == 0) {
    // Assumed to be a MPEG Transport Stream file:
    // Use an index file name that's the same as the TS file name, except with ".tsx":
    unsigned indexFileNameLen = strlen(fileName) + 2; // allow for trailing "x[=10=]"
    char* indexFileName = new char[indexFileNameLen];
    sprintf(indexFileName, "%sx", fileName);
    NEW_SMS("MPEG Transport Stream");
    sms->addSubsession(MPEG2TransportFileServerMediaSubsession::createNew(env, fileName, indexFileName, reuseSource));
    delete[] indexFileName;
  } 

MPEG2TransportFileServerMediaSubsession 对象使用 .ts 文件及其关联的 .tsx 索引。

tsx 文件不是新流,它是传输流文件的索引。