[FFmpeg-trac] #5656(undetermined:new): audio filter "volume" doesn't work when ffmpeg serves audio to ffserver
FFmpeg
trac at avcodec.org
Tue Jun 21 22:36:28 CEST 2016
#5656: audio filter "volume" doesn't work when ffmpeg serves audio to ffserver
-------------------------------------+-------------------------------------
Reporter: taeuber | Type: defect
Status: new | Priority: normal
Component: | Version: git-
undetermined | master
Keywords: ffmpeg | Blocked By:
ffserver aufio filter | Reproduced by developer: 0
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
How to reproduce:
{{{
ffmpeg started on 2016-06-21 at 22:28:40
Report written to "ffmpeg-20160621-222840.log"
Command line:
/usr/local/bin/ffmpeg_g -f alsa -ac 1 -i hw:2
http://localhost:8090/immen.ffm -af "volume=15" -c:a libvorbis -q:a 3
-reset_timestamps 1 -map 0 /tmp/T.ogg -v 9 -loglevel 99 -report -y
ffmpeg version N-80494-g9204a84 Copyright (c) 2000-2016 the FFmpeg
developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
configuration: --enable-libvorbis --enable-libmp3lame --enable-libopus
libavutil 55. 24.100 / 55. 24.100
libavcodec 57. 46.100 / 57. 46.100
libavformat 57. 38.102 / 57. 38.102
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 46.102 / 6. 46.102
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
Splitting the commandline.
Reading option '-f' ... matched as option 'f' (force format) with argument
'alsa'.
Reading option '-ac' ... matched as option 'ac' (set number of audio
channels) with argument '1'.
Reading option '-i' ... matched as input file with argument 'hw:2'.
Reading option 'http://localhost:8090/immen.ffm' ... matched as output
file.
Reading option '-af' ... matched as option 'af' (set audio filters) with
argument 'volume=15'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument
'libvorbis'.
Reading option '-q:a' ... matched as option 'q' (use fixed quality scale
(VBR)) with argument '3'.
Reading option '-reset_timestamps' ... matched as AVOption
'reset_timestamps' with argument '1'.
Reading option '-map' ... matched as option 'map' (set input stream
mapping) with argument '0'.
Reading option '/tmp/T.ogg' ... matched as output file.
Reading option '-v' ... matched as option 'v' (set logging level) with
argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument '99'.
Reading option '-report' ... matched as option 'report' (generate a
report) with argument '1'.
Reading option '-y' ... matched as option 'y' (overwrite output files)
with argument '1'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Applying option loglevel (set logging level) with argument 99.
Applying option report (generate a report) with argument 1.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file hw:2.
Applying option f (force format) with argument alsa.
Applying option ac (set number of audio channels) with argument 1.
Successfully parsed a group of options.
Opening an input file: hw:2.
[alsa @ 0x3c01020] All info found
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, alsa, from 'hw:2':
Duration: N/A, start: 1466540920.732163, bitrate: N/A
Stream #0:0, 1, 1/1000000: Audio: pcm_s16le, 48000 Hz, 1 channels,
s16, 768 kb/s
Successfully opened the file.
Parsing a group of options: output file http://localhost:8090/immen.ffm.
Successfully parsed a group of options.
Opening an output file: http://localhost:8090/immen.ffm.
[http @ 0x3c124a0] Setting default whitelist
'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
[http @ 0x3c124a0] request: GET /immen.ffm HTTP/1.1
User-Agent: Lavf/57.38.102
Accept: */*
Range: bytes=0-
Connection: close
Host: localhost:8090
Icy-MetaData: 1
[ffm @ 0x3c149e0] Format ffm probed with size=2048 and score=101
[NULL @ 0x3c17e80] Setting entry with key 'b' to value '48000'
[NULL @ 0x3c17e80] Setting entry with key 'ac' to value '1'
[NULL @ 0x3c17e80] Setting entry with key 'ar' to value '48000'
[NULL @ 0x3c187a0] Setting entry with key 'b' to value '48000'
[NULL @ 0x3c187a0] Setting entry with key 'ac' to value '1'
[NULL @ 0x3c187a0] Setting entry with key 'ar' to value '48000'
[NULL @ 0x3c19700] Setting entry with key 'b' to value '48000'
[NULL @ 0x3c19700] Setting entry with key 'ac' to value '1'
[NULL @ 0x3c19700] Setting entry with key 'ar' to value '48000'
[NULL @ 0x3c19700] Setting entry with key 'flags' to value
'+global_header'
[AVIOContext @ 0x3c1ee40] Statistics: 4096 bytes read, 0 seeks
[http @ 0x3c19c60] Setting default whitelist
'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
[http @ 0x3c19c60] request: POST /immen.ffm HTTP/1.1
Transfer-Encoding: chunked
User-Agent: Lavf/57.38.102
Accept: */*
Connection: close
Host: localhost:8090
Icy-MetaData: 1
Successfully opened the file.
Parsing a group of options: output file /tmp/T.ogg.
Applying option af (set audio filters) with argument volume=15.
Applying option c:a (codec name) with argument libvorbis.
Applying option q:a (use fixed quality scale (VBR)) with argument 3.
Applying option map (set input stream mapping) with argument 0.
Successfully parsed a group of options.
Opening an output file: /tmp/T.ogg.
[file @ 0x3c1ab40] Setting default whitelist 'file,crypto'
Successfully opened the file.
detected 2 logical cores
[graph 0 input from stream 0:0 @ 0x3c28bc0] Setting 'time_base' to value
'1/48000'
[graph 0 input from stream 0:0 @ 0x3c28bc0] Setting 'sample_rate' to value
'48000'
[graph 0 input from stream 0:0 @ 0x3c28bc0] Setting 'sample_fmt' to value
's16'
[graph 0 input from stream 0:0 @ 0x3c28bc0] Setting 'channel_layout' to
value '0x4'
[graph 0 input from stream 0:0 @ 0x3c28bc0] tb:1/48000 samplefmt:s16
samplerate:48000 chlayout:0x4
[audio format for output stream 0:0 @ 0x3c15000] Setting 'sample_fmts' to
value 's32p'
[audio format for output stream 0:0 @ 0x3c15000] Setting 'sample_rates' to
value '48000'
[audio format for output stream 0:0 @ 0x3c15000] Setting 'channel_layouts'
to value '0x4'
[audio format for output stream 0:0 @ 0x3c15000] auto-inserting filter
'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the
filter 'audio format for output stream 0:0'
[AVFilterGraph @ 0x3c28b20] query_formats: 4 queried, 6 merged, 3 already
done, 0 delayed
[auto-inserted resampler 0 @ 0x3c20160] [SWR @ 0x3c38e00] Using s16p
internally between filters
[auto-inserted resampler 0 @ 0x3c20160] ch:1 chl:mono fmt:s16 r:48000Hz ->
ch:1 chl:mono fmt:s32p r:48000Hz
[graph 1 input from stream 0:0 @ 0x3c1fac0] Setting 'time_base' to value
'1/48000'
[graph 1 input from stream 0:0 @ 0x3c1fac0] Setting 'sample_rate' to value
'48000'
[graph 1 input from stream 0:0 @ 0x3c1fac0] Setting 'sample_fmt' to value
's16'
[graph 1 input from stream 0:0 @ 0x3c1fac0] Setting 'channel_layout' to
value '0x4'
[graph 1 input from stream 0:0 @ 0x3c1fac0] tb:1/48000 samplefmt:s16
samplerate:48000 chlayout:0x4
[audio format for output stream 0:1 @ 0x3c1fbe0] Setting 'sample_fmts' to
value 'fltp'
[audio format for output stream 0:1 @ 0x3c1fbe0] Setting 'sample_rates' to
value '48000'
[audio format for output stream 0:1 @ 0x3c1fbe0] Setting 'channel_layouts'
to value '0x4'
[audio format for output stream 0:1 @ 0x3c1fbe0] auto-inserting filter
'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the
filter 'audio format for output stream 0:1'
[AVFilterGraph @ 0x3c15c80] query_formats: 4 queried, 6 merged, 3 already
done, 0 delayed
[auto-inserted resampler 0 @ 0x3c22100] [SWR @ 0x3c45dc0] Using s16p
internally between filters
[auto-inserted resampler 0 @ 0x3c22100] ch:1 chl:mono fmt:s16 r:48000Hz ->
ch:1 chl:mono fmt:fltp r:48000Hz
[graph 2 input from stream 0:0 @ 0x3c219e0] Setting 'time_base' to value
'1/48000'
[graph 2 input from stream 0:0 @ 0x3c219e0] Setting 'sample_rate' to value
'48000'
[graph 2 input from stream 0:0 @ 0x3c219e0] Setting 'sample_fmt' to value
's16'
[graph 2 input from stream 0:0 @ 0x3c219e0] Setting 'channel_layout' to
value '0x4'
[graph 2 input from stream 0:0 @ 0x3c219e0] tb:1/48000 samplefmt:s16
samplerate:48000 chlayout:0x4
[audio format for output stream 0:2 @ 0x3c21020] Setting 'sample_fmts' to
value 's16'
[audio format for output stream 0:2 @ 0x3c21020] Setting 'sample_rates' to
value '48000'
[audio format for output stream 0:2 @ 0x3c21020] Setting 'channel_layouts'
to value '0x4'
[AVFilterGraph @ 0x3c20be0] query_formats: 4 queried, 9 merged, 0 already
done, 0 delayed
[Parsed_volume_0 @ 0x3c24e40] Setting 'volume' to value '15'
[graph 3 input from stream 0:0 @ 0x3c21fe0] Setting 'time_base' to value
'1/48000'
[graph 3 input from stream 0:0 @ 0x3c21fe0] Setting 'sample_rate' to value
'48000'
[graph 3 input from stream 0:0 @ 0x3c21fe0] Setting 'sample_fmt' to value
's16'
[graph 3 input from stream 0:0 @ 0x3c21fe0] Setting 'channel_layout' to
value '0x4'
[graph 3 input from stream 0:0 @ 0x3c21fe0] tb:1/48000 samplefmt:s16
samplerate:48000 chlayout:0x4
[audio format for output stream 1:0 @ 0x3c22be0] Setting 'sample_fmts' to
value 'fltp'
[Parsed_volume_0 @ 0x3c24e40] auto-inserting filter 'auto-inserted
resampler 0' between the filter 'graph 3 input from stream 0:0' and the
filter 'Parsed_volume_0'
[AVFilterGraph @ 0x3c24700] query_formats: 4 queried, 6 merged, 3 already
done, 0 delayed
[auto-inserted resampler 0 @ 0x3c23b40] [SWR @ 0x3c52d60] Using s16p
internally between filters
[auto-inserted resampler 0 @ 0x3c23b40] ch:1 chl:mono fmt:s16 r:48000Hz ->
ch:1 chl:mono fmt:fltp r:48000Hz
[auto-inserted resampler 0 @ 0x3c23b40] tb:0.000021
sample_rate:48000.000000 nb_channels:1.000000
[Parsed_volume_0 @ 0x3c24e40] n:nan t:nan pts:nan precision:float
volume:15.000000 volume_dB:23.521825
[ffm @ 0x3c13320] Using AVStream.codec to pass codec parameters to muxers
is deprecated, use AVStream.codecpar instead.
[ffm @ 0x3c13320] Using AVStream.codec to pass codec parameters to muxers
is deprecated, use AVStream.codecpar instead.
[ffm @ 0x3c13320] Using AVStream.codec to pass codec parameters to muxers
is deprecated, use AVStream.codecpar instead.
[ogg @ 0x3c149e0] Using AVStream.codec to pass codec parameters to muxers
is deprecated, use AVStream.codecpar instead.
Output #0, ffm, to 'http://localhost:8090/immen.ffm':
Metadata:
creation_time : now
encoder : Lavf57.38.102
Stream #0:0, 0, 1/1000000: Audio: mp3 (libmp3lame), 48000 Hz, mono,
s32p, 48 kb/s
Metadata:
encoder : Lavc57.46.100 libmp3lame
Stream #0:1, 0, 1/1000000: Audio: vorbis (libvorbis), 48000 Hz, mono,
fltp, 48 kb/s
Metadata:
encoder : Lavc57.46.100 libvorbis
Stream #0:2, 0, 1/1000000: Audio: opus (libopus), 48000 Hz, mono, s16,
48 kb/s
Metadata:
encoder : Lavc57.46.100 libopus
Output #1, ogg, to '/tmp/T.ogg':
Metadata:
encoder : Lavf57.38.102
Stream #1:0, 0, 1/48000: Audio: vorbis (libvorbis), 48000 Hz, mono,
fltp
Metadata:
encoder : Lavc57.46.100 libvorbis
Stream mapping:
Stream #0:0 -> #0:0 (pcm_s16le (native) -> mp3 (libmp3lame))
Stream #0:0 -> #0:1 (pcm_s16le (native) -> vorbis (libvorbis))
Stream #0:0 -> #0:2 (pcm_s16le (native) -> opus (libopus))
Stream #0:0 -> #1:0 (pcm_s16le (native) -> vorbis (libvorbis))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
}}}
The audio saved in the ogg file is filtered correctly but the stream sent
to ffserver is the original signal level.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/5656>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list