[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