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

时间:2011-05-14 23:41:43

标签: html5 video embed

我正在为一家广告制作公司设计一个网站,希望能够上传位置侦察和投放视频。我已经找到了如何从sql中获取数据并使用正确的标题进入浏览器。

现在我的问题是 - 目前显示视频的最佳方式是什么。我需要它才能在iPhone,iPad,Safari和Firefox上运行。我根本不关心IE。

如果有帮助的话,我不介意限制它们仅以一种视频格式上传。仅限Quicktime .mov或.m4v - 无论有效。无法使用Flash,因为涉及到iPhone和iPad。

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

编辑:

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

header("Content-length: $audioLength");  
header('Content-Range: bytes 0-'.$audioLength.'/'.$audioLength);  
header("Content-type: ".$mimeType);

其中$ audioLength是上传时捕获的文件大小(以字节为单位) $ mimeType是上传时浏览器报告的mime类型 - 两个值都与数据库一起传递给retrieve_audio.php脚本以及二进制数据。

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

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

谢谢,

中号

2 个答案:

答案 0 :(得分:2)

查看http://diveintohtml5.ep.io/video.html,了解有关HTML5视频和不同格式的精彩信息。

简化简答:Firefox 4支持Ogg(Theora / Vorbis)和WebM; Safari(桌面和移动)支持MP4(H.264 / AAC)。尝试使用HTML5 <video>标记,如下所示:

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

(上面链接的网站示例。说真的,这是一个非常好的阅读,它还会告诉你如何确保你的视频 在IE,Chrome等中工作。)

编辑如果您绝对只需要使用一种视频格式,最好的选择可能是带有H.264视频和AAC音频的MP4 / M4V。 Safari(桌面和移动设备)可以在<video>标签中播放,Firefox可以在Flash容器中播放。它并不理想,因为我认为你必须做一些浏览器嗅探以确保iOS不会获得Flash和Firefox,但你会想要这样的东西:

<!-- 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>

即使你走这条路,我仍然会阅读Dive Into HTML5页面,了解有关使用的相应编解码器,如何编码视频以及需要注意的各种问题的更多信息。

答案 1 :(得分:0)

不幸的是,没有一种格式适用于各种各样的设备。您需要采用上传的任何格式并将其转换为多种不同的格式。您可能希望查看像http://www.livetranscoding.com/这样的服务来完成繁重的工作(注意,我没有使用过他们的服务,我不知道是否有办法让它与非实时流一起工作)