已阅读

解决html5网页中video标签无法播放的方法

作者:admin      来源:未知      发布时间:2019-06-06 15:39

为什么我录制的MP4视频在本地可以播放但是使用html5的video多媒体播放标签不能正常播放只有一个进度条而不显示图像?

为了避免大家遇到同样的问题我在这里就给大家普及一下html5关于<video>标签的知识吧。

在使用html4协议网站时我们想要在网页上播放一个视频要不使用flash去播放,要么就是嵌入式页面来实现,对于html5来说这两种方法非常的不方便因为一个牛逼哄哄的<video>出现了,这个标签的功能就是让多媒体文件可以很方便的在网页中播放。

html中播放一个视频只需要一个标签:

<videosrc="http://sp.ntaotu.com/localhost-wordpress-phpstudy.mp4"controls="controls" width="500"height="300"></video>

代码虽然少了很多,但是功能却很健全,这就是html5的亮点之一吧!

关于<video>标签所支持的视频格式和编码:

MP4 = MPEG 4文件使用 H264 视频编解码器和AAC音频编解码器

WebM = WebM 文件使用 VP8 视频编解码器和 Vorbis 音频编解码器

Ogg = Ogg 文件使用 Theora 视频编解码器和 Vorbis音频编解码器

通过上面的信息我们会发现只有h264编码的MP4视频(MPEG-LA公司)、VP8编码的webm格式的视频(Google公司)和Theora编码的ogg格式的视频(iTouch开发)可以支持html5的<video>标签。

如果浏览器不支持video标签怎么办?

比如IE浏览器还有老版本的浏览器对html5的支持不太好,当用户用这些浏览器打开我们带有视频的网页怎么办呢?

我们可以把代码这样写:

<videosrc="http://sp.ntaotu.com/localhost-wordpress-phpstudy.mp4"controls="controls" width="500" height="300">您的浏览器不支持播放该视频!</video>

这样在不支持html5的浏览器中就会提示“您的浏览器不支持播放该视频!”啦!

关于video标签的扩展参数说明:

video 元素允许多个 source 元素。source 元素可以链接不同的视频文件。浏览器将使用第一个可识别的格式,这样我们只要多准备几个不同格式的视频就可以了。

用法:

1, <video width="500"height="250" controls="controls">

2, <source src="movie.ogg"type="video/ogg">

3 <source src="movie.mp4"type="video/mp4">

4,您的浏览器不支持此种视频格式。

5, </video>

1, autoplay :出现该属性意味着视频在就绪后将自动播放,用法:autoplay="autoplay"

2, controls :出现该属性意味着向用户显示控件,如播放按钮等,用法:controls="controls"

3, height:设置高度 width:设置宽度

4, loop:自动重播,用法:loop="loop"

5, preload:视频在页面加载时进行加载并预备播放,用法:preload="auto" - 当页面加载后载入整个视频;preload="meta"- 当页面加载后只载入元数据;preload="none" - 当页面加载后不载入视频。注意:若使用了autoplay,则忽略preload

6, src:要播放视频的url

mp4网页播放有声音无图像的解决办法:

关于网页播放mp4格式的视频,找了一些插件,这里推荐一下video.js

官方网址:http://www.videojs.com/

github :https://github.com/videojs/video.js/

demo:http://www.videojs.com/downloads/video-js-4.12.5.zip

使用方法:

①引入文件:指派flash播放的swf文件

<link href="//example.com/path/to/video-js.css"rel="stylesheet">

<script src="//example.com/path/to/video.js"></script>

<script>

videojs.options.flash.swf ="http://example.com/path/to/video-js.swf"

</script>

② 设置video参数(设置mp4视频地址)

<video id="example_video_1" class="video-jsvjs-default-skin"

controls preload="auto" width="640"height="264"

poster="http://video-js.zencoder.com/oceans-clip.png"

data-setup=‘{"example_option":true}‘>

<source src="http://video-js.zencoder.com/oceans-clip.mp4"type=‘video/mp4‘ />

<source src="http://video-js.zencoder.com/oceans-clip.webm"type=‘video/webm‘ />

<source src="http://video-js.zencoder.com/oceans-clip.ogv"type=‘video/ogg‘ />

<p class="vjs-no-js">To view this video please enableJavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/"target="_blank">supports HTML5 video</a></p>

</video>

使用demo里面的mp4视频源,播放一切正常,换上自己的mp4源发现只有声音并没有图像。这让我很为难。

想来想去这跟插件没关系,跟浏览器没有关系,跟自己视频源的格式编码有关系。

找了很多办法,尝试过swf播放,但是mp4转码成swf格式,失真太严重,导致视频很模糊,质量很糟糕。

下载了格式工厂,尝试着转换了很多格式,都不尽人意。

发现mp4的视频编码有三种:MPEG4(DivX),MPEG4(Xvid),AVC(H264),我使用格式工厂一个一个尝试。

最终发现转换成AVC(H264)编码,完美解决问题。

总结:网页播放mp4视频,出现有声音无图像问题,先使用格式工厂转换mp4->mp4格式,输出编码选择AVC(H264),然后在网页中代码调用,看是否解决问题。