【问题标题】:FFMPEG commands in JavaScriptJavaScript 中的 FFMPEG 命令
【发布时间】:2018-06-24 10:08:00
【问题描述】:

是否可以使用如下命令:ffmpeg -i video_1920.mp4 -vf scale=640:360 video_640.mp4 -hide_banner 在纯 JavaScript 中降低视频的分辨率。例如,我有一个下拉菜单,其中有 标签,所以我想通过单击带有 JS 的菜单超链接来选择视频质量。如何正确实施,请帮助。

【问题讨论】:

  • 您不应该对结果描述提出问题。展示您尝试过的内容以及失败的地方。
  • 我不知道如何用 JS 来实现它。没有太多在 windows 上使用 ffmpeg 和 js 的例子。
  • 你的意思是从服务器端js调用ffmpeg,比如node.js服务器?看看stackoverflow.com/questions/21921790/… 可能会有所帮助
  • 我只是问有没有可能写下那一行并将其转换为 JS 变量?比如 var ResolutionChange = ffmpeg -i video_1920.mp4 -vf scale=640:360 video_640.mp4 -hide_banner 使用它稍后。
  • 你希望这个 ffmpeg 会在哪里运行?在您的服务器上、PC 上还是移动设备上?

标签: javascript video ffmpeg


【解决方案1】:

如果您想在浏览器中完成工作,即在用户机器上而不是在您的服务器上,有许多项目在 Javascript 中提供 ffmpeg 包装器。这个是目前最流行的,我相信:

您需要进行一些测试 - 视频处理是计算密集型的,在浏览器中可能不适合您。

如果您想在服务器端进行,例如在基于 Javascript 的服务器(如节点)中,那么还有可用的库 - 例如:

【讨论】:

  • 不,我想在服务器上将 1 个高清视频分成 4 种分辨率格式,然后用 JS 在下拉菜单中选择该格式。但我不知道如何实现 =(
  • 您的意思是要实施 ABR 方法 - 即让视频播放器为网络条件选择最佳分辨率?还是您只想让用户手动完成?请注意,与大多数普通播放器一起使用的 ABR 方法将允许用户手动选择比特率。
  • 好吧,如果您想简单地做到这一点并且使用静态视频文件,那么您可以只拥有 4 个不同的视频文件并使用您的 JavaScript 将视频元素的“src”更改为用户选择。如果您想要 ABR 方法,那么如果您使用的是普通播放器(如 Shaka 或 dash.js),则无需执行任何操作,因为它们通常可以手动选择内置,但您需要注意的是服务器站点要复杂得多,您可能希望使用专用的流媒体服务器或流媒体服务。
  • 我只想要这个:当用户以高清格式加载他的视频文件时,我在 php 脚本中的 FFMPEG 插件会将高清分辨率分成几个较低的分辨率(所以我在服务器上有几个视频分辨率)。然后,当用户点击该视频并选择质量时,我会为他加载首选分辨率。我只是想实现它,但我不知道如何。对不起我的英语不好。
  • 嗯,你可以使用上面的服务器 ffmpeg 库并运行 ffmpeg 命令来自己创建每个比特率,然后将它们静态存储。您可以在此处查看一些示例命令:trac.ffmpeg.org/wiki/Creating%20multiple%20outputs。如果您确实想使用 ABR,那么这是使用 DASH 的一个很好的例子:bitmovin.com/mp4box-dash-content-generation-x264
猜你喜欢
  • 2017-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 2017-11-22
  • 2021-01-23
  • 1970-01-01
相关资源
最近更新 更多