2013-05-12 69 views
9

我想知道是否有可能使用ffmpeg将视频或音频文件的音频通道绘制为图像,或者是否有其他工具可以在Win2k8 x64上执行此操作。在用户上传视频或音频文件后,我将此作为编码过程的一部分。ffmpeg - 我可以将音频通道作为图像吗?

我使用ColdFusion 10来处理上传并调用cfexecute来运行ffmpeg。

我需要的图像看起来像这样(不水平线):

enter image description here

+1

实用程序['wav2png'](https://github.com/beschulz/wav2png)似乎正是为此目的而设计的。你插入一个WAV文件,并获得一个PNG图像。但它仅限于Linux和OS X. – slhck 2013-05-12 19:29:52

+0

显然wave2png可能会在Windows上编译。我的C++世界遍布全球。我想知道有没有人有这样的运气。但是,它确实需要.wav文件,它可能可以使用ffmpeg创建。不确定。 – Redtopia 2013-05-16 05:23:29

+2

你可以通过'ffmpeg -i input output.wav'从任何输入中获得一个WAV文件。 – slhck 2013-05-16 08:57:40

回答

10

你可以做到这一点编程变得非常容易。

研究FFmpeg的基础知识。我建议你编译this sample。它解释了如何打开视频/音频,识别数据流并循环数据包。

一旦你有数据包(在这种情况下,你只对音频数据包感兴趣)。您将解码它(本文档的第87行)并获取音频的原始数据。这是波形本身(音频的模拟“位图”)。你也可以研究this sample。第二个例子是如何编写视频/音频文件。您不想编写任何视频,但使用此示例,如果您看到函数get_audio_frame()和write_audio_frame(),则可以轻松了解音频原始数据包的工作方式。

你需要有一些关于创建位图的知识。任何平台都有一个简单的方法来做到这一点。

所以,你的答案是:是的,它可能会用FFMPEG做到这一点!但是你要为了得到你想要什么样的代码一点点......

UPDATE:此

对不起,也有内置功能:

,您可以用这些过滤器...或

showspectrum,showwaves,avectorscope

下面是一些前关于如何使用它的大量:FFmpeg Filters - 12.22 showwaves

+1

谢谢!伟大的观点和良好的联系! – Redtopia 2013-06-06 14:21:51

相关问题