3

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 で適切に実行した場合は、それを機能させるためのヒントや変更を教えてください。

4

0 に答える 0