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)
Change History (16)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
Component: | FFmpeg → undetermined |
---|
Is the problem only reproducible if you use external libraries (libvpx, libvorbis) or also with native encoders?
Pease provide (or point to) a sample.
follow-up: 4 comment:3 by , 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.
follow-up: 5 comment:4 by , 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 ?
comment:5 by , 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 , 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?
follow-up: 8 comment:7 by , 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).
comment:8 by , 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.
follow-up: 10 comment:9 by , 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?
comment:10 by , 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
follow-up: 12 comment:11 by , 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.
comment:12 by , 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?
follow-up: 14 comment:13 by , 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.
comment:14 by , 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 the output of the requested command.
comment:15 by , 12 years ago
Keywords: | avi added |
---|---|
Resolution: | → needs_more_info |
Status: | new → closed |
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.)
Well the exact command is more like
It comes from a script called with parameters, I recreated the command with my bare hands :oP