查找指定段的 webm 视频的字节范围
Find bytes range of webm video for specified segment
我有一个 webm 格式的视频(比如 video.webm 时长是 60 秒)
我想获取具有 http header 范围(范围:100-200)的指定视频片段(即分割视频)。
换句话说:
我想获取一段视频(例如从第 4 秒到第 12 秒),但我不想使用任何转换器,如 ffmpeg。我想向服务器发送 http 请求并获取指定范围的 webm 文件。
我可以使用这种方法吗(http 范围 header)?
谢谢
由于源不是实时的,因此应该 有一个Cues
块。我认为一种方法是获取文件的开头以获取 MetaSeek
信息,该信息会将您指向 Cues
框。
解析 Cues
将得到 CueTime
、CueTrack
、CueClusterPosition
、CueBlockNumber
等。您可以使用这些信息来查找集群你需要。
查看详细级别为 mkvinfo 的文件,了解其组织方式 (mkvinfo -v -v -v input.webm
)。
示例输出:
+ Cues at 3441
| + Cue point at 3447
| + Cue time: 0.000s at 3449
| + Cue track positions at 3452
| + Cue track: 1 at 3454
| + Cue cluster position: 3911 at 3457
| + Cue point at 3461
| + Cue time: 0.600s at 3463
| + Cue track positions at 3467
| + Cue track: 1 at 3469
| + Cue cluster position: 3911 at 3472
| + Cue block number: 42 at 3476
| + Cue point at 3480
| + Cue time: 3.520s at 3482
| + Cue track positions at 3486
| + Cue track: 1 at 3488
| + Cue cluster position: 3911 at 3491
| + Cue block number: 241 at 3495
您还可以找到 Matroska 规范 here. WebM
is a subset, see the specs here。
更新:我发现 an example on how to use HTTP Range
request to download a cluster here. It uses the Media Source Extension Tools 将 WebM
信息转储到 JSON
。
我有一个 webm 格式的视频(比如 video.webm 时长是 60 秒)
我想获取具有 http header 范围(范围:100-200)的指定视频片段(即分割视频)。
换句话说:
我想获取一段视频(例如从第 4 秒到第 12 秒),但我不想使用任何转换器,如 ffmpeg。我想向服务器发送 http 请求并获取指定范围的 webm 文件。
我可以使用这种方法吗(http 范围 header)?
谢谢
由于源不是实时的,因此应该 有一个Cues
块。我认为一种方法是获取文件的开头以获取 MetaSeek
信息,该信息会将您指向 Cues
框。
解析 Cues
将得到 CueTime
、CueTrack
、CueClusterPosition
、CueBlockNumber
等。您可以使用这些信息来查找集群你需要。
查看详细级别为 mkvinfo 的文件,了解其组织方式 (mkvinfo -v -v -v input.webm
)。
示例输出:
+ Cues at 3441
| + Cue point at 3447
| + Cue time: 0.000s at 3449
| + Cue track positions at 3452
| + Cue track: 1 at 3454
| + Cue cluster position: 3911 at 3457
| + Cue point at 3461
| + Cue time: 0.600s at 3463
| + Cue track positions at 3467
| + Cue track: 1 at 3469
| + Cue cluster position: 3911 at 3472
| + Cue block number: 42 at 3476
| + Cue point at 3480
| + Cue time: 3.520s at 3482
| + Cue track positions at 3486
| + Cue track: 1 at 3488
| + Cue cluster position: 3911 at 3491
| + Cue block number: 241 at 3495
您还可以找到 Matroska 规范 here. WebM
is a subset, see the specs here。
更新:我发现 an example on how to use HTTP Range
request to download a cluster here. It uses the Media Source Extension Tools 将 WebM
信息转储到 JSON
。