如何使用Video.js在影片中新增字幕?


在本教程中,我們將學習如何使用video.js庫向影片新增字幕。字幕,通常稱為隱藏式字幕,是在影片底部顯示的語音或其他文字行。向影片新增字幕可以真正增強聽力障礙或聽力受損觀眾的觀看體驗。

使用video.js新增字幕非常簡單,此外,video.js允許跨瀏覽器實現字幕。

讓我們在影片的下一部分學習如何使用video.js向我們的影片新增字幕。

如何使用Video.js在影片中新增字幕?

字幕,也稱為文字軌道,是HTML5的一項功能,允許使用者檢視時間觸發的文字。

注意 要建立定時文字軌道或字幕檔案,您需要一個WebVTT格式的文字檔案。通常,這些檔案包含帶有特定開始時間和結束時間的文字行。準備好影片的字幕檔案後,您可以將其新增到影片播放器中。

為了向video.js播放器新增時間觸發的文字軌道,我們將使用<track>標籤。此標籤也將成為<video>元素的子元素,就像<source>標籤一樣。

示例

使用以下程式碼向影片播放器新增文字軌道:

<html> <head> <link href="https://vjs.zencdn.net/7.19.2/video-js.css" rel="stylesheet" /> </head> <body> <video id="my-video" class="video-js vjs-default-skin" controls preload="auto" width="560" height="300" data-setup='{}' > <source src="https://tutorialspoint.tw/videos/sample1080p.mp4" type="video/mp4" size="1080" > <track kind="subtitles" src="https://tutorialspoint.tw/videos/captions.vtt" srclang="en" label="English" default > </video> <script src="https://tutorialspoint.tw/videos/video1.mp4"></script> </body> </html>

在上面的程式碼片段中,我們使用<video-js>類建立了一個<video>元素。然後,我們在<source>標籤中添加了影片的路徑。

在其下方,<track>標籤的“kind”屬性設定為“subtitles”用於匯入字幕檔案。軌道的源語言(srclang)為英語(en),此字幕或音訊軌道的標籤將為“英語”。最後,將“default”屬性新增到軌道,這將確保如果我們使用多個文字軌道,則預設選擇此字幕。請確保使用字幕檔案的路徑更新“src”屬性。

既然我們已經瞭解瞭如何使用軌道向影片播放器新增字幕,那麼現在讓我們看看<track>標籤的一些重要屬性。

  • kind − 此標籤指定文字軌道的型別。支援的各種型別包括字幕、隱藏式字幕、章節、描述、元資料等。隱藏式字幕和字幕的區別在於,字幕是影片中顯示的對話的翻譯,而隱藏式字幕是相同對話的轉錄。

  • label − 此標籤負責指定文字軌道的名稱,該名稱將對終端使用者可見。如果您有多個文字軌道,則可以為每個軌道提供不同的標籤。

  • default − default屬性用於選擇當有多個字幕可用時顯示給使用者的預設軌道。

現在我們已經瞭解瞭如何將字幕檔案新增到影片播放器中,讓我們看一個如何向影片播放器新增多個字幕軌道的示例。

示例

請考慮以下新增多個字幕軌道的示例:

<html> <head> <link href="https://vjs.zencdn.net/7.19.2/video-js.css"rel="stylesheet" /> </head> <body> <video id="my-video" class="video-js vjs-default-skin" controls preload="auto" width="560" height="300" data-setup='{}' > <source src="https://tutorialspoint.tw/videos/sample1080p.mp4" type="video/mp4" size="1080" > <track kind="subtitles" src="https://tutorialspoint.tw/videos/captions.vtt" srclang="en" label="English" default > <track kind="subtitles" src="https://tutorialspoint.tw/videos/captionsSpa.vtt" srclang="es" label="Spanish" > <track kind="subtitles" src="https://tutorialspoint.tw/videos/captionsFre.vtt" srclang="fr" label="French" > </video> <script src="https://tutorialspoint.tw/videos/video1.mp4"></script> </body> </html>

在上面的示例中,您可以看到我們添加了三個字幕檔案:英語、西班牙語和法語。所有三個軌道都有其特定的標籤及其檔案的路徑。每條軌道的語言都已在“srclang”屬性中提及。

執行以上程式碼時,網頁將顯示一個帶有三個字幕軌道的影片播放器,分別標記為英語(預設選中)、西班牙語和法語。

或者,我們也可以透過在<script>標籤中以程式設計方式將它們傳遞到video.js播放器選項中,以程式設計方式新增字幕軌道。

var player = videojs('my-video', {
   tracks: [{
      src: 'https://domain/mysub.vtt',
      kind:'subtitles',
      srclang: 'en',
      label: 'English'
   }]
});

在上面的程式碼片段中,我們在track屬性內的video.js播放器函式中添加了一個字幕軌道。track屬性的屬性(kind、src、srclang、label)與之前完全相同。

多個字幕軌道

您可能已經注意到track屬性是陣列型別,這意味著您可以將多個字幕軌道傳遞給此屬性。每個字幕軌道都是一個具有其特定屬性的JS物件。請考慮以下程式碼,以程式設計方式新增多個文字軌道。

示例

<html> <head> <link href="https://vjs.zencdn.net/7.19.2/video-js.css" rel="stylesheet" /> </head> <body> <video id="my-video" class="video-js vjs-default-skin" controls preload="auto" width="560" height="300" data-setup='{}' > <source src="https://tutorialspoint.tw/videos/sample1080p.mp4" type="video/mp4" size="1080" > </video> <script src="https://tutorialspoint.tw/videos/video1.mp4"> </script> <script> var player = videojs('my-video', { tracks: [{ src: 'https://tutorialspoint.tw/videos/captionsEng.vtt', kind:'subtitles', srclang: 'en', label: 'English' },{ src: 'https://tutorialspoint.tw/videos/captionsSpa.vtt', kind:'subtitles', srclang: 'es', label: 'Spanish' }, { src: 'https://tutorialspoint.tw/videos/captionsFre.vtt', kind:'subtitles', srclang: 'fr', label: 'French' }] }); </script> </body> </html>

執行以上程式碼時,將在網頁中建立一個影片播放器,該播放器分別帶有3個標記為英語、西班牙語和法語的字幕軌道。

注意− 請確保使用您的影片和字幕檔案更新影片和字幕軌道的源。

結論

在本教程中,我們學習瞭如何將字幕軌道新增到使用video.js建立的影片中。我們還了解了向影片新增字幕文字軌道的方法:使用<track>標籤和在<script>標籤內以程式設計方式,並結合每個方法的工作HTML程式碼示例。

更新於:2022年11月8日

4K+ 次觀看

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.