我正在为一家广告制作公司设计一个网站,希望能够上传位置侦察和投放视频。我已经找到了如何从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代码将文件写入文件系统,但这是我希望避免的数据重复,如果可能的话......
谢谢,
中号
答案 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&image=poster.jpg" name="flashvars">
<embed
width="320"
height="240"
flashvars="file=video.mp4&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/这样的服务来完成繁重的工作(注意,我没有使用过他们的服务,我不知道是否有办法让它与非实时流一起工作)