Opened 6 years ago

Closed 6 years ago

#7000 closed enhancement (fixed)

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

Reported by: Sergio Garcia 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 Sergio Garcia 6 years ago.

Download all attachments as: .zip

Change History (7)

comment:1 by Carl Eugen Hoyos, 6 years ago

Keywords: mov added; mp4 removed

Please provide a sample file.

How exactly was the file created?

by Sergio Garcia, 6 years ago

Attachment: test.MP4 added

comment:2 by Sergio Garcia, 6 years ago

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 by Sergio Garcia, 6 years ago

Indeed VP8 fourcc is missing, only VP9 is defined:

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

comment:4 by Carl Eugen Hoyos, 6 years ago

Reproduced by developer: set
Status: newopen

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

comment:5 by Carl Eugen Hoyos, 6 years ago

Priority: normalwish
Type: defectenhancement

comment:6 by James, 6 years ago

Resolution: fixed
Status: openclosed
Note: See TracTickets for help on using tickets.