為什麼您的 iPhone 打開一個視訊檔案並拒絕下一個
兩個檔案都是“影片”,都是幾千兆位元組,都是從同一個地方下載的。當您點選它時,就會播放。另一個顯示灰屏,或根本不顯示任何內容。差別幾乎不在於檔案被破壞——而是圖片周圍的內容,以及蘋果決定要支援哪些包裝。
- 開箱即用
- MP4 和 MOV 儲存帶有 AAC 音訊的 H.264 或 HEVC 視訊。
- 通常被拒絕
- MKV、AVI、WebM、FLV、WMV - 無論它們裡面有什麼。
- 原因
- iOS 在視訊之前讀取容器,並且僅支援一小部分容器。
影片檔是一個盒子,裡面有很多東西
「格式」這個字被用於兩個完全不同的事物,這就是大多數混亂的開始。視訊檔案是一個容器:一個盒子,其中包含視訊軌道、一個或多個音軌、可能的字幕軌道、章節標記、封面藝術和一個告訴玩家其中每一個開始的表格。 MP4、MKV、AVI、MOV 和 WebM 都是容器。它們是盒子,而不是裡面的東西。
盒子裡的東西是用編解碼器編碼的-這個壓縮方案可以將四十GB的原始幀變成兩個。 H.264、HEVC (H.265)、AV1、VP9 和 MPEG-4 Part 2 是視訊編解碼器; AAC、MP3、AC-3、E-AC-3、DTS、FLAC、Opus 和 Vorbis 是音訊編解碼器。單一 MKV 檔案可能包含 HEVC 影片、一個英語 AC-3 音軌、一個土耳其語 AAC 音軌以及三個字幕軌道。
那麼「這個裝置可以播放 MKV 嗎?」其實是兩個問題疊在一起。它能打開盒子嗎?它能解碼裡面發現的東西嗎?玩家必須對這兩個問題都回答「是」。對於大多數盒子來說,蘋果的內建播放功能對第一個問題的答案是否定的,這就是為什麼檔案永遠不會達到足以在第二個問題上失敗的原因。
值得知道的話
五個術語幾乎涵蓋了所有有關視訊檔案的對話。它們值得十分鐘,因為它們將「這不起作用」變成了一個具體的、可回答的問題。
- 容器
- 檔案包裝器 — MP4、MKV、AVI、MOV、WebM、TS。它決定檔案可以容納的內容(有多少音軌、是否適合字幕、是否存在章節),而不是圖片的外觀。
- 編解碼器
- 實際影像或聲音的壓縮:H.264、HEVC、AV1、VP9、AAC、AC-3、DTS、FLAC。其中一些存在硬體解碼;其餘的必須由處理器解碼,這會消耗電池。
- 位元率
- 檔案每秒花費多少位元。它是品質和檔案大小的最大驅動因素 - 8 Mbps 的 4K 電影和 60 Mbps 的同一部電影具有相同的分辨率,而且圖片相差甚遠。
- Remux
- 將現有曲目移動到不同的容器中而不接觸它們。快速、無損,以及將直播串流轉為普通檔案的全部技巧。沒有任何內容被重新編碼,因此沒有任何內容遺失。
- 轉碼
- 實際上將視訊重新編碼為另一個編解碼器。緩慢、發熱、耗電且每次都會有損耗——轉換後的副本總是比原始版本落後一代。
蘋果自己的播放接受什麼
這是 iOS 17 和 macOS 14 的實用清單 - 檔案App、Quick Look、Safari 和 QuickTime 都遵循相同的規則,因為它們共用一個媒體堆疊。
| 容器 | iPhone / iPad | Mac (QuickTime) | 典型內容 |
|---|---|---|---|
| MP4 / M4V | 是 | 是 | H.264 或 HEVC 視訊、AAC 音訊 |
| MOV | 是的 | 是的 | Apple自己的容器,相同的編解碼器 |
| MKV (Matroska) | 沒有 | 否 | 任何東西-使用中最靈活的容器 |
| AVI | 否 | 否 | 舊版 DivX/Xvid 素材、MP3 或 AC-3 音訊 |
| WebM | 沒有 | 否 | VP9 或 AV1 視訊、Opus 或 Vorbis 音訊 |
| FLV / WMV | 否 | 否 | 舊版 Web 與 Windows 影片 |
| TS / M2TS | 部分 | 部分 | 廣播與藍光串流 |
| HLS (.m3u8) | 是 | 是 | 不是檔案 - 指向片段的播放列表 |
即使在受支援的容器內,編解碼器仍然可能被拒絕:AC-3、E-AC-3 和 DTS 音訊在電影中很常見,並且不會被系統播放器解碼,這就是為什麼某些 MP4 檔案播放時只有影像而沒有聲音。
為什麼清單這麼短
這不是疏忽。 Apple 為其支援的編解碼器提供了硬體解碼器,因此 iPhone 一次充電即可播放 4K HEVC 電影數小時 - 視訊永遠不會觸及主處理器。支援世界上的每一個容器和編解碼器意味著要在軟體中解碼大量內容,隨之而來的電池和熱量成本,以及蘋果不感興趣的格式的專利許可。
結果是iOS上的通用媒體播放器必須自備自己的引擎。實際上,它們中的每一個都建立在相同的開源基礎上——FFmpeg及其庫——它幾乎可以理解曾經發布的每一個容器和編解碼器。這就是第三方播放器打開系統不會打開的檔案的全部原因:它沒有做一些聰明的事情,而是自己進行解碼。
這也解釋了您會注意到玩家之間的差異。用軟體解碼的播放器可以播放任何內容,但在播放長電影時卻表現不佳;只要編解碼器允許它保持涼爽和持久,它就會將工作交給硬體解碼器。一個優秀的播放器會同時做到這兩點:能用硬體就用硬體,必要時才用軟體,並且無需詢問即可自動切換。
iOS拒絕觀看檔案的三種方法
按照您花費的時間和品質的順序排列。
真正區分好玩家和壞玩家的是什麼
App Store 上的幾乎所有媒體播放器都聲稱「所有格式」。一旦你超越了這個標題,這些事情就會有所不同。
- 可能的硬體解碼
H.264 和 HEVC 應該進入硬體解碼器,而不是 CPU。您可以在兩分鐘內判斷:裝置變熱,或不變熱。
- 每首曲目都已公開,而不僅僅是第一首
一部具有三種音訊語言和五個字幕軌道的影片應該讓您在播放過程中在所有這些語言之間切換,而無需重新開啟檔案。
- 實際恢復的恢復
每個檔案保存的位置,重新開啟時恢復,並在檔案重新命名或移動時保留。非常罕見,也是您最想念的東西。
- 大檔案上的正常行為
20 GB 的 remux 應該平滑地清理,而不是在每次搜尋時凍結四秒鐘。這是一個索引問題,而不是解碼問題。
- 背景音訊與畫中畫
能夠鎖定螢幕並繼續收聽,或在回覆訊息時將影片縮小到一個角落,這就是播放器在手機上可用的根本原因。
- 沒有隱藏在任何地方的重新編碼步驟
如果App在播放檔案之前「匯入」或「最佳化」您的檔案幾分鐘,則它正在轉換 - 伴隨著品質損失和意味著等待。
三個裝置上的同一個檔案
規則是相同的,因為 iOS、iPadOS 和 macOS 共用媒體堆疊。不同之處在於您可以輕鬆地圍繞播放執行哪些操作。
這通常會變成的問題
MKV 的畫質比 MP4 好嗎?
兩者都不是絕對更好 - 它們都只是容器,畫質取決於內部的編解碼器與位元率。 MKV 檔案在實務上通常看起來更好,因為 MKV 是人們用來保存高位元率轉錄檔的格式,而 MP4 則是串流服務以一小部分位元率提供的格式。將相同的視訊軌道放進兩者中,它們的每個像素都會完全一致。
將 MKV 轉換為 MP4 是否會降低品質?
僅當曲目被重新編碼時。如果內部的視訊和音訊編解碼器已經是 MP4 可以攜帶的,則 remux 只是將它們原封不動地移動 - 無損,通常在一分鐘之內。如果 HEVC 一定變成 H.264,或是 DTS 必須變成 AAC,那就是重新編碼,品質就會下降。
為什麼我的 4K 檔案播放時會卡頓,而較小的檔案則可以正常播放?
編解碼器在可以使用硬體解碼器的情況下正在軟體中進行解碼,或檔案儲存速度較慢 - 網路共用或弱連線上的外部磁碟機無法始終提供 80 Mbps 的速度。複製一次到本地測試一下;如果播放,解碼就不是問題。
保存庫最安全的格式是什麼?
MKV,如果您想保留來源的所有內容 - 多種音訊語言、字幕軌、章節。採用 H.264 或 HEVC 的 MP4,如果與家中每台裝置的最大相容性比保留額外的曲目更重要。對於任何新事物,要避免的是 AVI,它無法正確承載現代編解碼器。
FoxDL 如何處理這個問題
FoxDL 隨附自己的媒體引擎,因此容器問題永遠不會出現。您將檔案放在裝置上並打開它。相同的引擎播放音樂,因此一部電影和一張 FLAC 專輯位於同一個庫中。
- MKV、AVI、WebM、FLV、WMV、MP4、MOV、TS 和 HLS 直接開啟 — 不會先轉換、匯入或重新包裝任何內容。
- 在編解碼器允許的地方使用硬體解碼,對於不允許的解碼器後面有一個軟體路徑,因此普通電影不會消耗電池。
- AC-3、E-AC-3、DTS、FLAC、Opus 和 Vorbis 音訊也會被解碼,這就是解決無聲電影問題的方法 - 並且相同的解碼器可以在該庫中播放 FLAC 和 ALAC 專輯。
- 每個嵌入的音訊和字幕軌道都會列出並在播放期間進行切換。
- 每個檔案的位置都會被記住並且在重命名或移動後仍然存在,因為庫透過標識而不是路徑來追蹤檔案。
- 有畫中畫和背景音訊,並且在 iPad 上,外部驅動器可以就地播放,無需複製。
播放您自己的檔案是每個裝置上免費版本的一部分 - 它不計量,也不是專業版功能。