【发布时间】:2014-02-07 05:02:13
【问题描述】:
我需要拆分一个多声道的wav文件,并将每个声道编码成mp3文件。
我知道 gtresamer 的 deinterleave 插件,但我不确定如何将它用于 wav 文件以及如何对频道流进行编码。
我更喜欢基于 gtreamer(或 ffmpeg)的解决方案,因为我需要限制 I/O。即,我不希望将中间单通道 wav 文件写入存储。
ffmpeg 可用于this way。但是,ubuntu ffmpeg 中没有这两个开关。
snsonic 的解决方案抛出以下错误:
(gst-launch-0.10:2218): GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-0.10/libgstpng.so': libpng12.so.0: cannot open shared object file: No such file or directory
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstWavParse:wavparse0: Internal data flow error.
Additional debug info:
gstwavparse.c(1982): gst_wavparse_loop (): /GstPipeline:pipeline0/GstWavParse:wavparse0:
streaming task paused, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
(gst-launch-0.10:2218): GStreamer-CRITICAL **: gst_caps_unref: assertion `GST_CAPS_REFCOUNT_VALUE (caps) > 0' failed
当我使用没有去交错的单通道 wav 文件进行测试时,创建了 mp3 文件但它只有噪音。
【问题讨论】: