[FFmpeg-trac] #8381(undetermined:new): Remuxing of AV1 WebM file to IVF creates unplayable file
FFmpeg
trac at avcodec.org
Fri Nov 15 15:03:35 EET 2019
#8381: Remuxing of AV1 WebM file to IVF creates unplayable file
-------------------------------------+-------------------------------------
Reporter: rbultje | Owner:
Type: defect | Status: new
Priority: normal | Component:
| undetermined
Version: unspecified | Resolution:
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Description changed by rbultje:
Old description:
> $ aomdec ~/Downloads/autostitch-10s.webm -o - --md5 --rawvideo
> 5be667329ee6d684db4fc540d97f919c -
> $ ffmpeg -i ~/Downloads/autostitch-10s.webm -c:v copy /tmp/autostitch-
> 10s.ivf
> ffmpeg version N-95733-g73ee53f Copyright (c) 2000-2019 the FFmpeg
> developers
> built with Apple LLVM version 9.0.0 (clang-900.0.38)
> configuration: --enable-gpl --samples=/Users/ronaldbultje/Movies/fate-
> suite-ff --enable-libvpx --enable-libx264 --disable-autodetect --enable-
> ffplay --enable-sdl2 --enable-version3 --enable-libaom --enable-libdav1d
> libavutil 56. 35.101 / 56. 35.101
> libavcodec 58. 62.100 / 58. 62.100
> libavformat 58. 35.100 / 58. 35.100
> libavdevice 58. 9.100 / 58. 9.100
> libavfilter 7. 66.100 / 7. 66.100
> libswscale 5. 6.100 / 5. 6.100
> libswresample 3. 6.100 / 3. 6.100
> libpostproc 55. 6.100 / 55. 6.100
> [libdav1d @ 0x7fa351817c00] libdav1d 0.5.1-5-g14a67d7
> Input #0, matroska,webm, from '/Users/ronaldbultje/Downloads/autostitch-
> 10s.webm':
> Metadata:
> ENCODER : Lavf58.20.100
> Duration: 00:00:10.00, start: 0.000000, bitrate: 867 kb/s
> Stream #0:0: Video: av1 (Main), yuv420p(tv), 852x480, SAR 1:1 DAR
> 71:40, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
> Metadata:
> DURATION : 00:00:10.000000000
> Output #0, ivf, to '/tmp/autostitch-10s.ivf':
> Metadata:
> encoder : Lavf58.35.100
> Stream #0:0: Video: av1 (Main) (AV01 / 0x31305641), yuv420p(tv),
> 852x480 [SAR 1:1 DAR 71:40], q=2-31, 30 fps, 30 tbr, 1k tbn, 1k tbc
> (default)
> Metadata:
> DURATION : 00:00:10.000000000
> Stream mapping:
> Stream #0:0 -> #0:0 (copy)
> Press [q] to stop, [?] for help
> [AVBSFContext @ 0x7fa350d0dc00] Warning: skip_mode_present does not match
> inferred value: 1, but should be 0.
> Last message repeated 6 times
> frame= 300 fps=0.0 q=-1.0 Lsize= 1060kB time=00:00:09.96 bitrate=
> 871.1kbits/s speed=1.57e+03x
> video:1056kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
> muxing overhead: 0.391450%
> $ aomdec /tmp/autostitch-10s.ivf -o - --md5 --rawvideo
> Warning: Failed to decode frame 31: Corrupt frame detected
> Warning: Additional information: Failed to decode tile data
> c5d248aaadefebe05e6cfd58bbc92a65 -
>
> Remuxing of this WebM appears broken, because the generated YUV for the
> WebM file by aomdec looks visually OK - the IVF decoded YUV looks broken,
> though. dav1d gives me a different md5, probably because it doesn't
> immediately abort but continues after the next keyframe, but it still
> looks broken.
>
> $ dav1d -i /tmp/autostitch-10s.ivf --muxer=md5 -o -
> dav1d 0.5.1-5-g14a67d7 - by VideoLAN
> Decoded 300/300 frames (100.0%) - 369.41/30.00 fps (12.31x)
> ceea0af45328eed2d53db7ff7d7e03dd
>
> Or using ffmpeg (which I think also tries to resume at next keyframes for
> the IVF file), but also generates the correct MD5 for the WebM file:
>
> bash-4.4$ ~/Projects/ffmpeg/x86-64-gpl/ffmpeg -reinit_filter 0 -i
> ~/Downloads/autostitch-10s.webm -f md5 -v error -nostats -
> MD5=5be667329ee6d684db4fc540d97f919c
> bash-4.4$ ~/Projects/ffmpeg/x86-64-gpl/ffmpeg -reinit_filter 0 -i /tmp
> /autostitch-10s.ivf -f md5 -v error -nostats -
> MD5=ceea0af45328eed2d53db7ff7d7e03dd
>
> (ffmpeg uses libdav1d for decoding btw, in case you're wondering:
> $ ffmpeg -reinit_filter 0 -i ~/Downloads/autostitch-10s.webm -f md5 -v
> info -nostats -
> ffmpeg version N-95733-g73ee53f Copyright (c) 2000-2019 the FFmpeg
> developers
> built with Apple LLVM version 9.0.0 (clang-900.0.38)
> configuration: --enable-gpl --samples=/Users/ronaldbultje/Movies/fate-
> suite-ff --enable-libvpx --enable-libx264 --disable-autodetect --enable-
> ffplay --enable-sdl2 --enable-version3 --enable-libaom --enable-libdav1d
> [..]
> [libdav1d @ 0x7fa101804400] libdav1d 0.5.1-5-g14a67d7
> Input #0, matroska,webm, from '/Users/ronaldbultje/Downloads/autostitch-
> 10s.webm':
> [..])
New description:
{{{
$ aomdec ~/Downloads/autostitch-10s.webm -o - --md5 --rawvideo
5be667329ee6d684db4fc540d97f919c -
$ ffmpeg -i ~/Downloads/autostitch-10s.webm -c:v copy /tmp/autostitch-
10s.ivf
ffmpeg version N-95733-g73ee53f Copyright (c) 2000-2019 the FFmpeg
developers
built with Apple LLVM version 9.0.0 (clang-900.0.38)
configuration: --enable-gpl --samples=/Users/ronaldbultje/Movies/fate-
suite-ff --enable-libvpx --enable-libx264 --disable-autodetect --enable-
ffplay --enable-sdl2 --enable-version3 --enable-libaom --enable-libdav1d
libavutil 56. 35.101 / 56. 35.101
libavcodec 58. 62.100 / 58. 62.100
libavformat 58. 35.100 / 58. 35.100
libavdevice 58. 9.100 / 58. 9.100
libavfilter 7. 66.100 / 7. 66.100
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
[libdav1d @ 0x7fa351817c00] libdav1d 0.5.1-5-g14a67d7
Input #0, matroska,webm, from '/Users/ronaldbultje/Downloads/autostitch-
10s.webm':
Metadata:
ENCODER : Lavf58.20.100
Duration: 00:00:10.00, start: 0.000000, bitrate: 867 kb/s
Stream #0:0: Video: av1 (Main), yuv420p(tv), 852x480, SAR 1:1 DAR
71:40, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Metadata:
DURATION : 00:00:10.000000000
Output #0, ivf, to '/tmp/autostitch-10s.ivf':
Metadata:
encoder : Lavf58.35.100
Stream #0:0: Video: av1 (Main) (AV01 / 0x31305641), yuv420p(tv),
852x480 [SAR 1:1 DAR 71:40], q=2-31, 30 fps, 30 tbr, 1k tbn, 1k tbc
(default)
Metadata:
DURATION : 00:00:10.000000000
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[AVBSFContext @ 0x7fa350d0dc00] Warning: skip_mode_present does not match
inferred value: 1, but should be 0.
Last message repeated 6 times
frame= 300 fps=0.0 q=-1.0 Lsize= 1060kB time=00:00:09.96 bitrate=
871.1kbits/s speed=1.57e+03x
video:1056kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.391450%
$ aomdec /tmp/autostitch-10s.ivf -o - --md5 --rawvideo
Warning: Failed to decode frame 31: Corrupt frame detected
Warning: Additional information: Failed to decode tile data
c5d248aaadefebe05e6cfd58bbc92a65 -
}}}
Remuxing of this WebM appears broken, because the generated YUV for the
WebM file by aomdec looks visually OK - the IVF decoded YUV looks broken,
though. dav1d gives me a different md5, probably because it doesn't
immediately abort but continues after the next keyframe, but it still
looks broken.
{{{
$ dav1d -i /tmp/autostitch-10s.ivf --muxer=md5 -o -
dav1d 0.5.1-5-g14a67d7 - by VideoLAN
Decoded 300/300 frames (100.0%) - 369.41/30.00 fps (12.31x)
ceea0af45328eed2d53db7ff7d7e03dd
}}}
Or using ffmpeg (which I think also tries to resume at next keyframes for
the IVF file), but also generates the correct MD5 for the WebM file:
{{{
$ ~/Projects/ffmpeg/x86-64-gpl/ffmpeg -reinit_filter 0 -i ~/Downloads
/autostitch-10s.webm -f md5 -v error -nostats -
MD5=5be667329ee6d684db4fc540d97f919c
$ ~/Projects/ffmpeg/x86-64-gpl/ffmpeg -reinit_filter 0 -i /tmp/autostitch-
10s.ivf -f md5 -v error -nostats -
MD5=ceea0af45328eed2d53db7ff7d7e03dd
}}}
ffmpeg uses libdav1d for decoding btw, in case you're wondering:
{{{
$ ffmpeg -reinit_filter 0 -i ~/Downloads/autostitch-10s.webm -f md5 -v
info -nostats -
ffmpeg version N-95733-g73ee53f Copyright (c) 2000-2019 the FFmpeg
developers
built with Apple LLVM version 9.0.0 (clang-900.0.38)
configuration: --enable-gpl --samples=/Users/ronaldbultje/Movies/fate-
suite-ff --enable-libvpx --enable-libx264 --disable-autodetect --enable-
ffplay --enable-sdl2 --enable-version3 --enable-libaom --enable-libdav1d
[..]
[libdav1d @ 0x7fa101804400] libdav1d 0.5.1-5-g14a67d7
Input #0, matroska,webm, from '/Users/ronaldbultje/Downloads/autostitch-
10s.webm':
[..]
}}}
--
--
Ticket URL: <https://trac.ffmpeg.org/ticket/8381#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list