#7000 closed enhancement (fixed)

VP8 codec is not correctly detected but it is playable if vcodec is forced

Reported by: sgarcia Owned by:
Priority: wish Component: avformat
Version: git-master Keywords: mov vp8
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:

I am creating an mp4 with vp8 and opus from an webrtc recording. The resulting video is playable with vlc nightly properly but fails to be played with ffplay

The problem seems that the vp8 codec is not correctly detected for mp4 format:

C:\usr\ffmpeg-20180201-b1af0e2-win64-static\bin>ffmpeg.exe -i c:\Users\Sergio\Downloads\x.mp4
ffmpeg version N-89940-gb1af0e23a3 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libmfx --enable-amf --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  7.100 / 58.  7.100
  libavdevice    58.  0.101 / 58.  0.101
  libavfilter     7. 11.101 /  7. 11.101
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002950091b540] Unsupported VP Codec Configuration box version 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002950091b540] Could not find codec parameters for stream 0 (Video: none (vp08 / 0x38307076), none, 640x480, 1016 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:\Users\Sergio\Downloads\x.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2018-02-01T07:52:58.000000Z
  Duration: 00:00:46.27, start: 0.000000, bitrate: 1089 kb/s
    Stream #0:0(und): Video: none (vp08 / 0x38307076), none, 640x480, 1016 kb/s, 14.27 fps, 90k tbr, 90k tbn, 90k tbc (default)
    Metadata:
      creation_time   : 2018-02-01T07:52:59.000000Z
      encoder         : VPC Coding
    Stream #0:1(und): Data: none (rtp  / 0x20707472), 41 kb/s
    Metadata:
      creation_time   : 2018-02-01T07:52:59.000000Z
    Stream #0:2(und): Audio: opus (Opus / 0x7375704F), 48000 Hz, stereo, fltp, 31 kb/s (default)
    Metadata:
      creation_time   : 2018-02-01T07:52:59.000000Z
    Stream #0:3(und): Data: none (rtp  / 0x20707472), 12 kb/s
    Metadata:
      creation_time   : 2018-02-01T07:52:59.000000Z

But it does work if you manually override it:

C:\usr\ffmpeg-20180201-b1af0e2-win64-static\bin>ffplay.exe c:\Users\Sergio\Downloads\x.mp4 -vcodec vp8
ffplay version N-89940-gb1af0e23a3 Copyright (c) 2003-2018 the FFmpeg developers
  built with gcc 7.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libmfx --enable-amf --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  7.100 / 58.  7.100
  libavdevice    58.  0.101 / 58.  0.101
  libavfilter     7. 11.101 /  7. 11.101
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000245a237cd40] Unsupported VP Codec Configuration box version 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000245a237cd40] Could not find codec parameters for stream 0 (Video: none (vp08 / 0x38307076), none, 640x480, 1016 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c:\Users\Sergio\Downloads\x.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2018-02-01T07:52:58.000000Z
  Duration: 00:00:46.27, start: 0.000000, bitrate: 1089 kb/s
    Stream #0:0(und): Video: none (vp08 / 0x38307076), none, 640x480, 1016 kb/s, 14.27 fps, 90k tbr, 90k tbn, 90k tbc (default)
    Metadata:
      creation_time   : 2018-02-01T07:52:59.000000Z
      encoder         : VPC Coding
    Stream #0:1(und): Data: none (rtp  / 0x20707472), 41 kb/s
    Metadata:
      creation_time   : 2018-02-01T07:52:59.000000Z
    Stream #0:2(und): Audio: opus (Opus / 0x7375704F), 48000 Hz, stereo, fltp, 31 kb/s (default)
    Metadata:
      creation_time   : 2018-02-01T07:52:59.000000Z
    Stream #0:3(und): Data: none (rtp  / 0x20707472), 12 kb/s
    Metadata:
      creation_time   : 2018-02-01T07:52:59.000000Z
Switch subtitle stream from #-1 to #-1 vq=  197KB sq=    0B f=0/0
   1.96 A-V: -0.041 fd=   0 aq=   24KB vq=  219KB sq=    0B f=0/0

Attachments (1)

test.MP4 (1.0 MB) - added by sgarcia 10 months ago.

Download all attachments as: .zip

Change History (7)

comment:1 Changed 10 months ago by cehoyos

  • Keywords mov added; mp4 removed

Please provide a sample file.

How exactly was the file created?

Changed 10 months ago by sgarcia

comment:2 Changed 10 months ago by sgarcia

Added a sample recorded using:
https://github.com/medooze/media-server-node

which has the custom mp4v2 which vp8 support
https://github.com/medooze/mp4v2

Note that it plays correctly with VLC 3.0 and by forcing the vcodec on ffplay, so most probably only the fourcc detection is missing.

comment:3 Changed 10 months ago by sgarcia

Indeed VP8 fourcc is missing, only VP9 is defined:

https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/isom.c#L189

comment:4 Changed 10 months ago by cehoyos

  • Reproduced by developer set
  • Status changed from new to open

VP8 is implicitely mentioned on https://www.webmproject.org/vp9/mp4/

comment:5 Changed 10 months ago by cehoyos

  • Priority changed from normal to wish
  • Type changed from defect to enhancement

comment:6 Changed 10 months ago by jamrial

  • Resolution set to fixed
  • Status changed from open to closed
Note: See TracTickets for help on using tickets.