Opened 10 years ago

Last modified 10 years ago

#3954 new defect

Remuxing vorbis into AVI leads to very large files

Reported by: Clément Bœsch Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords: avi vorbis
Cc: aditsu@yahoo.com, Michael Niedermayer Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description (last modified by Clément Bœsch)

Create a small OGG/Vorbis file:

☭ ./ffmpeg -f lavfi -i sine -c:a libvorbis -t 100 out.ogg
ffmpeg version N-66293-g5ddfac8 Copyright (c) 2000-2014 the FFmpeg developers
  built on Sep 16 2014 14:01:03 with gcc 4.9.1 (GCC)
  configuration: --enable-gpl --enable-libfribidi --enable-fontconfig --enable-libfreetype --enable-libx264 --enable-libvorbis --enable-libmp3lame --enable-libmodplug --enable-libass --assert-level=2 --samples=/home/ux/fate-samples --cc='ccache cc'
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.100 / 56.  1.100
  libavformat    56.  4.101 / 56.  4.101
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.100 /  5.  1.100
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
Input #0, lavfi, from 'sine':
  Duration: N/A, start: 0.000000, bitrate: 705 kb/s
    Stream #0:0: Audio: pcm_s16le, 44100 Hz, mono, s16, 705 kb/s
Output #0, ogg, to 'out.ogg':
  Metadata:
    encoder         : Lavf56.4.101
    Stream #0:0: Audio: vorbis (libvorbis), 44100 Hz, mono, fltp
    Metadata:
      encoder         : Lavc56.1.100 libvorbis
Stream mapping:
  Stream #0:0 -> #0:0 (pcm_s16le (native) -> vorbis (libvorbis))
Press [q] to stop, [?] for help
size=     170kB time=00:01:40.00 bitrate=  14.0kbits/s    
video:0kB audio:160kB subtitle:0kB other streams:0kB global headers:3kB muxing overhead: 6.276714%

Remux it to AVI:

☭ ./ffmpeg -i out.ogg -c copy out.avi
ffmpeg version N-66293-g5ddfac8 Copyright (c) 2000-2014 the FFmpeg developers
  built on Sep 16 2014 14:01:03 with gcc 4.9.1 (GCC)
  configuration: --enable-gpl --enable-libfribidi --enable-fontconfig --enable-libfreetype --enable-libx264 --enable-libvorbis --enable-libmp3lame --enable-libmodplug --enable-libass --assert-level=2 --samples=/home/ux/fate-samples --cc='ccache cc'
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.100 / 56.  1.100
  libavformat    56.  4.101 / 56.  4.101
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.100 /  5.  1.100
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
Input #0, ogg, from 'out.ogg':
  Duration: 00:01:40.00, start: 0.000000, bitrate: 13 kb/s
    Stream #0:0: Audio: vorbis, 44100 Hz, mono, fltp, 80 kb/s
    Metadata:
      ENCODER         : Lavc56.1.100 libvorbis
Output #0, avi, to 'out.avi':
  Metadata:
    ISFT            : Lavf56.4.101
    Stream #0:0: Audio: vorbis (oV[0][0] / 0x566F), 44100 Hz, mono, 80 kb/s
    Metadata:
      ENCODER         : Lavc56.1.100 libvorbis
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size=   23610kB time=00:01:39.99 bitrate=1934.2kbits/s    
video:0kB audio:160kB subtitle:0kB other streams:0kB global headers:3kB muxing overhead: 14616.299805%

Compare sizes:

☭ ls -l out.{ogg,avi}
-rw-r--r-- 1 ux ux  24M Sep 16 14:04 out.avi
-rw-r--r-- 1 ux ux 171K Sep 16 14:01 out.ogg

out.avi seems to play fine. I don't know if it's a regression.

Change History (9)

comment:1 by Carl Eugen Hoyos, 10 years ago

Is this issue only reproducible with libvorbis or also with the native vorbis encoder?

This is indeed a regression but the older (smaller) files were unplayable with vlc.

in reply to:  1 comment:2 by Clément Bœsch, 10 years ago

Description: modified (diff)

Replying to cehoyos:

Is this issue only reproducible with libvorbis or also with the native vorbis encoder?

The source encoder doesn't matter. You can use ./ffmpeg -f lavfi -i sine -c:a vorbis -strict -2 -ac 2 -t 100 out.ogg, the issue will be that same.

This is indeed a regression but the older (smaller) files were unplayable with vlc.

Were you able to point out the regression commit?

comment:3 by Carl Eugen Hoyos, 10 years ago

The behaviour changed in 15c6be8c / 5602a464

comment:4 by Timothy Gu, 10 years ago

Probably related to #1690.

comment:5 by Timothy Gu, 10 years ago

Does remuxing to other formats (eg matroska) show this problem?

in reply to:  5 comment:6 by Clément Bœsch, 10 years ago

Replying to Timothy_Gu:

Does remuxing to other formats (eg matroska) show this problem?

No

comment:7 by aditsu, 10 years ago

Cc: aditsu@yahoo.com added

comment:8 by compn, 10 years ago

do not put vorbis in avi. we should fail if user wants to do that.

comment:9 by Michael Niedermayer, 10 years ago

Cc: Michael Niedermayer added

Is there any evidence that what ffmpeg does is incorrect ?
what would you expect or rather which tool generates functional vorbis in avi that is not huge?

Note: See TracTickets for help on using tickets.