我在想是否可以使用ffmpeg将视频或音频文件的音频通道绘制成图像,或者是否有其他工具可以在Win2k8 x64上完成此操作。我正在将其作为用户上传视频或音频文件后编码过程的一部分进行处理。
我正在使用ColdFusion 10处理上传,并调用cfexecute运行ffmpeg。
我需要的图像类似于这样(不包含水平线):
我正在使用ColdFusion 10处理上传,并调用cfexecute运行ffmpeg。
我需要的图像类似于这样(不包含水平线):
你可以很容易地通过编程实现这个功能。
学习FFmpeg的基础知识。我建议你编译这个示例。它解释了如何打开视频/音频、识别流并循环处理数据包。
一旦你有了数据包(在这种情况下,你只关心音频包),你会解码它(文档中的第87行)并获得音频的原始数据。这就是波形本身(音频的模拟“位图”)。
你还可以学习这个示例。这第二个示例是如何写入视频/音频文件。虽然你不想写任何视频,但是通过这个示例,你可以很容易地理解音频原始数据包的工作方式,如果你看到函数get_audio_frame()和write_audio_frame()。
你需要了解如何创建位图。任何平台都有一个简单的方法来做到这一点。
所以,答案是:是的,使用FFmpeg可以实现这个功能!但你必须稍微编写一些代码以获得你想要的结果...
更新:
抱歉,还有内置功能:
你可以使用这些过滤器... 或者
showspectrum、showwaves、avectorscope
这里有一些如何使用它的示例:FFmpeg Filters - 12.22 showwaves。
wav2png
似乎是专门为此目的而制作的。你只需插入一个WAV文件,就可以得到一个PNG图像。但它只适用于Linux和OS X系统。 - slhckffmpeg -i input output.wav
从任何输入获取一个 WAV 文件。 - slhck