首页 > 解决方案 > 为什么 Chrome 83 不能播放这段 AV1 编码的视频?

问题描述

该文件在 VLC 中播放效果很好。

我已经尝试将其添加codecs="av01.0.05M.08"到视频源中,但没有运气 - 尽管这里有说明,但没有浏览器会播放它:https ://caniuse.com/#feat=av1

视频编码如下:

ffmpeg -i input.avi -pix_fmt yuva420p -f nut -c:v libaom-av1 -minrate 1k -b:v 350k -maxrate 2000k -strict experimental output.mp4

浏览器控制台:

Media resource https://example.com/example.mp4 could not be decoded. example.mp4
Media resource https://example.com/example.mp4 could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_METADATA_ERR (0x806e0006)
Details: static MP4Metadata::ResultAndByteBuffer __cdecl mozilla::MP4Metadata::Metadata(mozilla::ByteStream *): Cannot parse metadata

任何关于我哪里出错的建议,无论是在理解还是在编码参数方面,将不胜感激!

标签: videoencodingffmpeghtml5-videoplayback

解决方案


您手动选择了 NUT 多路复用器,-f nut但给出了输出文件名.mp4,因此它实际上是浏览器不支持的 NUT 格式。尝试:

ffmpeg -i input.avi -c:v libaom-av1 -minrate 1k -b:v 350k -maxrate 2000k -vf format=yuv420p -strict experimental -movflags +faststart output.mp4

请注意,libaom-av1 不支持yuva420p像素格式,因此yuv420p被使用。见ffmpeg -h encoder=libaom-av1


推荐阅读