Matroska / WebM Block中的AV1视频帧数据格式

时间:2018-04-23 14:51:21

标签: webm mkv

据我所知,MKV中的H.264 / H2.65遵循ISOBMFF中定义的样本格式,视频帧数据如下:

|-- NALUnit length--|-- NALUnit data --|-- NALUnit length --|-- NALUnit data --|...

有一个文档显示AV1帧数据是如何存储在ISOBMFF(https://aomediacodec.github.io/av1-isobmff/)中的,最初我认为MKV / WebM中的AV1应该遵循它,但我发现从互联网下载的所有AV1 webm文件都不遵循它根本就没有。

例如, https://www.elecard.com/storage/video/140831_av1_720p_2700kbps.webm

00000000h: 82 87 88 93 06 86 00 9F E0 59 E8 30 E0 5F FF E3 ; ‚‡ˆ“.†.ŸàYè0à_ÿã

显然不遵循为ISOBMFF定义的AV1样本格式。

任何人都可以提供一些信息吗?

1 个答案:

答案 0 :(得分:0)

问题中提供的文件确实似乎无效 - 即使使用新的ffmpeg 4.0版本(我从zeranoe获取)已添加了av1支持,解码器也会抱怨比特流已损坏。我还有toy webm player用于验证我为实时流媒体制作的vp8的webm文件。我修补了一下以获得av1支持但是在那里解码器返回有关无效比特流的错误,所以看起来该文件很糟糕。遗憾的是,新的ffmpeg 4.0无法将webm / vp8转码为webm / av1,因此无法在有效文件上对此进行测试。

[libopus @ 000001f5f8b0c540] No bit rate set. Defaulting to 64000 bps.
[libaom-av1 @ 000001f5f8b0ac00] 0.1.0-9436-g8207b91f6
[webm @ 000001f5f8a604c0] Only VP8 or VP9 video and Vorbis or Opus audio and WebVTT subtitles are supported for WebM.
Could not write header for output file #0 (incorrect codec parameters ?): 
Invalid argument
Error initializing output stream 0:0 --