gpt4 book ai didi

audio - gstreamer 将多 channel wav 文件拆分为单独的 channel 并将每个 channel 编码为 mp3、alac 等并保存到文件

转载 作者:行者123 更新时间:2023-12-02 23:15:04 39 4
gpt4 key购买 nike

我需要拆分一个多 channel wav 文件并将每个 channel 编码为 mp3 文件。

我知道 gtresamer 的 deinterleave 插件,但我不确定如何将它用于 wav 文件以及如何编码 channel 流。

我更喜欢基于 gtreamer(或 ffmpeg)的解决方案,因为我需要限制 I/O。即,我不希望将中间单 channel 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

当我使用没有去交错的单 channel wav 文件进行测试时,创建了 mp3 文件,但它只有噪音。

最佳答案

提前知道 channel 数量吗?
如果你使用 gst-launch 你可以做类似的事情:

gst-launch-1.0 filesrc location="xx.wav" ! wavparse ! deinterleave name=d \
d.src_01 ! <encoder> ! filesink location="out1.mp3" \
d.src_02 ! <encoder> ! filesink location="out2.mp3"

等等。如果您事先不知道 channel 数,则需要编写一些代码。

关于audio - gstreamer 将多 channel wav 文件拆分为单独的 channel 并将每个 channel 编码为 mp3、alac 等并保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21619736/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com