在 drupal 7 中更改 CDN 中的视频内容类型(mime 类型)

Posted

技术标签:

【中文标题】在 drupal 7 中更改 CDN 中的视频内容类型(mime 类型)【英文标题】:Changing video content type (mime type) in CDN in drupal 7 【发布时间】: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

【问题讨论】:

【参考方案1】:

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',

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

【讨论】:

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

找到答案:

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

第二个答案对我有用:)

【讨论】:

以上是关于在 drupal 7 中更改 CDN 中的视频内容类型(mime 类型)的主要内容,如果未能解决你的问题,请参考以下文章

在 Drupal 7 公开视图下拉选择器过滤器中更改默认“-Any-”

如何在 Drupal 7 中的节点页面上显示分类内容

在Drupal 7中的页面之间传递变量

如何在 Drupal 7 Search API 模块中将内容实体标记为脏

在 Drupal 7 中更改寻呼机格式

在 Drupal 7 中更改主题的 drush 命令是啥?