問題
昨天用戶上傳了一個視頻文件,然而發現雖然有聲音但是黑屏。
解釋
因為原視頻的編碼是用 mp4v 格式的,它需要專用的解碼器。而 chrome 並不支持,所以無法播放。
然后如果用轉碼功能轉成用 H.264 編碼,就可以播放了。
上圖的 AVC 實際上是 H.264 協議的別名。自從 H.264 協議中增加了 SVC 的部分之后,人們習慣將不包含 SVC 的 H.264 協議那一部分稱為 AVC,而將 SVC 這一部分單獨稱為 SVC。
瀏覽器視頻格式編碼參照
最后 chrome 的視頻解碼格式請查閱 MDN-audio和video元素-瀏覽器兼容情況
截止2020年3月,video 標簽支持的
Feature---Chrome---Firefox---IE---Opera---Safari
VP8 and Vorbis in WebM---6.0---4.0 (2.0)---9.0[8]---10.60---3.1[9]
VP9 and Opus in WebM---29.0---28.0 (28.0)[36]---?---(Yes)---?
Streaming WebM via MSE---?---42.0 (42.0)[35]---?---?---?
Theora and Vorbis in Ogg---(Yes)---3.5 (1.9.1)---未實現---10.50---未實現
H.264 and MP3 in MP4---(Yes)[3]---(Yes)[10]---9.0---(Yes)---(Yes)
H.264 and AAC in MP4---(Yes)[4]---(Yes)[11]---9.0---(Yes)---3.1
FLAC in MP4---62.0---51 (51)---?---?---?