Opened 12 years ago

Closed 12 years ago

#2320 closed defect (needs_more_info)

"100 buffers queued in output stream 0:1" pcm_u8 -> libvorbis

Reported by: Berbe Owned by:
Priority: normal Component: undetermined
Version: 1.0.5 Keywords: avi
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
When trying to convert a video from MJPEG to WebM (VP8/Vorbis), i get a '100 buffers queued in output stream 0:1' message.

How to reproduce:
% ffmpeg -y -i input.avi -codec:v libvpx -codec:a libvorbis output.webm
ffmpeg version 1.0.4 Copyright (c) 2000-2012 the FFmpeg developers

built on Feb 8 2013 13:28:51 with gcc 4.7 (Debian 4.7.2-5)
configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libdc1394 --disable-altivec --disable-armv5te --disab libavutil 51. 73.101 / 51. 73.101
libavcodec 54. 59.100 / 54. 59.100
libavformat 54. 29.104 / 54. 29.104
libavdevice 54. 2.101 / 54. 2.101
libavfilter 3. 17.100 / 3. 17.100
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100

Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, avi, from '2012-11-23_21-02-59.avi':

Metadata:

creation_time : 2012-11-23 21:02:59
encoder : OLYMPUS u1030SW/S1030SW

Duration: 00:00:06.73, start: 0.000000, bitrate: 2741 kb/s

Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p, 320x240, 15 tbr, 15 tbn, 15 tbc
Stream #0:1: Audio: pcm_u8 ([1][0][0][0] / 0x0001), 8000 Hz, mono, u8, 64 kb/s

[libvpx @ 0x25249a0] v1.1.0
Output #0, webm, to '2012-11-23_21-02-59.webm':

Metadata:

encoder : Lavf54.29.104
Stream #0:0: Video: vp8, yuv420p, 320x240, q=-1--1, 200 kb/s, 1k tbn, 15 tbc
Stream #0:1: Audio: vorbis, 8000 Hz, mono, flt

Stream mapping:

Stream #0:0 -> #0:0 (mjpeg -> libvpx)
Stream #0:1 -> #0:1 (pcm_u8 -> libvorbis)

Press [q] to stop, ? for help
[output stream 0:1 @ 0x2567180] 100 buffers queued in output stream 0:1, something may be wrong.
frame= 101 fps= 13 q=0.0 Lsize= 190kB time=00:00:06.72 bitrate= 231.9kbits/s
video:166kB audio:20kB subtitle:0 global headers:3kB muxing overhead 1.318128%

Attachments (1)

frames (38.4 KB ) - added by Berbe 12 years ago.
Frames of the mjpeg/pcm_u8 video file

Download all attachments as: .zip

Change History (16)

comment:1 by Berbe, 12 years ago

Well the exact command is more like

ffmpeg -y -i 2012-11-23_21-02-59.avi -codec:v libvpx -codec:a libvorbis 2012-11-23_21-02-59.webm

It comes from a script called with parameters, I recreated the command with my bare hands :oP

comment:2 by Carl Eugen Hoyos, 12 years ago

Component: FFmpegundetermined

Is the problem only reproducible if you use external libraries (libvpx, libvorbis) or also with native encoders?
Pease provide (or point to) a sample.

comment:3 by Berbe, 12 years ago

If I ran the minimal command, the same encoders are used:

ffmpeg -y -i 2012-11-23_21-02-59.avi 2012-11-23_21-02-59.webm

The only other vorbis encoder is 'vorbis', which is experimental and which I can't make work.

If I select the video stream only, the video is encoded without any touble so the problem comes from the 'libvorbis' audio encoder indeed:

