gpt4 book ai didi

audio - 重新编码音频:gstreamer中的libav编码器/解码器

转载 作者:行者123 更新时间:2023-12-03 00:26:06 32 4
gpt4 key购买 nike

我想重新编码音频文件的音频流。以下gstreamer管道可以正常工作:

gst-launch-1.0 filesrc location=input.flac ! decodebin ! audioconvert ! \
sbcenc ! sbcdec ! autoaudiosink

但是,当我将编码器/解码器切换到libav aptx时,出现以下错误:
gst-launch-1.0 filesrc location=input.flac ! decodebin ! audioconvert ! \
avenc_aptx ! avdec_aptx ! autoaudiosink

我收到以下错误:
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
WARNING: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Delayed linking failed.
Additional debug info:
../gstreamer/gst/parse/grammar.y(506): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0:
failed delayed linking some pad of GstDecodeBin named decodebin0 to some pad of GstAudioConvert named audioconvert0
ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0: Internal data stream error.
Additional debug info:
../gstreamer/libs/gst/base/gstbaseparse.c(3634): gst_base_parse_loop (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0:
streaming stopped, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

我在管道中缺少什么?如何使用FFMPEG / libav编解码器?

我是gstreamer的新手,想使用cli工具将音频流重新编码为一堆不同的编解码器。 libav似乎具有所有必需的编解码器。

最佳答案

您的管道一切正常,但是...

执行gst-launch-1.0 --version检查您的Gstreamer版本。

在Gstreamer版本1.15.90中,我检查了avenc_aptxgst-inspect-1.0 avenc_aptx,发现该编码器的SRC(源)功能是“未知”的。 Gstreamer元素需要共享功能才能相互连接。

另一方面,avenc_aptx的文档明确指出了SRC功能(音频/ aptx ....)。

对于SINK功能未知的解码器avdec_aptx,情况相同,但文档中明确提到了SINK功能。

因此,您的问题很可能是由于您的Gstreamer版本已经部分(不完全)实现了aptx编码器和解码器而引起的。

尝试将Gstreamer升级到最新版本,再次检查aptx编码器/解码器,如果可见SRC / SINK功能,请重新运行管道。

关于audio - 重新编码音频:gstreamer中的libav编码器/解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59019557/

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