《報導者》新聞小工具上線公測part 4:「捲動式影片」圖表產生器

yucj
報導者開放實驗室
Oct 28, 2020

秉持深度、開放、非營利精神,《報導者》自創立以來,每個數位新聞專題作品的原始碼皆公開於 GitHub 平台供社會大眾自由使用,在一次次的數位敘事實驗與研究中,我們發現有些功能適合單獨取出、應用在個別報導中,因此著手開發易於使用的新聞小工具(網頁元件),並公開釋出技術,讓不會寫程式的使用者也能透過《報導者》開發的「產生器」取得直接置入網頁中的程式碼,不必額外撰寫程式碼。

「報導者開放實驗室」的「新聞敘事元件庫」計畫,再度釋出一個新聞元件囉!

這次開放的是我們在近期〈從租用到迫遷 ── 南鐵東移,25 年政策與地貌的轉變〉新聞中所使用的 「捲動式影片」 元件。

Photo by Noom Peerapong on Unsplash

「捲動式影片」 元件的特色是,網頁畫面將隨著讀者的滑動變化,逐格播放影片。

不管是動畫、動態圖表、紀錄影像……,透過這個元件都可以讓讀者一邊看影片、一邊閱讀提示文字。

這個形式適合影像和文字搭配並行的內容,不管是要讓讀者感受氣氛和脈絡,或是要讓讀者仔細閱讀影像中的細節,都可以使用。

不過,要能夠順暢逐格播放的影片檔案會相當大,提醒在使用上盡量壓低影片秒數,不適合單一檔案超過 15 秒以上的影片。

使用說明

步驟 1. 製作你的影片

首先,要製作好你的影片檔案。

「報導者/捲動式影片」產生器並沒有綁定任何影片格式、編碼、長度、尺寸、檔案大小等,但你所選擇的影片設定,都會影響到你所產出元件的播放流暢度。

經過我們的測試發現,若要在各種載具和瀏覽器上順暢地逐格播放影片,使用的影片檔必須滿足幾個條件:

  1. 影片的檔案大小盡量不超過 20MB,手機版檔案能小就盡量更小
  2. 影片格式建議選擇 AVC (H.264) 編碼的 .mp4 檔案,瀏覽器支援度較廣泛
  3. 影片在壓縮編碼時,要設定壓出足夠的關鍵幀(key frame, or called i-picture),以提高解碼出特定秒數畫面的速度

我們是使用「ffmpeg」這套程式進行轉檔,你也可以使用任何可以指定壓縮格式的影片編輯程式,來製作你的影片檔。

在這邊會提供我們在壓縮影片時使用的指令和參數,如果有 ffmpeg 安裝和使用上的問題,可以參考網路上許多 ffmpeg 教學

因為當下載的影片檔案太大時,會觸發瀏覽器自動省流量的機制,讓它每次只下載部分影片 ,造成元件播放影片時產生卡頓和錯誤。而為了不讓使用者下載影片時等太久,我們會希望使用者只下載他的螢幕解析度所需要的影片。

所以,一個影片我們會準備 5 種不同大小的版本,提供給「捲動式影片」產生器,產生器轉出來的鑲嵌程式碼 ,就會自動根據使用者螢幕判斷應該下載哪個大小的影片。

以下是我們用來轉出 5 種大小版本影片的指令。註解會說明我們用到的參數,更多細節請參考 ffmpeg 官方的文件

步驟 2. 建立你的捲動式影片資料試算表

影片製作好,並將它們上傳到網頁空間,取得檔案連結後,要建立一個符合產生器資料格式的 Google 表單。

可以點此快速建立範例試算表副本 (此為 Google Drive 連結,會將範例試算表複製到你的 Google Drive)。

步驟 3. 按照試算表上的格式說明,填入你的資料

將影片連結、字幕內容、樣式設定、程式設定等資料,填入各個資料表。

範例資料表中,有每個欄位的詳細說明。

另外,後面「進階功能」的部分有範例解釋如何自訂字幕位置。

請注意在修改資料時,不要改到試算表內的欄位順序,也不要改到有底色的保護儲存格

步驟 4. 設定共用、授權「機器人」讀資料

編輯完資料,下一步就是產出可嵌入程式碼,但此之前得先讓報導者機器人知道這份試算表。

有兩種方式可授權機器人,第一種是在 [共用] 設定中開啟連結共用,將「知道連結的使用者」設定為「檢視者」「加註者」「編輯者」,都能有效授權機器人。

第二種情形是,若你不想開放共用,希望維持試算表只有特定授權使用者可以看到,請輸入報導者機器人的 email,授權報導者機器人帳號讀取: scrollable-video@cloud-functions-268910.iam.gserviceaccount.com

