【问题标题】:Changing video content type (mime type) in CDN in drupal 7在 drupal 7 中更改 CDN 中的视频内容类型(mime 类型)
【发布时间】:2014-03-17 20:18:09
【问题描述】:

我正在使用媒体模块将媒体保存在 CDN 中。要播放视频,我们在 Drupal 7 中使用 jwplayer。Jwplayer 在 IE 中抛出错误,如果视频不是 content type [mime type] *video/mp4*。我已将现有的 CDN 视频 mime 类型从 application/octet-stream 更改为 video/mp4

现在上传/保存到 cdn 的任何 mp4 视频都应该只是 video/mp4 mime 类型,但是当我在媒体模块中上传 mp4 视频时,它会以 mime 类型 application/octet 保存在 CDN 中-stream,如何将上传的mime type [content type] 更改为video/mp4

CDN module code 

function CDNtransfer_content($source,$destination)  {

        $s3=_CDN_transfer_load();

        $up_bucket="cdn.example.com";

        $uploadOk=null;

        $expires=date('D, d M Y H:i:s O', strtotime('+10 year'));

        $headers=array('Content-Type' => 'video/mp4', 'Expires' => $expires);

        if($destination)
        {
                        $up_state=$s3->putObject($up_bucket, $destination, $source, 'true', $headers);

                        if($s3->objectExists($up_bucket, $destination)) {
                            $uploadOk =1;
                        }
                        else {
                            $uploadOk ="Error: File Not Uploaded Correctly. Please try again.";
                        }
        }
        return $uploadOk;
}

即使设置上面的标题似乎也不起作用!不知道为什么??

我们在 drupal 中使用 s3 php sdk 2 aws stand alone class 和我们的自定义模块。

在上传 mp4 视频时,如何在 Drupal 7 媒体模块中将 mime type[content type] 更改为 video/mp4

【问题讨论】:

    标签: .htaccess amazon-web-services drupal-7 cdn jwplayer


    【解决方案1】:

    找到答案:

    1) 正如 Ethan 所说,“MIME-TYPE 是服务器端设置。您可以要求您的托管服务提供商为您添加 MP4 MIME-TYPE。

    或者,您可以将 .htaccess 文件添加到您上传的存储目录”。

    添加 MP4 MIME-TYPE 的示例 .htaccess 文件是:

    <IfModule mod_rewrite.c>
      AddType video/mp4 .mp4
    </IfModule>"
    

    来源:Need to Change Video Content Type to video/mp4 so it plays in IE

    但是由于某种原因这对我不起作用

    2) 我对我在 drupal 模块中用于 CDN 上传的核心类文件进行了更改 我在我的 class.s3.php 文件中进行了更改 -> 在 mime_type[] 数组中,并且还使用 putObject() 函数进行了交叉检查。

    **

    mime 类型的设置总是在编码端完成,而不是在 AWS S3 中 bucket,我们需要使用 AWS PHP Class 文件或 sdk 来做 在 mime 类型中进行操作或在核心类中进行必要的更改 文件(例如 class.s3.php )

    ** 详情请查看find-mime-type-of-file-or-url-using-php-for-all-file-format

    第二个答案对我有用:)

    【讨论】:

      【解决方案2】:

      MIME-TYPE 是服务器端设置。您可以要求您的托管服务提供商为您添加 MP4 MIME-TYPE。

      或者,您可以将 .htaccess 文件添加到您上传的存储目录中。

      添加 MP4 MIME-TYPE 的示例 .htaccess 文件是:

      <IfModule mod_rewrite.c>
        AddType video/mp4 .mp4
      </IfModule>
      

      如果您无法正确添加 MIME TYPE,您可以使用的一种解决方法是强制 JW 播放器作为 Flash 运行,这对 MIME-TYPE 不那么严格,通过将此行添加到播放器的嵌入代码:

      primary: 'flash',
      

      如果这有帮助,请告诉我!

      【讨论】:

      • 我正在和我的团队一起检查这个......我在这里发现了类似的东西stackoverflow.com/a/10040559/1877909我们没有这样的选择吗??
      • 您是否将文件存储在 blob 上?
      • 我在 .htaccess 文件中进行了更改,但似乎不适用于 CDN。我发现这两个链接有一些类似的问题但没有解决方案 --> stackoverflow.com/questions/9090708/… ..... @ 987654323@
      • 另外,如果您需要在平板电脑中使用,您的第二个解决方案仅适用于浏览器,它将再次产生问题...@ethan:是否有任何其他解决方法...或解决方案...我确定这是已知问题...其他客户如何将 jwplayer 与 CDN 一起用于 IE 浏览器
      • 是的,这就是为什么你需要设置 MIME TYPE 来完全解决这个问题。将 flash 设置为主要只是掩盖了问题,但并没有解决手头的真正问题。
      猜你喜欢
      • 2013-09-05
      • 2014-11-17
      • 2012-09-09
      • 2015-07-01
      • 2018-07-19
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      相关资源
      最近更新 更多