合并的大视频文件中的 Backblaze 视频持续时间问题

Backblaze video duration issue in the merged large video file

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

  1. 我调用了 start_large_file 并获得了文件 ID。
  2. 已使用 upload_part 成功上传所有视频部分,并提供了文件 ID、part_number、sha1、内容长度和 input_stream。
  3. 最后调用了 finish_large_file API 所有部分的 fileId 和 sha1 数组。 API 响应成功,动作等于上传。

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

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

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

split -b 35M my_video.mp4 video_parts_

这将产生三个输出文件:

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

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

在 Windows 上执行此操作的最简单方法似乎是通过 Cygwin.

获取 split 命令