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