⚠️ 請注意,授權機器人帳號讀取時,要記得將「通知邀請對象」打勾。因為機器人帳號和一般帳號不同,沒有辦法作「確認接受共用」的動作,若略過傳送邀請,將會無法給予權限。

步驟 5. 打開「報導者/捲動式影片」產生器、產生鑲嵌程式碼

點我打開「報導者/捲動式影片」產生器

步驟 6. 複製鑲嵌程式碼,貼至目標網頁的 HTML 中你想要顯示的位置

最後只要將鑲嵌程式碼複製、並貼到你想要放置的網頁位置,就完成了!

提醒:如果你的鑲嵌程式碼是要貼在線上的所見即所得編輯器中(例如部落格的線上編輯器),我們有提供「指定網址暫停載入影片」的功能,讓你可以在 appProps 資料表的 skipLoadLocationRegExp 欄位,設定你的編輯器部分網址。如此,捲動式影片不會在你使用線上編輯器的時候啟動,方便你編輯文章。

進階功能

1:自訂字幕出現位置

在使用「報導者/捲動式影片」產生器時,可以透過更改資料表中的資料,自訂字幕出現在螢幕中的位置。

在「captions」資料表裡面,透過 time 值設定每個字幕移動到畫面上的「指定位置」時,對應到的影片的秒數。秒數可以指定到小數點後一位。

而這個在字幕在指定時間會移動到的「指定位置」,可以透過「appProps」資料表裡的各項 captionsSetting 值進行設定。

xBoxAlignyBoxAlign 設定字幕位置起算的起點,xPositionyPosition 設定從起點出發位移多少。

如以下範例所展示:

在「appProps」中設定的位置會套用到所有的字幕上。

如果想要改變特定某個字幕的位置,可以在「captions」資料表中對該字幕的 xBoxAlignyBoxAlignxPositionyPosition 設定值,就會直接覆蓋掉該字幕原本「appProps」的設定。

如果是想要對特定字幕作微調,並且是相對於「appProps」中設定的位置作位移,則可以用「captions」資料表中該字幕的 xOffsetyOffset 進行調整。

範例如下所示:

2.自訂樣式和版面

在資料表中修改 [theme] 的值,就可以自訂字幕顏色、大小、底色等樣式

使用案例

《報導者》

如你有作品使用,歡迎來信 developer@twreporter.org 分享

常見問題

1.「報導者/捲動式影片」的圖表程式碼,支援哪些瀏覽器?

在各主要瀏覽器如 Firefox、Google Chrome、Safari、Edge 都能夠正常運作。(Internet Explorer 不支援)

程式碼採用響應式設計,會自動根據螢幕寬度調整適合的版面。

如有遇到瀏覽器顯示結果異常,請填寫 回報表單。或將您的異常狀況、作業系統、瀏覽器名稱、瀏覽器版本等資訊傳送到 developer@twreporter.org

2. 「報導者/捲動式影片」是否提供商業使用?

「報導者/捲動式影片」產生的程式碼中會使用 GreenSocks 公司的 ScrollTrigger 產品,若您的程式碼將用作商業使用,需遵守 GreenSocks 公司的授權規定。根據該公司目前的授權規則,單純將元件呈現結果使用在商業網站上是可以的。

除了上述部分以外,「報導者/捲動式影片」程式是採 MIT 授權條款,可供免費商業使用。如您使用時能一併標明出處,我們會非常感謝。

詳細 MIT 授權條款資訊請見授權條款頁

意見回饋

您可以透過以下任何管道給我們回饋意見:

  1. 填寫回饋表單
  2. 在我們的 Github 上開 issue 或 open PR
  3. 來信至報導者工程部信箱 developer@twreporter.org ,我們將有專人為你服務 😘。

ABOUT 報導者開放實驗室 The Reporter Lab

「報導者開放實驗室」 的任務之一,是提供開源的新聞小工具,增加說故事可能的方式,減少產製過程中不必要的重複工作,與內容生產者一起製作更多優質的報導。

「報導者/捲動式影片」產生器是我們所製作的各種新聞小工具其中之一,若您對更多新聞小工具有興趣,歡迎追蹤我們的頁面: 報導者開放實驗室 The Reporter Lab

⭐️ 新聞小工具系列:
之一、「橫著滾吧照片」產生器
之二、「大事記」圖表產生器
之三、「左右互搏網頁版型」產生器
之四、「捲動式影片」產生器

有你,才有《報導者》,邀您用行動支持!

優質深度報導必須投入優秀記者、足夠時間與大量資源⋯⋯我們需要細水長流的小額贊助,才能走更長遠的路。竭誠歡迎認同《報導者》理念的朋友贊助支持我們!
贊助報導者

官網:https://www.twreporter.org/
臉書:https://www.facebook.com/twreporter/

--

--