是否可以剪切部分视频并仅使用html5&amp ;; JS

时间:2017-10-06 07:48:49

标签: javascript html5 video blob filereader

我使用Filereader读取本地视频文件(mp4),因此我可以在视频标签中显示它。

我需要剪切部分mp4文件(即5到10秒)并将其上传到服务器上。

我当前的解决方案:我使用“from”和“to”参数在服务器上上传整个视频文件,在服务器上用ffmpeg剪切,上传到s3并返回url视频。

也许只有JS / HTML可能吗?我找到了Blob.slice方法,但我不知道如何使用它来剪切视频部分。

谢谢!

1 个答案:

答案 0 :(得分:2)

mp4视频文件由“原子”组成,它们就像文件中的信息块或数据。

它们包含有关电影中曲目的标题和元数据(音频,视频,字幕等)以及媒体数据本身。

这些概念很简单,但是当你看一个mp4文件时,它就非常复杂 - 这里有一个很好的例子来自苹果开发者网站(https://developer.apple.com/library/content/documentation/QuickTime/RM/Fundamentals/QTOverview/QTOverview_Document/QuickTimeOverview.html):

enter image description here

如果你通过简单地从文件中的某个点获取字节到某个其他点来获取mp4文件的“切片”,你可以看到你将缺少标题信息等,这取决于你从哪里开始,也将大多数可能从“原子”中间开始。

当你想剪切部分视频时,像ffmpeg这样的工具会努力提取和重构文件。

有一些项目在bowser中运行ffmpeg,但我不确定它们是多么实用或被采用 - 无论如何它似乎很受欢迎: