gpt4 book ai didi

ffmpeg - GStreamer 声称缺少 avdec_aac

转载 作者:行者123 更新时间:2023-12-04 23:18:46 24 4
gpt4 key购买 nike

我在创建可以解码 aac 流的 gstreamer 管道时遇到问题。我正在使用 decodebin作为解码器元素,以使事情尽可能简单。当我插入 aac流我收到以下错误:

0:00:00.243017793 27632 0x556cf6291de0 INFO              GST_STATES gstelement.c:2675:gst_element_continue_state:<avdec_aac0> completed state change to PAUSED
0:00:00.243028893 27632 0x556cf6291de0 INFO GST_STATES gstelement.c:2575:_priv_gst_element_state_changed:<avdec_aac0> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.243047154 27632 0x556cf6180830 INFO GST_BUS gstbus.c:588:gst_bus_timed_pop_filtered:<bus1> we got woken up, recheck for message
0:00:00.243865043 27632 0x556cf6291de0 INFO libav :0:: Audio object type 0
0:00:00.243878963 27632 0x556cf6291de0 INFO libav :0:: is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
0:00:00.243901033 27632 0x556cf6291de0 WARN decodebin gstdecodebin2.c:2523:connect_pad:<audiodecoder> Couldn't set avdec_aac0 to PAUSED

...

0:00:00.246185892 27632 0x556cf6291de0 WARN decodebin gstdecodebin2.c:4678:gst_decode_bin_expose:<audiodecoder> error: no suitable plugins found:
Couldn't set avdec_aac0 to PAUSEDCouldn't set avdec_aac_fixed0 to PAUSEDCouldn't set faad0 to PAUSED

0:00:00.246190073 27632 0x556cf6180830 INFO GST_BUS gstbus.c:588:gst_bus_timed_pop_filtered:<bus1> we got woken up, recheck for message
0:00:00.246205032 27632 0x556cf6291de0 INFO GST_ERROR_SYSTEM gstelement.c:2140:gst_element_message_full_with_details:<audiodecoder> posting message: Your GStreamer installation is missing a plug-in.
0:00:00.246253922 27632 0x556cf6291de0 INFO GST_ERROR_SYSTEM gstelement.c:2167:gst_element_message_full_with_details:<audiodecoder> posted error message: Your GStreamer installation is missing a plug-in.
我确认 gstreamer 插件是通过以下方式安装的:
gst-inspect-1.0.exe  | grep aac

(gst-inspect-1.0:13248): GStreamer-WARNING **: 14:46:08.791: Failed to load plugin 'C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstwavpack.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.
audioparsers: aacparse: AAC audio stream parser
libav: avdec_aac: libav AAC (Advanced Audio Coding) decoder
libav: avdec_aac_fixed: libav AAC (Advanced Audio Coding) decoder
libav: avdec_aac_latm: libav AAC LATM (Advanced Audio Coding LATM syntax) decoder
libav: avenc_aac: libav AAC (Advanced Audio Coding) encoder
libav: avmux_adts: libav ADTS AAC (Advanced Audio Coding) muxer (not recommended, use aacparse instead)
mediafoundation: mfaacenc: Media Foundation Microsoft AAC Audio Encoder MFT
typefindfunctions: audio/aac: aac, adts, adif, loas
voaacenc: voaacenc: AAC audio encoder
我在windows和linux中都遇到了这个问题。在 Windows 上,我为 gstreamer 安装了运行时和开发版本的完整安装,并且我正在使用链接到 ffmpeg 网站的最新 5.0 完整版本。
在 ubuntu 上我已经完成了:

sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev libssl-dev ffmpeg faad


我还是空着。
我错过了什么?

最佳答案

这似乎是由于我从传入的 RTMP 数据包中错误地解包 FLV 数据引起的。当我打开音频 FLV 标签时,我没有打开 AACAAUDIODATA.AACPacketType字节。因此,我的序列头和音频数据包前面都添加了 01无法读取的字节。对此的提示是看到 libav :0:: Audio object type 0以及将日志输出中 gstreamer caps 中的编解码器数据与直接 gstreamer filesrc 进行比较管道。

关于ffmpeg - GStreamer 声称缺少 avdec_aac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71198170/

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