我有一个 webm 格式的视频(如 video.webm,持续时间为 60 秒)
我想获取具有 http 标头范围(范围:100-200)的指定视频片段(即分割视频)。
换句话说:
我想获得一段视频(例如从第 4 秒到第 12 秒),但我不想使用任何像 ffmpeg 这样的转换器。我想向服务器发送 http 请求并获取指定范围的 webm 文件。
我可以使用这种方法(http 范围标头)吗?
谢谢
我有一个 webm 格式的视频(如 video.webm,持续时间为 60 秒)
我想获取具有 http 标头范围(范围:100-200)的指定视频片段(即分割视频)。
换句话说:
我想获得一段视频(例如从第 4 秒到第 12 秒),但我不想使用任何像 ffmpeg 这样的转换器。我想向服务器发送 http 请求并获取指定范围的 webm 文件。
我可以使用这种方法(http 范围标头)吗?
谢谢
由于源是非实时的,它应该有一个Cues
块。我认为一种方法是获取文件的开头以获取MetaSeek
将您指向该Cues
框的信息。
解析Cues
将给出CueTime
, CueTrack
,CueClusterPosition
等CueBlockNumber
。您可以使用这些信息来查找您需要的集群。
查看详细级别 3 中带有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 规格。是一个子集,请参阅此处WebM
的规格。
更新:我在这里找到了一个关于如何使用HTTP Range
请求下载集群的示例。它使用媒体源扩展工具将WebM
信息转储到JSON
.