% ffmpeg -y -i 2012-11-23_21-02-59.avi -map 0:v 2012-11-23_21-02-59.webm
ffmpeg version 1.0.4 Copyright (c) 2000-2012 the FFmpeg developers
  built on Feb  8 2013 13:28:51 with gcc 4.7 (Debian 4.7.2-5)
  configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libdc1394 --disable-altivec --disable-armv5te --disab  libavutil      51. 73.101 / 51. 73.101
  libavcodec     54. 59.100 / 54. 59.100
  libavformat    54. 29.104 / 54. 29.104
  libavdevice    54.  2.101 / 54.  2.101
  libavfilter     3. 17.100 /  3. 17.100
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, avi, from '2012-11-23_21-02-59.avi':
  Metadata:
    creation_time   : 2012-11-23 21:02:59
    encoder         : OLYMPUS u1030SW/S1030SW
  Duration: 00:00:06.73, start: 0.000000, bitrate: 2741 kb/s
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p, 320x240, 15 tbr, 15 tbn, 15 tbc
    Stream #0:1: Audio: pcm_u8 ([1][0][0][0] / 0x0001), 8000 Hz, mono, u8, 64 kb/s
File '2012-11-23_21-02-59.webm' already exists. Overwrite ? [y/N] y
v1.1.0
Output #0, webm, to '2012-11-23_21-02-59.webm':
  Metadata:
    encoder         : Lavf54.29.104
    Stream #0:0: Video: vp8, yuv420p, 320x240, q=-1--1, 200 kb/s, 1k tbn, 15 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg -> libvpx)
Press [q] to stop, [?] for help
frame=  101 fps= 13 q=0.0 Lsize=     167kB time=00:00:06.66 bitrate= 205.3kbits/s
video:166kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.704159%

I tried to reproduce the problem with a video converted to mjpeg/pcm_u8 with the same parameters as those from genuine MJPEG videos I was trying to convert (8000Hz mono).
The problem doesn't seem to appear when converting those crafted MJPEG videos sound to Vorbis.

I can't provide you directly with a sample of the videos I'm working on for privacy reasons.
I'll try to provide you with a sample from the camera later.

in reply to:  3 ; comment:4 by Carl Eugen Hoyos, 12 years ago

Replying to Berbe:

The only other vorbis encoder is 'vorbis', which is experimental and which I can't make work.

Why does it not work? Did you try -strict -2 ?

in reply to:  4 comment:5 by Berbe, 12 years ago

Replying to cehoyos:

Why does it not work? Did you try -strict -2 ?

I didn't want to pollute the current ticket focused on the libvorvis bug, but here is my try (no, -strict -2 doesn't work, but -strict experimental does)
I don't understand why I need to specify the requested parameters, and there seem to be a problem with the channels number.

% ffmpeg -i 2012-11-23_21-02-59.avi -strict experimental -c:a vorbis 2012-11-23_21-02-59.webm
ffmpeg version 1.0.4 Copyright (c) 2000-2012 the FFmpeg developers
  built on Feb  8 2013 13:28:51 with gcc 4.7 (Debian 4.7.2-5)
  configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/x86_64-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libdc1394 --disable-altivec --disable-armv5te --disab  libavutil      51. 73.101 / 51. 73.101
  libavcodec     54. 59.100 / 54. 59.100
  libavformat    54. 29.104 / 54. 29.104
  libavdevice    54.  2.101 / 54.  2.101
  libavfilter     3. 17.100 /  3. 17.100
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, avi, from '2012-11-23_21-02-59.avi':
  Metadata:
    creation_time   : 2012-11-23 21:02:59
    encoder         : OLYMPUS u1030SW/S1030SW
  Duration: 00:00:06.73, start: 0.000000, bitrate: 2741 kb/s
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p, 320x240, 15 tbr, 15 tbn, 15 tbc
    Stream #0:1: Audio: pcm_u8 ([1][0][0][0] / 0x0001), 8000 Hz, mono, u8, 64 kb/s
File '2012-11-23_21-02-59.webm' already exists. Overwrite ? [y/N] y
v1.1.0
[vorbis @ 0x1fde940] Current FFmpeg Vorbis encoder only supports 2 channels.
Output #0, webm, to '2012-11-23_21-02-59.webm':
  Metadata:
    encoder         : OLYMPUS u1030SW/S1030SW
    Stream #0:0: Video: vp8, yuv420p, 320x240, q=-1--1, 200 kb/s, 90k tbn, 15 tbc
    Stream #0:1: Audio: vorbis, 8000 Hz, mono, s16, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg -> libvpx)
  Stream #0:1 -> #0:1 (pcm_u8 -> vorbis)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

