影片上傳失敗特別讓人煩躁,因為錯誤訊息幾乎從不指出真正的問題。「上傳失敗」涵蓋了六種差很多的狀況,而有用的第一步不是重試,是先弄清楚你中的是哪一種。症狀會告訴你。
這份清單十秒鐘就能解決大部分情況。底下逐條說明。
每個平台都有上限,而且差距極大——通訊軟體可能只有幾 MB,影音平台可以到好幾 GB。手機影片是常見的犯人:4K 拍個幾分鐘,檔案就遠比大家預期的大。
壓縮影片是直接的解法,而且手機素材省下來的通常很多,因為原始檔是為了錄製速度而編碼的,不是為了檔案大小。光是把 4K 降成 1080p,資料率就大約剩四分之一。
這是大家最容易漏掉的原因,因為副檔名看起來沒問題。.mp4 是容器——一個盒子。真正關鍵的是裡面的編碼,而一個 MP4 可以裝 H.264、H.265/HEVC、AV1 等等。
H.264 基本上到處都收。上傳會壞掉的地方是 H.265/HEVC,而那正是近幾代 iPhone 和很多相機為了省空間預設錄的格式。檔案在拍它的那台裝置上播得好好的,上傳卻被服務端退回。
解法是轉成 MP4,視訊用 H.264、音訊用 AAC。這個組合是最大公約數,所有值得上傳的平台都收。
服務端兩個方向都設限。太高——8K,或 120 fps——平台可能直接拒收。太低,或比例特殊,一個預期直式影片的服務也可能退回正方形的。
可變影格率會惹出自己的麻煩。螢幕錄影和某些手機 App 產出的是 VFR 素材,影格率會隨時變動。很多上傳管線預期固定影格率,結果不是失敗就是做出音畫漸漸不同步的成品。用固定的 30 或 60 fps 重新編碼就能解決。
每次停在不同百分比,那是連線問題,不是檔案問題。大檔案特別脆弱,因為它要讓連線維持很久,而短暫斷一下就夠了。
有線勝過無線。小檔案勝過耐心——先壓縮常常成功,而一直重試不會,純粹因為「可能出錯的時間」變短了。
每次停在同一個位置,指向的是檔案。這常發生在錄影被中斷的時候——電池沒電、App 被強制關閉——留下一個索引從來沒寫完的影片。它通常還是播得出來,因為播放器容忍的東西,上傳驗證器不容忍。
常見的徵兆是:檔案播得出來但拉不了進度條,或者長度顯示為零。重新編碼會把結構重建起來,通常就夠了。
沒有聲音。音訊編碼不被支援,所以影片被處理成沒有聲音的。AC-3 和 DTS——從光碟或電視錄影抓出來的檔案常見——是典型的犯人。把音訊重新編碼成 AAC。
畫面橫躺。手機用某個方向錄,然後存一個旋轉旗標,告訴播放器要把畫面轉過來。有些上傳管線會忽略那個旗標。解法是直接旋轉影片,讓像素本身就是正的,而不是依賴中介資料。
不知道平台要什麼的時候,這是安全的目標:
轉檔之前,值得先檢視一下檔案裡到底裝了什麼編碼。看兩分鐘,可以省下「重壓了一個本來就沒問題的東西、真正的原因卻沒動到」。
不要反覆重新編碼。每一次轉檔都是失真的,所以一邊猜問題一邊轉四次,最後你會得到一個傳得上去、但畫質明顯比原檔差的影片。先判斷原因,從原檔轉一次。