整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          HTML5 實(shí)現(xiàn)視頻播放 放大縮小(帶有源碼)

          在越來越多用到HTML5,用HTML做的頁(yè)面很炫,有些功能也很容易實(shí)現(xiàn)了。比如HTML5實(shí)現(xiàn)視頻音頻播放。

          HTML5 將成為 HTML、XHTML 以及 HTML DOM 的新標(biāo)準(zhǔn)。

          HTML5的新特性:

          • 用于繪畫的 canvas 元素

          • 用于媒介回放的 video 和 audio 元素

          • 對(duì)本地離線存儲(chǔ)的更好的支持

          • 新的特殊內(nèi)容元素,比如 article、footer、header、nav、section

          • 新的表單控件,比如 calendar、date、time、email、url、search

          瀏覽器支持

          最新版本的 Safari、Chrome、Firefox 以及 Opera 支持某些 HTML5 特性。Internet Explorer 9 將支持某些 HTML5 特性。

          視頻格式

          當(dāng)前,video 元素支持三種視頻格式:

          格式IEFirefoxOperaChromeSafari
          OggNo3.5+10.5+5.0+No
          MPEG 49.0+NoNo5.0+3.0+
          WebMNo4.0+10.6+6.0+No

          Ogg = 帶有 Theora 視頻編碼和 Vorbis 音頻編碼的 Ogg 文件

          MPEG4 = 帶有 H.264 視頻編碼和 AAC 音頻編碼的 MPEG 4 文件

          WebM = 帶有 VP8 視頻編碼和 Vorbis 音頻編碼的 WebM 文件


          實(shí)例源碼:

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="UTF-8">

          <title>視頻播放</title>

          </head>

          <body>

          <div style="text-align:center;">

          <button onclick="playPause()">播放/暫停</button>

          <button onclick="makeBig()">大</button>

          <button onclick="makeNormal()">中</button>

          <button onclick="makeSmall()">小</button>

          <br />

          <video id="video1" width="420" style="margin-top:15px;">

          <source src="/項(xiàng)目名字/upload/Video_1509549323159.mp4" type="video/mp4" />

          </video>

          </div>

          <script type="text/javascript">

          var myVideo=document.getElementById("video1");

          //播放暫停

          function playPause()

          {

          if (myVideo.paused)

          myVideo.play();

          else

          myVideo.pause();

          }

          //視頻放大

          function makeBig()

          {

          myVideo.width=560;

          }

          //視頻中等

          function makeSmall()

          {

          myVideo.width=320;

          }

          //視頻縮小

          function makeNormal()

          {

          myVideo.width=420;

          }

          </script>

          </body>

          </html>

          實(shí)現(xiàn)的效果:

          PS:注意一下那個(gè)src地址:一定得是在項(xiàng)目里,如果是電腦里的絕對(duì)路徑是不行的。

          新手上路,希望大家多多支持,多多關(guān)注,希望能夠在頭條的路上越走越遠(yuǎn)。

          計(jì)思路

          定位動(dòng)畫我們?cè)谥耙呀?jīng)實(shí)現(xiàn)了。那么這里只要考慮如何實(shí)現(xiàn)放大動(dòng)畫,最后將兩者結(jié)合起來就好。從后端拿到的返回值是一個(gè)固定長(zhǎng)度的數(shù)組,所以這里還是用 div 利用 flex 布局將圖片平鋪展示,利用 CSS transform 進(jìn)行位置移動(dòng)和縮放。

          接下來就是如何計(jì)算出每個(gè) div 的位移。DOM 元素的位移主要關(guān)注左上角頂點(diǎn)的位移。針對(duì)這個(gè)需求可以畫出如下草圖。外層 div 為 container,內(nèi)層 div 為 inner。


          從上圖可以看到,每個(gè) div 的位移即 center.left - inner.left, center.top - inner.top. container 的中心點(diǎn):

          const containerCenterX = containerRect.left + containerRect.width / 2;
          const containerCenterY = containerRect.top + containerRect.height / 2;

          inner 移動(dòng)的偏移量:

          // 讓 inner 移到 container 的正中間
          const offsetX = containerCenterX - itemRect.width / 2 - itemRect.left;
          const offsetY = containerCenterY - itemRect.height / 2 - itemRect.top;

          最后將方位動(dòng)畫的 div 疊在 inner 上面即可。

          代碼實(shí)現(xiàn)和 Demo 演示

          梳理清思路之后,就可以實(shí)現(xiàn)代碼了。Demo 已經(jīng)放在 CodeSandbox 上了。其中最主要的還是位移計(jì)算的邏輯。下面是Demo地址,也可以在我的博客上看到 Demo。 Demo 地址:codesandbox.io/p/devbox/si…

          布局部分代碼:

            <div class="container" ref="container">
              <div
                v-for="(image, index) in imageList"
                :key="index"
                class="wrapper"
                ref="imageElList"
                :style="{ opacity: image.active ? 1 : 0.6 }"
                @click="toggleActiveImage(index)"
              >
                <img :src="image.src" class="image" />
                <direction
                  ref="directionElList"
                  class="direction"
                  :style="{ display: image.active ? 'block' : 'none' }"
                  :pinPosition="selectedDirection"
                />
              </div>
            </div>

          數(shù)據(jù)結(jié)構(gòu)部分:

          export const imageDemos = [
            {
              name: "image-1",
              src: "https://images.adsttc.com/media/images/564c/8b23/e58e/ce4d/7300/01c1/newsletter/01.jpg?1447856922",
              active: false,
            },
            {
              name: "image-2",
              src: "https://i.pinimg.com/550x/65/a9/10/65a91018534fc59b675150fc432ccc41.jpg",
              active: false,
            },
            {
              name: "image-3",
              src: "https://1.bp.blogspot.com/-PcYuV8FVZmQ/VXWy7y-QjDI/AAAAAAABewE/La-BpNsCsY0/s1600/mapa-grande1.jpg",
              active: false,
            },
            {
              name: "image-4",
              src: "https://image2.sina.com.cn/gm/zhuanqu/sephiroth/rwjs/fomalhaut_b.gif",
              active: false,
            },
            {
              name: "image-5",
              src: "https://gd-hbimg.huaban.com/f0c7a577ed51f171967cbd3c1b21e90361b6924b1594b7-yrOBDd",
              active: false,
            },
          ];

          偏移量計(jì)算部分代碼:

          const showActiveImage = (imageEl) => {
            const containerEl = container.value;
          
            const containerRect = containerEl!.getBoundingClientRect();
            const itemRect = imageEl!.getBoundingClientRect();
          
            const containerCenterX = containerRect.left + containerRect.width / 2;
            const containerCenterY = containerRect.top + containerRect.height / 2;
          
            const offsetX = containerCenterX - itemRect.width / 2 - itemRect.left;
            const offsetY = containerCenterY - itemRect.height / 2 - itemRect.top;
          
            imageEl!.style.transform = `translate(${offsetX}px, ${offsetY}px) scale(1.2)`;
            imageEl!.style.zIndex = 100;
          };

          拓展

          這次的需求也可以用于展示動(dòng)畫。比如產(chǎn)品展示或者局部細(xì)節(jié)的展示。根據(jù)不同的需求結(jié)合不同的動(dòng)畫,可以讓我們的頁(yè)面變得更加酷炫。

          opaz Video AI for Mac是一款專業(yè)的AI視頻無損放大軟件,topaz video ai mac版使用時(shí)間信息有效提高視頻質(zhì)量和細(xì)節(jié),從而達(dá)到最好的視頻放大、去隔行、降噪和還原效果,另外topaz video enhance ai mac版允許通過片段選擇、處理模型和尺寸比率選項(xiàng)來自定義視頻輸出。Topaz Video AI提供了幾個(gè)功能,包括放大、去噪、銳化和穩(wěn)定。它可以將低分辨率視頻升級(jí)到更高的分辨率,同時(shí)保留細(xì)節(jié)并減少偽影。去噪功能有助于減少視頻中的噪聲和顆粒,從而獲得更干凈、更平滑的畫面。銳化工具增強(qiáng)了視頻的清晰度和清晰度,使其看起來更加詳細(xì)和清晰。穩(wěn)定功能有助于減少相機(jī)抖動(dòng)和抖動(dòng),從而獲得更流暢、更專業(yè)的鏡頭。

          https://mac.macxz.com/mac/182833.html?id=MTY4MTYy

          Topaz Video Enhance AI for Mac官方介紹

          Topaz Video Enhance AI使用最新的深度學(xué)習(xí)技術(shù),通過使用時(shí)間信息自然提高視頻質(zhì)量和細(xì)節(jié)。試試看一下視頻放大,去噪,去隔行和還原方面令人improvements目結(jié)舌的改進(jìn)。

          topaz video enhance ai mac版功能特點(diǎn)

          升級(jí)

          通過從多個(gè)幀中收集細(xì)節(jié)來提高***視頻的分辨率。將SD升級(jí)到HD,將HD升級(jí)到4k或8k,同時(shí)添加清晰自然的視頻細(xì)節(jié)。

          去噪

          在恢復(fù)視頻中***細(xì)節(jié)的同時(shí)消除雜訊和顆粒感。最小化由逐幀降噪方法引起的閃爍和其他時(shí)間偽像。

          去隔行

          使用深度學(xué)習(xí)將隔行視頻轉(zhuǎn)換為逐行視頻,同時(shí)保留圖像清晰度。與傳統(tǒng)的去隔行掃描相比,顯著減少了視覺偽影。

          https://mac.macxz.com/mac/182833.html?id=MTY4MTYy

          恢復(fù)

          自然還原舊視頻,而無需添加視覺效果。恢復(fù)***的細(xì)節(jié)并從舊的或降級(jí)的源中刪除壓縮偽像。

          運(yùn)動(dòng)會(huì)放大升級(jí)的缺陷。為了使它起作用,您必須以某種方式智能地跨框架攜帶細(xì)節(jié)……而這正是他們所做的。

          從多個(gè)幀獲得更好的視頻質(zhì)量

          與您一次放大一幀相比,Topaz Video Enhance AI專門使用時(shí)間信息來創(chuàng)建更好的視頻增強(qiáng)結(jié)果。

          更少的運(yùn)動(dòng)偽影

          其他視頻放大技術(shù)通常會(huì)因相鄰幀中的不同處理而產(chǎn)生“閃爍”或“閃爍”效果。VEAI經(jīng)過培訓(xùn)可顯著減少此類偽影。

          恢復(fù)視頻詳細(xì)信息

          VEAI經(jīng)過培訓(xùn),可以將***的細(xì)節(jié)注入到您的視頻中,這些細(xì)節(jié)是從多個(gè)相鄰幀中的附加信息得出的。

          獲得更自然的結(jié)果

          傳統(tǒng)的升頻通常會(huì)導(dǎo)致這種情況,盡管VEAI中也確實(shí)存在視覺偽影,但從多個(gè)幀派生的信息可以緩解這些偽影。

          接受過視頻培訓(xùn)

          VEAI僅接受視頻剪輯而非靜態(tài)圖像的培訓(xùn)。(提高結(jié)果值得增加收集數(shù)據(jù)集的工作量!)

          非常推薦VEAI-對(duì)于老式電視節(jié)目,它會(huì)獲得很好的效果,而在數(shù)字家庭視頻和素材上,它的效果也非常好。

          使用您現(xiàn)有的工作流程

          Video Enhance AI是適用于Mac和Windows的獨(dú)立軟件,這意味著它可以使用您現(xiàn)有的硬件直接處理視頻,而不是將工作卸載到遠(yuǎn)程服務(wù)器。與基于服務(wù)器的升級(jí)相比,這使其更具成本效益,更快且更好地集成到您的工作流中。

          針對(duì)您的硬件進(jìn)行了優(yōu)化

          我們直接與不同的硬件制造商合作,以確保軟件在您的計(jì)算機(jī)上盡快運(yùn)行。

          便捷的工作流程

          輕松轉(zhuǎn)換和合并多個(gè)視頻,從SD到HD,HD到4k等。包括導(dǎo)出預(yù)設(shè)和批處理。

          靈活的進(jìn)出口

          支持常見的視頻文件類型和圖像序列作為輸入,并直接導(dǎo)出到mp4,mov或圖像序列。

          批量處理

          讓視頻增強(qiáng)AI在您的視頻排隊(duì)等候的情況下通宵運(yùn)行,并在早上返回以獲取增強(qiáng)的素材。

          在將SD轉(zhuǎn)換為HD方面做得非常出色,這是我無法用Final Cut and Resolve復(fù)制的方式。它帶來了細(xì)節(jié),并且給人留下深刻的印象,給我留下了深刻的印象。


          主站蜘蛛池模板: 亚洲av无码不卡一区二区三区| 免费看无码自慰一区二区 | 日韩一区二区在线免费观看| 人妻互换精品一区二区| 国内精品视频一区二区八戒| 日韩精品一区二区三区中文字幕 | 亚洲一区二区三区高清视频| 另类ts人妖一区二区三区| 一区二区三区美女视频| 亚洲一区二区三区深夜天堂| 亚洲一区视频在线播放| 深田咏美AV一区二区三区| 无码乱人伦一区二区亚洲一| 国产精品亚洲综合一区在线观看 | 中文字幕一区二区精品区| 无码国产亚洲日韩国精品视频一区二区三区| 日韩精品一区二区三区视频| 亚洲日韩AV无码一区二区三区人 | 国产丝袜无码一区二区三区视频| 日韩精品电影一区| 偷拍激情视频一区二区三区| 国产成人一区二区三区在线观看| 综合一区自拍亚洲综合图区| 亚洲综合无码一区二区痴汉| 精品无码AV一区二区三区不卡| 国产精品无码一区二区三级| 亚洲综合无码一区二区痴汉| 亚洲一区二区三区在线观看精品中文| 日本一区视频在线播放| 国产一区二区三区在线看片 | 久久国产精品免费一区| 香蕉免费看一区二区三区| 国产精品无码不卡一区二区三区| 日韩精品无码久久一区二区三| 成人一区二区三区视频在线观看| 成人区人妻精品一区二区三区| 国产一区二区好的精华液| 福利一区福利二区| 台湾无码一区二区| 亚洲熟女综合色一区二区三区| 精品国产一区二区三区香蕉事|