html5的video标记,可以播放多种视频,什么mp4啦,mov啦,但不包括flv。flv与flash有关系,没前途,快完蛋了。但好像这个又跟直播啥的有关联(是一种直播协议),而且之前有一些视频文件是flv格式的,难道就傲娇的索性不支持了吗?
那么html5中,如何播放flv文件?不要想着用flash来播放,霸主chrome已经不支持了。
先说结论,可以播放,用bilili的开源项目flvjs就可以播放,不需要任何插件;但只能部分播放,不是所有的flv文件都能播放,只有H.264编码的才能播,什么vp6f格式不行。原来,flv视频文件,本身也有多种格式啊。
vp6是很老旧的编码了,H.264新一些。有关视频编码的知识,可以看这里:
视频编码简史:H.263/H.264/H.265和MPEG2/MPEG4以及VP9,H264优点
具体的H5播放代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script src="flv.min.js"></script>
<style>
body,center{
padding:0;
margin:0;
}
.v-container{
width:640px;
height:360px;
border:solid 1px red;
}
video{
width:100%;
height:100%;
}
</style>
</head>
<body>
<div class="v-container">
<video id="player1" muted autoplay="autoplay" preload="auto" controls="controls">
</video>
</div>
</body>
</html>
<script>
if (flvjs.isSupported()) {
var videoElement = document.getElementById('player1');
var flvPlayer = flvjs.createPlayer({
type: 'flv',
url: 'http://fed.dev.hzmantu.com/oa-project/bce0c613e364122715270faef1874251.flv'
});
flvPlayer.attachMediaElement(videoElement);
flvPlayer.load();
//flvPlayer.play();
}
</script>
至于部分不支持的flv,我实在找不到什么办法,只能是转换成其他格式。转换的话,不用下载什么转换器(要么收费,要么像病毒一样,给你装一大堆垃圾),用ffmpeg就好。
将 001.flv 转成 001.mp4。
ffmpeg -i f:\temp\temp\001.flv f:\temp\temp\001.mp4
ffmpeg真好用,还可以看视频文件的编码等信息:
ffmpeg -i f:\temp\temp\002.flv