Live555 TSX 文件索引
Live555 TSX file indexing
我正在查看 Live555 媒体服务器。它有一个用于 "index" 传输流视频的可执行文件,其名称/用途如下:
MPEG2TransportStreamIndexer video.ts
因此,如果视频名为 TransportStreamVideo.ts
,则索引器会创建一个名为 TransportStreamVideo.tsx
的文件。注意与视频文件相同的名称只是添加了一个 'x' 或者扩展名是 ".tsx
我知道这是为了 'trick play' 但我想知道它在内部是如何工作的。
所以我的问题是:Live555如何将'.ts'文件和'.tsx'文件一起使用?
是否生成了一个全新的流发送出去显示在客户端视频显示器上?
如果您查看文件 DynamicRTSPServer.cpp
中 live555MediaServer
的代码,您将看到会话是这样创建的:
} 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 文件不是新流,它是传输流文件的索引。
我正在查看 Live555 媒体服务器。它有一个用于 "index" 传输流视频的可执行文件,其名称/用途如下:
MPEG2TransportStreamIndexer video.ts
因此,如果视频名为 TransportStreamVideo.ts
,则索引器会创建一个名为 TransportStreamVideo.tsx
的文件。注意与视频文件相同的名称只是添加了一个 'x' 或者扩展名是 ".tsx
我知道这是为了 'trick play' 但我想知道它在内部是如何工作的。
所以我的问题是:Live555如何将'.ts'文件和'.tsx'文件一起使用?
是否生成了一个全新的流发送出去显示在客户端视频显示器上?
如果您查看文件 DynamicRTSPServer.cpp
中 live555MediaServer
的代码,您将看到会话是这样创建的:
} 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 文件不是新流,它是传输流文件的索引。