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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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
Html mov或m4v视频嵌入(通过php从mysql数据库检索数据)_Html_Video_Embed - Fatal编程技术网

Html mov或m4v视频嵌入(通过php从mysql数据库检索数据)

Html mov或m4v视频嵌入(通过php从mysql数据库检索数据),html,video,embed,Html,Video,Embed,我正在为一家广告制作公司设计一个网站,该公司希望能够上传外景搜索和拍摄视频。我已经想出了如何将数据从sql中取出,并使用适当的标题进入浏览器 现在我的问题是——目前显示视频的最佳方式是什么。我需要它在iPhone、iPad、Safari和Firefox上工作。我一点也不在乎你 如果有帮助的话,我不介意限制他们只上传一种视频格式。意思是Quicktime仅限.mov或.m4v-任何有效的。不能使用Flash,因为涉及iPhone和iPad 我也没有问题,以不同的代码适应每个不同的浏览器。我只需要知

我正在为一家广告制作公司设计一个网站,该公司希望能够上传外景搜索和拍摄视频。我已经想出了如何将数据从sql中取出,并使用适当的标题进入浏览器

现在我的问题是——目前显示视频的最佳方式是什么。我需要它在iPhone、iPad、Safari和Firefox上工作。我一点也不在乎你

如果有帮助的话,我不介意限制他们只上传一种视频格式。意思是Quicktime仅限.mov或.m4v-任何有效的。不能使用Flash,因为涉及iPhone和iPad

我也没有问题,以不同的代码适应每个不同的浏览器。我只需要知道哪种方法最适合哪种平台/浏览器

编辑:

我已经知道如何在我关心的计算机浏览器(不包括MSIE)中显示数据库中的视频。现在我需要弄清楚iPhone。为了测试,我将文件放入服务器的文件系统中,然后通过html5视频标签从那里播放。因此,iPhone能够播放剪辑的格式。问题显然是将数据从mySQL传递到iPhone。。。当前,检索二进制数据并将其发送到浏览器的my php文件指定以下标题:

header("Content-length: $audioLength");  
header('Content-Range: bytes 0-'.$audioLength.'/'.$audioLength);  
header("Content-type: ".$mimeType);
其中$audioLength是上传时捕获的文件大小(以字节为单位)
$mimeType是浏览器在上载时报告的mime类型-这两个值都将与二进制数据一起传递到数据库中的retrieve_audio.php脚本

可能需要哪些其他标题?如何找出从文件系统获取文件与从数据库获取文件之间的区别

问题是否可能是iPhone在按下播放按钮之前无法检索数据?作为最后的手段,我可以让PHP代码将文件写入文件系统,但如果可能的话,我希望避免重复数据

谢谢

查看有关HTML5视频和不同格式的详细信息

简单的简短回答:Firefox4支持Ogg(Theora/Vorbis)和WebM;Safari(桌面和移动)支持MP4(H.264/AAC)。尝试使用HTML5
标记,如下所示:

<video width="320" height="240" controls>
    <source src="pr6.mp4"  type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
    <source src="pr6.webm" type='video/webm; codecs="vp8, vorbis"'>
    <source src="pr6.ogv"  type='video/ogg; codecs="theora, vorbis"'>
</video>
<!-- Safari and iOS -->
<video width="320" height="240" poster="poster.jpg" controls>
    <source src="video.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
</video>

<!-- Firefox / other -->
<object width="320" height="240" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
    <param value="player.swf">
    <param value="true" name="allowfullscreen">
    <param value="always" name="allowscriptaccess">
    <param value="file=video.mp4&amp;image=poster.jpg" name="flashvars">
    <embed
        width="320"
        height="240"
        flashvars="file=video.mp4&amp;image=poster.jpg"
        allowfullscreen="true"
        allowscriptaccess="always"
        src="player.swf"
        type="application/x-shockwave-flash"
    >
</object>

(上面链接的网站上的例子。说真的,这是一本非常好的读物,它还将告诉你如何确保你的视频在IE、Chrome等浏览器中工作。)

编辑如果您绝对只需要使用一种视频格式,那么最好的选择可能是MP4/M4V和H.264视频和AAC音频。Safari(桌面和移动)可以在
标签中播放,Firefox可以在Flash容器中播放。这并不理想,因为我认为您必须进行一些浏览器嗅探,以确保iOS和Firefox不使用Flash,但您需要这样的功能:

<video width="320" height="240" controls>
    <source src="pr6.mp4"  type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
    <source src="pr6.webm" type='video/webm; codecs="vp8, vorbis"'>
    <source src="pr6.ogv"  type='video/ogg; codecs="theora, vorbis"'>
</video>
<!-- Safari and iOS -->
<video width="320" height="240" poster="poster.jpg" controls>
    <source src="video.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
</video>

<!-- Firefox / other -->
<object width="320" height="240" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
    <param value="player.swf">
    <param value="true" name="allowfullscreen">
    <param value="always" name="allowscriptaccess">
    <param value="file=video.mp4&amp;image=poster.jpg" name="flashvars">
    <embed
        width="320"
        height="240"
        flashvars="file=video.mp4&amp;image=poster.jpg"
        allowfullscreen="true"
        allowscriptaccess="always"
        src="player.swf"
        type="application/x-shockwave-flash"
    >
</object>


即使你走这条路,我还是会阅读《深入HTML5》页面,了解更多关于要使用的适当编解码器、如何编码视频以及需要注意的各种问题的信息。

不幸的是,没有一种格式可以在如此广泛的设备上很好地工作。你需要将上传的任何格式转换成多种不同的格式。你可能想研究一个像做繁重工作的服务(注意,我没有使用过他们的服务,我不知道是否有办法让它与非实时流一起工作)。

OK-这是html5视频标签。我确信有很多方法可以将相同的片段嵌入到我感兴趣的浏览器中,因为客户端向我展示的示例是iWeb生成的页面。我将尝试对其进行反向工程。我不在乎走在最前沿——我只想让它在不使用不同视频格式的情况下工作。有了一种视频格式,你可能会想使用MP4/M4V中的H.264,并将其放在Firefox的Flash容器中。缺点是您需要进行浏览器嗅探。我用这方面的信息编辑了我的答案。实际上,Firefox似乎没有通过标签播放.mov和.m4v文件的问题。。。我只是在从数据库而不是服务器的文件系统检索数据时,在iPhone上回放时遇到了一个问题。请查看我对原始帖子的编辑…我不会首先将视频数据存储在数据库中。仅将有关视频的元数据放入数据库,并将实际视频数据存储在文件系统上。这样,Apache就可以使用它所有的花式技巧来高效地流式传输数据,以及处理字节范围等。但我不愿意这样做(不是我,客户机)。苹果的消费者级WYSIWYG应用程序iWeb能够做到这一点——乍一看,它们似乎在基于某种浏览器检测生成不同的代码——javascript生成的标签适用于我感兴趣的三种平台。