Windows 用の ffmpeg ライブラリで提供される filtering_audio.c の例を試して、MP4 ファイルからオーディオを抽出し、8 KHz にリサンプリングし、ステレオからモノラルに変換します。この例では、オーディオ出力を stdout 経由で ffplay にパイプします。私は Visual Studio 2010 を使用しており、サンプルは正常にビルドおよび実行されますが、結果は明らかに望ましい結果ではありません。init_filters の最後に avfilter_graph_dump() への呼び出しを追加すると、すべて正しく見え、次のトレースのように ffplay へのパイプも表示されます。
abuffer filter args: time_base=1/24000:sample_rate=24000:sample_fmt=s16:channel_layout=0x4
Output: srate:8000Hz fmt:s16 chlayout:mono
+-----------+
| in |default--[24000Hz s16:mono]--Parsed_aconvert_0:default
| (abuffer) |
+-----------+
+-----------------+
Parsed_aresample_1:default--[8000Hz s16:mono]--default| out |
| (ffabuffersink) |
+-----------------+
+-------------------+
in:default--[24000Hz s16:mono]--default| Parsed_aconvert_0 |default--[24000Hz s16:mono]-Parsed_aresample_1:default
| (aconvert) |
+-------------------+
+--------------------+
Parsed_aconvert_0:default--[24000Hz s16:mono]--default| Parsed_aresample_1 |default--[8000Hz s16:mono]--out:default
| (aresample) |
+--------------------+
[s16le @ 003edda0] Invalid sample rate 0 specified using default of 44100
[s16le @ 003edda0] Estimating duration from bitrate, this may be inaccurate
Input #0, s16le, from 'pipe:':
Duration: N/A, start: 0.000000, bitrate: 128 kb/s
Stream #0:0: Audio: pcm_s16le, 8000 Hz, 1 channels, s16, 128 kb/s
この例を VS 2010 の Windows で適切に実行した場合は、それを機能させるためのヒントや変更を教えてください。