Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的网站下载MP4而不是播放它们_Php_Video_Ffmpeg - Fatal编程技术网

Php 我的网站下载MP4而不是播放它们

Php 我的网站下载MP4而不是播放它们,php,video,ffmpeg,Php,Video,Ffmpeg,我有一个网站,我正在工作,我有一个上传/与mp4文件文件夹。当我使用XAMPP在本地测试此站点并单击指向MP4文件的链接时,Chrome会使用浏览器播放MP4,然后当我单击“上一步”按钮时,它会将我带回我的站点。当我将所有站点文件上载到Web服务器并单击相同的链接以查看mp4文件时,它会下载这些文件并使我保持在同一页面上。但是,我希望它执行与我在本地开发时相同的操作,并播放它们,而不是下载文件 有没有可能让托管在服务器上的Chrome play Mp4文件不下载?问题是服务器发送的内容类型错误。

我有一个网站,我正在工作,我有一个上传/与mp4文件文件夹。当我使用XAMPP在本地测试此站点并单击指向MP4文件的链接时,Chrome会使用浏览器播放MP4,然后当我单击“上一步”按钮时,它会将我带回我的站点。当我将所有站点文件上载到Web服务器并单击相同的链接以查看mp4文件时,它会下载这些文件并使我保持在同一页面上。但是,我希望它执行与我在本地开发时相同的操作,并播放它们,而不是下载文件


有没有可能让托管在服务器上的Chrome play Mp4文件不下载?

问题是服务器发送的内容类型错误。您可能应该为此内容使用
video/mp4
。否则,服务器通常默认为
application/octet-stream
,这是浏览器将保存到文件中的通用类型


我无法为您提供有关如何配置服务器的详细信息,因为您没有说明正在使用的服务器,但这是大多数服务器的基本配置任务。

是的,您可以使用HTML5视频标签,但IE8不支持。举个例子:

<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <object data="movie.mp4" width="320" height="240">
  </object>
</video> 

如果我是你,我会使用Jquery来播放mp4

例如:

$('.media').media();

<a class="media" href="sample.mov">My Quicktime Movie</a> 
<a class="media" href="sample.swf">My Flash Movie</a> 
<a class="media" href="sample.wma">My Audio File</a> 

<div class="media"> 
    <object codebase="http://www.apple.com/qtactivex/qtplugin.cab" 
        classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"> 
        <param name="src" value="sample.mov"> 
        <embed src="sample.mov" 
            pluginspage="http://www.apple.com/quicktime/download/"></embed> 
    </object> 
    <div>My Quicktime Movie</div> 
</div> 

<div class="media"> 
    <object codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7" 
        classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 
        type="application/x-oleobject"> 
        <param name="src" value="sample.swf"> 
        <embed src="sample.swf" 
            type="application/x-shockwave-flash" 
            pluginspage="http://www.adobe.com/go/getflashplayer"></embed> 
    </object> 
    <div>My Flash Movie</div> 
</div> 

<div class="media"> 
    <object codebase="http://www.apple.com/qtactivex/qtplugin.cab" 
        classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" 
        type="application/x-oleobject"> 
        <param name="url" value="sample.wma"> 
        <embed src="sample.wma" 
            type="application/x-mplayer2" 
            pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"></embed> 
    </object> 
    <div>My Audio File</div> 
</div> 
$('.media').media();
我的Quicktime电影
我的Flash电影
我的音频文件

查看此链接以获取插件是否正确。你需要研究一种叫做MIME类型的东西,它们告诉你的服务器如何处理不同类型的文件扩展名。听起来,本地XAMPP上已经启用了.mp4,所以只需在live server上设置它

在共享Apache/Linux web服务器上,您可以通过.htaccess文件管理这些内容,只需将以下行添加到.htaccess文件中即可:

AddType视频/mp4.mp4.m4v

AddType音频/mp4.m4a

在IIS/Windows服务器上,可以通过HTTP头>文件类型>MIME映射来管理这些文件

键入.mp4作为扩展名,键入视频/mpeg作为内容类型


如果您无法添加上述内容,因为您没有相应的管理权限,请咨询您的托管公司,或使用jquery或类似ivan建议的外部方法。

我将视频/mp4作为链接到服务器上视频的锚定标记的属性放在哪里?否,在您的服务器配置中,如果您可以帮助,请不要使用
.htaccess
来处理此类内容。编辑服务器的配置。通过使用
.htaccess
,服务器必须为每个请求重新解析这些内容。如果你只是编辑配置,它只会被解析一次,没有必要这么做。HTML5视频现在非常兼容,而且对于移动设备来说,它的兼容性比Flash要好得多。许多浏览器支持MP4.HTML5视频与这个问题无关,但却是一个有效的替代方案。