1

我有一个大约 100 Mb 的视频文件,我已将其分成 35Mb、35Mb、30Mb 的 3 部分。我已经完成的步骤,

  1. 我已经调用了start_large_file并得到了 fileId。
  2. 使用upload_part成功上传了所有视频片段,并提供了fileId、part_number、sha1、内容长度和input_stream。
  3. 最后使用所有部分的 fileId 和 sha1 数组调用了finish_large_file API。API 给出了成功的响应,并且操作等于上传。

现在,当我点击合并文件 URL 时,视频持续时间等于第 1 部分的持续时间,但大小等于 100Mb。所以问题在于合并的视频持续时间。视频时长应等于所有部分的总和。

4

1 回答 1

1

使用 FFmpeg 分割视频文件会产生多个较短的视频,每个视频都有自己的标题,其中包含视频的长度以及其他元数据。当部分重新组合时,播放器将查看文件开头的标题以获取视频长度。它不知道第一部分之后还有其他内容。

如果您使用的是 Linux 或 Mac,则可以使用该split命令,如下所示:

split -b 35M my_video.mp4 video_parts_

这将产生三个输出文件:

video_parts_aa - 35MB
video_parts_ab - 35MB
video_parts_ac - 30MB

这些是您应该上传的文件(按顺序!)。当它们重新组合时,结果将与原始文件相同。

在 Windows 上执行此操作的最简单方法似乎是通过Cygwinsplit获取命令。

于 2022-02-18T20:38:27.500 回答