【问题标题】:Uploading video, with PHP serverside formatting & encoding上传视频,使用 PHP 服务器端格式化和编码
【发布时间】:2011-12-18 10:38:26
【问题描述】:

我们目前已经开发了一个ExpressionEngine站点(php),并且正在使用付费的JWPlayer来显示客户端上传的视频。

目前我们遇到了一些问题,因为客户是:

  1. 以错误的尺寸上传视频
  2. 以 flv 或 mp4 格式随机上传视频

并且播放器在整个视频中出现多次停顿的情况非常糟糕 - 有时会在播放之前缓冲整个剪辑。

我知道 FFMPEG 可以安装在服务器端,但我不确定该怎么做,以及它如何在 ExpressionEngine 和 JWPlayer 之间进行交互。我也不确定格式 - 这种自动编码过程还可以裁剪/调整视频大小以适应网站上的播放器尺寸。

我们真的希望这些视频可以在所有浏览器和 iOS 设备上播放。

在适用的情况下,HQ 选项也很棒,但它只是一个不错的选择 - 因为我们首先要解决格式/编码问题。

任何帮助找出最佳流程以及我可能需要哪些工具将不胜感激。

【问题讨论】:

    标签: php video streaming ffmpeg jwplayer


    【解决方案1】:

    我多次发现不同 CMS 的视频转换能力受到限制,并且经常将视频格式限制为开发人员认为合适的格式,例如 FLV,现在对于视频交付来说已经过时了。

    您可以采用的一种方法是创建一个自定义脚本来处理客户端使用 FFmpeg 上传的视频,它实际上可以接受几乎任何视频格式,并生成正确的输出格式和尺寸,确保生成的视频将适合使用您的播放器进行网络播放。

    您面临的视频缓冲问题是因为视频文件没有准备好进行渐进式下载或伪流式传输,因此您的浏览器需要在开始播放之前下载整个视频。这可以通过诸如qt-faststart 用于 MP4 和 MOV 视频文件以及flvtool2 用于 FLV 文件的程序来解决。因此,您的脚本还需要使用这些工具优化编码视频。

    另外请注意,如果您使用 HTML5 视频播放器(浏览器原生或最近的 JWPlayer),那么您可以享受随机搜索视频文件而无需缓冲它们。

    如果不能从头开始,您可以研究像 tremendum transcoder 这样的商业解决方案,它也使用 FFmpeg 并且非常易于使用,但它可以满足您处理不同输入格式和方面的所有需求自动比率。

    我已经通过这种方式进行了一些设置,将 CMS 部分与视频处理部分分开,这让我省去了一些麻烦。

    【讨论】:

      【解决方案2】:

      我建议使用zencoder 之类的服务

      我过去曾使用过它们,无论我向它们投掷什么视频格式,它都能很好地工作。 (PS。我根本不隶属于他们)

      有一个 PHP API 有很多调整大小、质量和格式选项。上传视频后,您可以将其发送到 zencoder,他们会在一段时间后向您发送成功或失败的回复。

      他们可以将处理后的视频放在 Amazon S3 上或 FTP 到服务器。

      不过,你需要一个适用于 iOS 设备的 HTML5 播放器,除非 JWPlayer 自从我上次使用它以来已经取得了长足的进步。

      您可以让 zencoder 以 mp4 格式输出。然后你仍然只需要 JWPlayer/flash 的 mp4 和 iOS 的 HTML5 版本,只要你乐意为所有桌面浏览器使用 flash 就没有问题。

      就您遇到的缓冲问题而言 - 我发现为 JWPlayer(或您使用的任何播放器)使用 CDN 版本的 swf 会导致它在播放之前加载整个视频文件。自己托管即可轻松修复。

      【讨论】:

      • 嘿詹姆斯,我使用的是 zencoder,我需要问一些问题吗?
      猜你喜欢
      • 2017-03-03
      • 2014-10-17
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 2011-04-24
      • 1970-01-01
      相关资源
      最近更新 更多