MSE H265 支持调查
生活随笔
收集整理的這篇文章主要介紹了
MSE H265 支持调查
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MSE api 經常用于瀏覽器視頻播放中,一般用來將H264 等編碼的視頻打包成fmp4,然后喂給video 標簽實現流媒體播放。于是猜想既然video 標簽能直接支持播放的,MSE 理論上也能進行流式播放,那么H265 編碼的視頻流是不是也能通過MSE 播放呢?
答案是肯定的!但悲催的是chrome 瀏覽器等不支持H265 編碼,國內支持H.265 的瀏覽器只有360 安全/極速瀏覽器 桌面端,QQ/微信 手機端內置瀏覽器 ,也就是說小程序好歹是用的。以下是我的測試代碼(摘抄自MDN ,需要起一個http 服務,mp4文件需要是fmp4格式)。
<!DOCTYPE html> <html><head><meta charset="utf-8"/></head><body><video controls></video><script>var video = document.querySelector('video');var assetURL = 'frag_bunny.mp4';assetURL = "fragment.mp4";// Need to be specific for Blink regarding codecs// ./mp4info frag_bunny.mp4 | grep Codecvar mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';mimeCodec = 'video/mp4; codecs="hvc1.2.4.H123.B0"';if ('MediaSource' in window && MediaSource.isTypeSupported(mimeCodec)) {var mediaSource = new MediaSource;//console.log(mediaSource.readyState); // closedvideo.src = URL.createObjectURL(mediaSource);mediaSource.addEventListener('sourceopen', sourceOpen);} else {alert("不支持h265解碼:" + mimeCodec);console.error('Unsupported MIME type or codec: ', mimeCodec);}function sourceOpen (_) {//console.log(this.readyState); // openvar mediaSource = this;var sourceBuffer = mediaSource.addSourceBuffer(mimeCodec);fetchAB(assetURL, function (buf) {sourceBuffer.addEventListener('updateend', function (_) {mediaSource.endOfStream();video.play();//console.log(mediaSource.readyState); // ended});sourceBuffer.appendBuffer(buf);});};function fetchAB (url, cb) {console.log(url);var xhr = new XMLHttpRequest;xhr.open('get', url);xhr.responseType = 'arraybuffer';xhr.onload = function () {cb(xhr.response);};xhr.send();};</script></body> </html>? ? 更簡單的辦法是在這個網站直接測試
Media Capabilities | Axinom Media Toolshttps://tools.axinom.com/capabilities/media?cd=h265&h265-se=hev1,hev2,hvc1,hvc2&h265-p=m
總結
以上是生活随笔為你收集整理的MSE H265 支持调查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++程序员发展方向
- 下一篇: 飞控中加速度计数据fft分析