Opened 2 months ago

Last modified 8 weeks ago

#6430 open enhancement

Ogg audio file not detected

Reported by: cgbug Owned by:
Priority: wish Component: avformat
Version: git-master Keywords: ogg wav
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: yes

Description

Sample:
http://www.datafilehost.com/d/1c2c88bf

MediaInfo? correctly detects it as an Ogg file.

FFmpeg output:

ffmpeg version N-86310-g220b24c Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 7.1.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
  libavutil      55. 63.100 / 55. 63.100
  libavcodec     57. 96.101 / 57. 96.101
  libavformat    57. 72.101 / 57. 72.101
  libavdevice    57.  7.100 / 57.  7.100
  libavfilter     6. 90.100 /  6. 90.100
  libswscale      4.  7.101 /  4.  7.101
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
Taking_Damage_3.SoundNodeWave: Invalid data found when processing input

And after renaming to .ogg:

[ogg @ 00000000002d72c0] Format ogg detected only with low score of 1, misdetection possible!
Input #0, ogg, from 'Taking_Damage_3.SoundNodeWave.ogg':
  Duration: 00:00:01.43, start: 0.000000, bitrate: 416 kb/s
    Stream #0:0: Audio: vorbis, 22050 Hz, mono, fltp, 37 kb/s
    Metadata:
      ENCODER         : UnrealEngine3

Attachments (1)

Taking_Damage_3.SoundNodeWave (72.5 KB) - added by cgbug 2 months ago.

Download all attachments as: .zip

Change History (4)

Changed 2 months ago by cgbug

comment:1 Changed 2 months ago by cehoyos

  • Keywords ogg added
  • Priority changed from normal to wish
  • Status changed from new to open
  • Type changed from defect to enhancement

comment:2 Changed 8 weeks ago by jamrial

  • Analyzed by developer set
  • Keywords wav added

This file is a pcm WAV file and a Vorbis OGG file stitched together with some custom header at the beginning, probably telling whatever handles this file (XCom it seems) where to look for either of them.
ffmpeg is able to parse the ogg part if you force the ogg demuxer because ogg_read_header() will search the whole file until it finds the first OggS tag, something ogg_probe() does not.

The chances for this kind of file to ever be properly supported are low to null. The ogg probe function could perhaps parse the entire probe buffer until it finds the first OggS tag, but even then the pcm WAV part comes first so you'd need a big probe buffer for it.

Just force the ogg demuxer for these files.

comment:3 Changed 8 weeks ago by cgbug

Thanks for the analysis.

Perhaps that custom header information could be used (after reverse engineering)? I don't know how common this custom format is used in games. Maybe not worth the effort.

Note: See TracTickets for help on using tickets.