comment:6 by Carl Eugen Hoyos, 12 years ago

So the ticket is not reproducible with the internal vorbis decoder, thank you for confirming!

Is webm output necessary to reproduce the problem or is it also reproducible with another container like mkv, avi or mov?

comment:7 by Cigaes, 12 years ago

Apart from this warning, do you observe an actual problem with the output?

If not, it just means that your input file is strangely interleaved (you can observe it with ffprobe -show_frames: you will notice a lot of audio frames before the first video frame) and causes a lot of memory allocation (but not monstrously so).

in reply to:  7 comment:8 by Berbe, 12 years ago

Replying to cehoyos:

So the ticket is not reproducible with the internal vorbis decoder, thank you for confirming!

You seem to want to make a conclusion before actually seeing anything pushing in that direction.
I said I couldn't produce an output with the 'vorbis' encoder...
Until then, even a broken output produced with 'libvorbis' is better than nothing at all ;o)

Replying to Cigaes:

Apart from this warning, do you observe an actual problem with the output?

If you look at my last command output, notice the last line: 'Error while opening encoder for output stream #0:1'

There is no output produced, only an empty file with the webm extension.

comment:9 by Cigaes, 12 years ago

The error in your last comment has absolutely nothing to do with the problem at hand. Basic sanity check: did you read the error message?

in reply to:  9 comment:10 by Berbe, 12 years ago

Replying to Cigaes:

The error in your last comment has absolutely nothing to do with the problem at hand. Basic sanity check: did you read the error message?

There are basically 2 error messages in the published output:

[vorbis @ 0xa59940] Current FFmpeg Vorbis encoder only supports 2 channels.

I have video + mono audio, that's 2 channels, right or not? I don't get the problem there

Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

I don't know what I am supposed to put as arguments. The encoder seems to be waiting for some, but which?
'libvorbis' did it all by itself, allowing tweaking through arguments only when necessary

comment:11 by Cigaes, 12 years ago

You have two streams, and your audio streams has too few channels.

I wonder why you believe that the video stream could count for anything for the Vorbis encoder.

in reply to:  11 comment:12 by Berbe, 12 years ago

Replying to Cigaes:

You have two streams, and your audio streams has too few channels.

I wonder why you believe that the video stream could count for anything for the Vorbis encoder.

You're right, my bad. But I still need to get past the problem and my knowledge of what I am playing with, as you can see, is far from being extensive.

Where does the problem come from? Is there any mean to produce a working output for I can check if it is playable?

comment:13 by Cigaes, 12 years ago

You did not answer my first question: do you actually have a problem with your file?

I also suggested you to look at the output of ffprobe -show_frames on your file, and it does not seem you did.

in reply to:  13 comment:14 by Berbe, 12 years ago

Replying to Cigaes:

You did not answer my first question: do you actually have a problem with your file?

I did say there is no output produced. That's hence a problem.
Replying to Berbe:

There is no output produced, only an empty file with the webm extension.

Replying to Cigaes:

I also suggested you to look at the output of ffprobe -show_frames on your file, and it does not seem you did.

On the contrary of what you guessed, there is no huge burst of audio frames at the beginning.
The file starts with a frame of audio, and each of them is separated by 15 frames of video.

I don't know what information you are looking for precisely.
[EDIT] I just attached a file containing th output of the requested command.

Version 3, edited 12 years ago by Berbe (previous) (next) (diff)

by Berbe, 12 years ago

Attachment: frames added

Frames of the mjpeg/pcm_u8 video file

comment:15 by Carl Eugen Hoyos, 12 years ago

Keywords: avi added
Resolution: needs_more_info
Status: newclosed

Please reopen this ticket if you can provide a sample that allows to reproduce the problem.
(Without a sample it will not be possible to fix the ticket.)

Note: See TracTickets for help on using tickets.